Hello again, I wanna use cursors on my GAE queries: https://developers.google.com/appengine/docs/python/datastore/queries#Query_Cursors
i have attached a patch that adds an optional parameter "reusecursor" to
select on GAE. If True, and the query has a limitby, it indicates that
db['_lastcursor'] will have the cursor (i didn't want to store it if you
are not gonna use it because i'm not sure of the cost of getting that
cursor). If a reusecursor is a string that string will be passed to the
GAE query as the cursor. Note that you must use limitby on all queries
that you want to return the cursor for, and that queries that use a cursor
must have the exact same filters. Keep in mind that limitby will be in
relation to the cursor, so in most cases you want offset of 0.
my suggested patch is attached. i welcome comments.
example:
def test3():
cursor = request.vars.cursor or True
#say the manu_item has about a hundred rows....
rows = db(db.menu_item.id>0).select(reusecursor=cursor, limitby=(0,10))
cursor = db['_lastcursor']
next_link = A('next', _href=URL(r=request, vars={'cursor':cursor}))
# Use generic HTML views
response.generic_patterns = ['html']
return dict(
rows=rows,
cursor=cursor,
next_link = next_link)
thanks,
christian
cursorpatch.out
Description: Binary data

