Hi John,

I tried the new feature using ibis and it seems to work perfectly!

I tried to execute some special queries where the values used with LIMIT
exceed the number of records extracted from database and other queries where
the values used are critical (like 0 or 1).

The result is that expected!

In ibis however seems to be required to specify both values with the LIMIT
clause (start and limit). This could be simplified so that if you specify a
single value (eg. "LIMIT 10"), it is transparently transformed into "LIMIT
0,<single_value>" (eg. "LIMIT 0,10").

I am very glad I could contribute to your project, although in minimal part!

Thanks,
Valeria



2010/4/29 K. John Wu <[email protected]>

> Hi, Valeria,
>
> A update that implements your suggestion has been checked into the SVN
> repository.  Please give it a try when you get the chance.
>
> You have two options to try:
>
> -- use the new version function ibis::table::dump that take two integer
> parameters.  When you get a table as a result of a query, you will be
> invoking the concrete version from ibis::bord when you call this function.
>  This option follows closely what you have suggested.
>
> -- use the command line tool ibis.cpp, you can now use two integers after
> the keyword limit, e.g.,
>
> select a, b, where ... limit 3, 5
>
> If you do get a chance to try it, please let us know if you encounter any
> problems.  Thanks for the suggestion.
>
>
> John
>
>
>
> On 4/28/2010 1:17 PM, Valeria Lorenzetti wrote:
>
>> Hi John,
>>
>> I wanted to share with you a functionality that I added to my code and I
>> think could be very useful to other users of FastBit if introduced in
>> the library.
>>
>> Given my needs, I had to write my own function to print the rows that
>> matching the query conditions. Following the example of
>> ibis::bord::part::dump(), I rewrite my own function dump(). Instead of
>> use the LIMIT like in the original function, I added the ability to use
>> the LIMIT with the syntax similar to MySQL.
>>
>> In MySQL (http://dev.mysql.com/doc/refman/5.1/en/select.html), LIMIT
>> takes one or two numeric arguments. With two arguments, the first
>> argument specifies the index of the first row to return, and the second
>> specifies the maximum number of rows to return. The index of the initial
>> row is 0 (not 1):
>>
>> E.g. SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15
>>
>> With one argument, the value specifies the number of rows to return from
>> the beginning of the result set:
>>
>> E.g: SELECT * FROM tbl LIMIT 5; # Retrieve first 5 rows
>>
>>
>> This feature becomes very useful for displaying large amounts of data.
>> In fact you can extract them in groups of <n> rows at once. It can be
>> very useful also if you use HTML pages to display the results: you can
>> spread the rows across pages using different LIMIT for each page:
>>
>> LIMIT 0,20 (first page)
>> LIMIT 20,20 (second page)
>> LIMIT 40,20 (third page)
>> and so on..
>>
>> This could also be useful to examine the trend of results in the middle
>> of dataset, and not only for the first rows.
>>
>>
>> The change to be applied to the library to add this functionality I
>> think it could be very simple and could be something like this:
>>
>> ORIGINAL
>> int ibis::bord::part::dump(std::ostream& out, uint32_t nr, const char*
>> del)
>>
>> NEW
>> int ibis::bord::part::dump(std::ostream& out, uint32_t start, uint32_t
>> offset, const char* del)
>> ..
>>
>> ORIGINAL
>> for (uint32_t i = 1; i < nr; ++ i) {
>>     (void) clist[0]->dump(out, i);
>>       ...
>>
>> NEW
>> /* No limit specified, all lines are printed */
>> if (offset < 0) offset = nr_tot_rows;
>>
>> for (uint32_t i = start; i < start+offset && i < nr_tot_rows; ++ i) {
>>    (void) clist[0]->dump(out, i);
>>    ...
>>
>>
>> Let me know if you think it's a good idea and sorry for this endless
>> email!
>>
>> Best regards,
>> Valeria Lorenzetti
>>
>>
>>
>> _______________________________________________
>> FastBit-users mailing list
>> [email protected]
>> https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users
>>
>
_______________________________________________
FastBit-users mailing list
[email protected]
https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users

Reply via email to