Hi John!
I repeated the tests in both cases and now the LIMIT works correctly!

Valeria


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

> Hi, Valeria,
>
> Thanks for providing the additional information.  The particular problem in
> ibis.cpp should have been fixed and the fix has been checked in.  If you
> encounter any additional problem, please let us know.
>
> John
>
>
> On 5/3/2010 12:27 PM, Valeria Lorenzetti wrote:
>
>> 2010/5/3 K. John Wu <[email protected] <mailto:[email protected]>>
>>
>>
>>    Hi, Valeria,
>>
>>    Thanks for the feedback.
>>
>>    On the command line, ibis.cpp should accept both forms of the limit
>>    clause and "limit 10" is equivalent to "limit 0,10".  Some of the
>>    function in ibis.cpp always take two arguments related to the limit
>>    clause, but the caller sets one of them to 0 as the default value.
>>
>>
>> Hi John,
>> in that case something goes wrong. I tried with only one argument, but
>> did not work as expected:
>>
>> 1) Two values: OK
>> ibis -d database -q "SELECT PORT WHERE PORT>0 LIMIT 0,3"
>> PORT (with counts)
>> 1,    19
>> 2,    2
>> 3,    2
>>
>> 2) Only one value: something wrong
>> ibis -d database -q "SELECT PORT WHERE PORT>0 LIMIT 3"
>> PORT (with counts)
>> 1,    19
>> 2,    2
>> 3,    2
>> 4,    1
>> 5,    2
>> .. and so on (print all values, no limit applied).
>>
>> Is my syntax wrong?
>> Let me know,
>> Valeria
>>
>>    The function ibis::table::dump has a new variation that takes an
>>    offset in addition to the argument nr.  If you find any of these does
>>    not work as advertised, please feel free to let us know.
>>
>>    John
>>
>>
>>    On 5/3/2010 11:29 AM, Valeria Lorenzetti wrote:
>>     > 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] <mailto:[email protected]>
>>    <mailto:[email protected] <mailto:[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]
>>    <mailto:[email protected]>
>>    <mailto:[email protected]
>>    <mailto:[email protected]>>
>>     > https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users
>>     >
>>     >
>>    _______________________________________________
>>    FastBit-users mailing list
>>    [email protected] <mailto:[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
>>
>
_______________________________________________
FastBit-users mailing list
[email protected]
https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users

Reply via email to