Hello everyone, I noticed an odd behavior with GQL query when it has two IN operators and a regular condition. Below is some basic code to reproduce the problem:
class DummyData(db.Model): x = db.StringListProperty() y = db.TextProperty() class Dummy(webapp.RequestHandler): def get(self): d = DummyData() d.x = ['a', 'b','c'] d.y = "test" d.put() d = DummyData() d.x = ['c', 'd','e'] d.y = "test2" d.put() q = db.GqlQuery("SELECT * FROM DummyData where x in ('c') and x in ('a') ") results = q.fetch(10) # 10 instead of 2? - useful if you run the test multiple times for r in results: self.response.headers['Content-Type'] = "text/plain" self.response.out.write("x = " + ",".join(r.x) + " y = " + r.y + "\n") When you run the above code you will see the following output: x = a,b,c y = test However when I replace the above query with the one below, I do not get any results (even though it should return the same result as above): # Note the addition of y = 'test' q = db.GqlQuery("SELECT * FROM DummyData where y = 'test' and x in ('c') and x in ('a') ") Although here the IN conditions are the same as '=', my application actually uses multiple list values.; I am just presenting a simpler example. If someone can confirm the issue, I can open a bug report for this. Thanks! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---