How would you do the query in GQL? Have you confirmed that it can be done? Anthony
On Sunday, August 12, 2012 9:23:39 PM UTC-4, spiffytech wrote: > > I tested with your suggested orderby, but the outcome was the same. > > I tested with the query as you wrote it below, with no common_filter, and > the query still failed. Since that's a pretty straightforward query that > should work, this seems like a bug to me, so I filed a web2py bug report: > http://code.google.com/p/web2py/issues/detail?id=930 > > > On Thursday, August 9, 2012 5:39:14 PM UTC-4, howesc wrote: >> >> i had to look up common_filters.....based on your experience i would >> assume that this is being implemented as a query filter rather than getting >> results from the DB and then filtering them. so what is must be causing in >> your case is: >> >> posts = db((db.posts.id.belongs(post_ids)) & >> (db.posts.post_date<=request.now)).select(db.posts.ALL,orderby=db.posts.post_date, >> cache >> =(cache.ram, 60)) >> >> it *might* work if you put an orderby on that is >> db.posts.id|db.posts.post_date >> i'm not sure. you might have to remove the common filter for this query >> and then filter the results. (i don't have experience with common filters >> and how they are implemented) >> >> GAE has a restriction on IN queries (web2py belongs queries) that they >> have no more than 30 items in the list. "because i said so" says google. >> >> >> >> On Thursday, August 9, 2012 1:57:13 PM UTC-7, spiffytech wrote: >>> >>> I've narrowed the problem down further- the exception is caused by a >>> common_filter attached to my posts table: >>> >>> common_filter = lambda query: db.posts.post_date <= request.now >>> >>> I'm not sure why that would trigger the orderby error, though. >>> >>> Also, is there some significance to limiting the belongs lists to 30 >>> items? >>> >>> >>> >>> On Thursday, August 9, 2012 4:24:13 PM UTC-4, howesc wrote: >>>> >>>> the query and the error message do not match. your query has no >>>> orderby, yet the error message suggests there is an orderby property set. >>>> this confuses me. >>>> >>>> i do: >>>> >>>> db(db.table.id.belongs([list of items not more than 30 long])).select() >>>> >>>> all the time on GAE and it works for me (latest stable web2py, and the >>>> last time i checked trunk though that was a few weeks ago) >>>> >>>> note that cache does nothing on selects on GAE due to the inability to >>>> serialize Rows objects to memcache (at least i think that is the >>>> limitation) >>>> >>>> cfh >>>> >>>> On Thursday, August 9, 2012 10:40:33 AM UTC-7, spiffytech wrote: >>>>> >>>>> I'm trying to use the DAL belongs clause on App Engine and am getting >>>>> an error. >>>>> >>>>> posts = db(db.posts.id.belongs(post_ids)).select(db.posts.ALL, cache=( >>>>> cache.ram, 60)) >>>>> >>>>> Produces: >>>>> >>>>> BadArgumentError: First ordering property must be the same as >>>>> inequality filter property, if specified for this query; received >>>>> __key__, >>>>> expected post_date >>>>> >>>>> Some Googling suggests this can be due to not providing a sort key. I >>>>> tried orderby=db.posts.post_date with no success. What could be going >>>>> wrong? >>>>> >>>>> I'm using the latest trunk web2py, but tested all the way back to >>>>> 1.99.3. >>>>> >>>> --

