db().select(db.table.ALL, limitby=(0,1000), orderby_on_limitby=False) But note that the order of records is not guaranteed to be the same on repeat calls to the database, so you may get a different 1000 records each time you run that query (that's why the DAL defaults to orderby_on_limitby=True). If you order by a column with unique values (such as the primary key), you are guarenteed to get the same ordering (and therefore the same set of records, assuming there have been no insertions/deletions) on each run.
Anthony On Wednesday, January 13, 2016 at 10:08:13 AM UTC-5, Paulo Serrão wrote: > > > Hello everyone! > > I'm querying a legacy database and for performance issues I can't do an > orderby and the end of the SQL (HUGE table). > > If I do: > > db().select(db.table.ALL, orderby=db.table.some_key, limitby=(0,1000)) > > It will issue as supposed: SELECT * FROM table ORDER BY *some_key* LIMIT > 1000 OFFSET 0; > > But if I remove the "orderby": > > db().select(db.table.ALL, limitby=(0,1000)) > > It will automatically issue: SELECT * FROM table ORDER BY *primary_key* > LIMIT 1000 OFFSET 0; > > Since I HAVE to define a primary key on the legacy table, Is there any way > to avoid issuing an order by without having to do db.executesql manually? > -- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.