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
