Hi, Valeria,

Thanks for the confirmation.  Please don't hesitate to let us know if 
you find anything additional issues or have a suggestion for us.

John


On 5/4/2010 1:52 PM, Valeria Lorenzetti wrote:
> Hi John!
> I repeated the tests in both cases and now the LIMIT works correctly!
>
> Valeria
>
>
> 2010/5/4 K. John Wu <[email protected] <mailto:[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]>
>         <mailto:[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]>>
>         <mailto:[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]>>
>         <mailto:[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]>
>         <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

Reply via email to