Steve Teale wrote:

> 
> Don't get me wrong. I was not asking if it should be possible to get a
> complete result set, only if we needed to support sets with 2^^64 rows on
> a 32 bit system. Personally I think that is close to stupid - SQL is
> supposed to allow you to select the rows you want - not to make you do
> that on the client side.

It is all right - you asked for opinions - you got it. :)

I am also writing a native D database driver, for the Ingres RDBMS. It is 
basically an implementation of the all Ingres DAMP protocols (lvl 1 to 7, 
the latest one). There you really need to make a cursor if you really want 
to do something you describe above. However, Ingres RDBMS will send you the 
result in messages (ie. chunks). But it really does not matter if it sends 
the result in chunks or if it streams the whole thing immediately (i would 
actually prefer Ingres does that, it would make some things easier).

If I as a developer execute "SELECT * FROM few_bil_rows_table" I am *aware* 
of the consequence, but I still want *ALL ROWS*, because, say, I am doing an 
OLAP query, and I want to generate a huge report ASAP. :) Ask any BI expert, 
and they will tell you that 2^64 result set is nothing! :) Yes, hands down, 
if one deals with 2^64 result sets, that person will most likely *not* use 
MySQL/MariaDB but something more suitable, like Ingres (now Actian) 
VectorWise, and similar.

If I wanted to do it in chunks, I would code that myself, and execute 
something like "SELECT * FROM few_bil_rows_table LIMIT offset, rowCount".


Reply via email to