Part of what your describing looks documented here: https://developers.google.com/appengine/docs/python/datastore/gqlreference
""" The IN operator compares value of a property to each item in a list. The IN operator is equivalent to many = queries, one for each value, that are ORed together. An entity whose value for the given property equals any of the values in the list can be returned for the query. *Note:* The IN and != operators use multiple queries behind the scenes. For example, the IN operator executes a separate underlying datastore query for every item in the list. The entities returned are a result of the cross-product of all the underlying datastore queries and are de-duplicated. A maximum of 30 datastore queries are allowed for any single GQL query. """ If you experience a different behavior than the documented one I encourage you to fill a detailed defect on the public issue tracker (with Component-Datastore): https://code.google.com/p/googleappengine/issues/entry?template=Other%20defect Or a documentation defect (with Component-Documentation) if you think the documentation could be improved. Feel free to link the issue(s) on that thread, and I will make sure (after acknowledging them) that they are escalated to the right team. Thanks in advance for your contributions. On Sat, Jan 5, 2013 at 3:04 AM, Ryan Chazen <[email protected]> wrote: > <https://lh3.googleusercontent.com/pcMTiy_-SDxzfHNk178ORXaVoPB0GzQ6eoAGZ4nFsBLUqZi0XNCzFWLKx0xcttb6mA=s1600> > Ouch ouch, it's even worse than expected. I ran an query with an IN filter > with the same value repeated. eg IN[0,0,0,0,0,0,0,0,0,0,0] - The query runs > completely in serial doing an independent query for each of the 0s. You are > charged for the same entity returned multiple times, and the entity is > returned to you multiple times even though it's obviously the same entity. > > The IN filter should definitely be marked as deprecated in the SDK docs, > and there should be a large warning against using it - it is ALWAYS better > to use the async datastore to create multiple queries with an EQUALs filter > - it will cost exactly the same, return the same data, and be far faster as > it runs in parallel. The whole IN filter seems like a "user trap" on > Google's part - at the minimum, the IN query should be changed to run in > parallel! > > > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/google-appengine/-/kJ4oHDPjEPoJ. > > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > -- Johan Euphrosine (proppy) Developer Programs Engineer Google Developer Relations -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
