Yes sorry it was more of a complaint than a question :)
I was disturbed by the fact that I can't leave the limit constant, like 10 rows, and only manipulate the offset as I would do in sql... Then I reread the book and understand min, max, but I am not sure I see the advantage... And I found confusing that limitby is more an offset parameter then a limit... I am not aware of all different backend implementation of paging and limitby may make more sens in the big picture... And I guess it make sens to have a particular method limitby which is not a perfect map of sql limit and offset... If I got time, I will have look if we can some how have a limit and offset methods also, that would translate litteraly into their sql counter part to make it more intuitive and send a PR to the pyDAL and will see if it get included. Richard On Mon, Mar 6, 2017 at 9:32 PM, Dave S <[email protected]> wrote: > > > On Monday, March 6, 2017 at 5:50:05 PM UTC-8, Anthony wrote: >> >> What is your question? If you want to do an offset, you need two numbers >> -- either the two endpoints of the interval or one endpoint plus the size >> of the interval. Whichever pair of numbers you have, it is a single >> arithmetic operation to get the alternative pair. It might help if you >> explain what two numbers you would prefer to work with and where you are >> getting them. >> >> Anthony >> > > Is the issue perhaps cognitive dissonance caused by "min" and "max" being > different from Richard's concept of "offset"? I can see that if you're > used to applying min and max to the* values*, you might be disturbed by > applying them to the *indices*. > > /dps > > >> On Monday, March 6, 2017 at 4:11:52 PM UTC-5, Richard wrote: >>> >>> Hello, >>> >>> I may not understanding something... I am desapointed that I can't >>> simply manipulate offset of the sql... Or should I just manipulate the >>> limit... >>> >>> I mean if I do repetitively thise query in sql : >>> >>> select * form table order by desc limit 10 offset 0 >>> select * form table order by desc limit 10 offset 10 >>> select * form table order by desc limit 10 offset 20 >>> select * form table order by desc limit 10 offset 30 >>> >>> I will get progressively all the records from the table 10 at a time... >>> >>> But I can't simply do it with this query : >>> >>> rows = db((db.table.id > 0) >>> ).select(db.table.id, db.table.represent_field, >>> orderby=~db.table.id, >>> limitby=(10, offset if offset else 0)) >>> >>> Reading the book there seems to have planty of backend that don't >>> support paging with limit and offset properly... >>> >>> But still I find it frustrasting to have to struggle with the DAL and >>> have to provide min and max for the offset to a limitby function which >>> isn't a limit but an offset in reallity... >>> >>> I solve it with this : >>> >>> offset = request.vars.limit_by >>> if offset not in ('None', '', None) and offset.isdigit(): >>> offset = int(offset) >>> min = offset - 10 >>> max = offset >>> else: >>> offset = None >>> min = 0 >>> max = 10 >>> >>> rows = db((db.table.id > 0) >>> ).select(db.table.id, db.table.represent_field, >>> orderby=~db.table.id, >>> limitby=(min, max)) >>> >>> >>> Richard >>> >>> >>> -- > Resources: > - http://web2py.com > - http://web2py.com/book (Documentation) > - http://github.com/web2py/web2py (Source code) > - https://code.google.com/p/web2py/issues/list (Report Issues) > --- > You received this message because you are subscribed to the Google Groups > "web2py-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

