At one time there was a problem with GAE fething records buth by ID and other condition at the same time. I thought that was fix and this is teh first report of a problem.
Can you try, instead of this: row = db((db.auth_user.id==1) & (db.auth_user.friends==2)).select().first() use row=db.auth_user(1,friends=2) The latter should work (return 1 or None) because the check (frields=2) is done after fetching the record. On Aug 10, 12:44 pm, mattynoce <mattyn...@gmail.com> wrote: > hi all. i have an interesting problem with & in gae and wanted to see > if i could get some thoughts. > > in my program, i have used & in queries many times and had it work. > for example, query A works fine: > (A) db((db.timeframe.isActive==True) & > (db.timeframe.userID==15)).select() > > but query B does not: > (B) db((db.auth_user.id==1) & (db.auth_user.friends==2)).select() > > in this example, the auth_user table has been adjusted to include a > GAEListProperty called friends. user with id 1 (user1) and user with > id 2 (user2) are friends. > > if i call this query: > (C) db((db.auth_user.id==1).select() > it returns user1. > > if i call this query: > (D) db((db.auth_user.friends==2).select() > it returns user1. > > but if i put them together into query E: > (E) db((db.auth_user.id==1) & (db.auth_user.friends==2)).select() > it returns no one. > > if i change either variable to use another custom field, points: > (F) db((db.auth_user.points==0) & (db.auth_user.friends==2)).select() > (G) db((db.auth_user.id==1) & (db.auth_user.points==0)).select() > it returns user1. > > and if i use an inequality: > (H) db((db.auth_user.id>0) & (db.auth_user.friends==2)).select() > it returns user1 (and anyone else who is friends with user2). > > so the only problem is the case i need, which is to see if user1 is > friends with user2. i can easily solve this with a loop but it seems > silly when i should be able to just use the DAL. can anyone see why > query E won't work when all the rest will? is it possible it's an > implementation issue? > > thanks, > > matt