Thanks :)

On Thu, Mar 18, 2010 at 11:55 AM, Jeff Schnitzer <[email protected]>wrote:

> Here's a link:
>
> http://groups.google.com/group/google-appengine/browse_thread/thread/2f6aa695a80fd5de
>
> Jeff
>
> On Thu, Mar 18, 2010 at 9:22 AM, Tristan <[email protected]>
> wrote:
> > Jeff,
> >
> > Sounds to me like you're correct in the "not only don't set single-
> > property indexes, but also don't include the property in any custom
> > indexes" interpretation of setUnindexedProperty. Can you post the link
> > to the continuation post? I'm curious what Googlers have to say about
> > it.
> >
> > Tristan
> >
> >
> >
> > On Mar 18, 11:13 am, Jeff Schnitzer <[email protected]> wrote:
> >> This doesn't make sense to me.
> >>
> >> Every scrap of documentation I've found says that GAE queries only
> >> follow a single index (the one exception being zigzag merges, which
> >> don't apply here).  This means that to answer my query.filter(foo,
> >> "fooValue1").sort("-bar"), there must be an index that contains the
> >> foo and bar data sorted appropriately, no?  Ie:
> >>
> >> /Thing/foo:fooValue1/bar:bar9/[thekeyvalue]
> >> /Thing/foo:fooValue1/bar:bar8/[thekeyvalue]
> >> /Thing/foo:fooValue1/bar:bar7/[thekeyvalue]
> >> /Thing/foo:fooValue2/bar:bar8/[thekeyvalue]
> >> /Thing/foo:fooValue2/bar:bar7/[thekeyvalue]
> >>
> >> To satisfy this query, GAE should start following this custom index
> >> and that's pretty much it.  There's no reason for it to touch the
> >> single-property indexes (foo ASC, foo DESC, bar ASC, and bar DESC).
> >>
> >> ...and in my test, if I remove the custom index from
> >> datastore-indexes.xml, it doesn't work.  But also if I use
> >> setUnindexedProperty, it doesn't work.
> >>
> >> It's like setUnindexedProperty is being interpreted as "not only don't
> >> set single-property indexes, but also don't include the property in
> >> any custom indexes".  This is counterintuitive - if I wanted the index
> >> not to be built, I can just remove the index.
> >>
> >> I realize now that perhaps I posted this to the wrong mailing list.
> >> The guys who created the I/O videos about the datastore seem to be
> >> python fans, so I'll retry my original post on the google-appengine
> >> list.
> >>
> >> Jeff
> >>
> >>
> >>
> >> On Thu, Mar 18, 2010 at 8:00 AM, Tristan <[email protected]>
> wrote:
> >> > Not official but been doing this for a while.
> >>
> >> > Your custom index is most likely build from the query. So, when you
> >> > do
> >>
> >> >        Query query = new Query("Thing");
> >> >        query.addFilter("foo", FilterOperator.EQUAL, "fooValue");
> >> >        query.addSort("bar", SortDirection.DESCENDING);
> >>
> >> > That is what builds your custom index.
> >>
> >> > However, when you setUnindexedProperty here
> >>
> >> >        Entity ent = new Entity("Thing");
> >> >        ent.setUnindexedProperty("foo", "fooValue");
> >> >        ent.setUnindexedProperty("bar", 123L);
> >>
> >> > You are not generating any index entries.
> >>
> >> > So the issue isn't that "adding custom indexes after-the-fact [is]
> >> > really, really painful" but that you are not generating any indexes
> >> > for the datastore to run the queries against when you use
> >> > setUnindexedProperty(). In other words, when you execute a query, it
> >> > checks the index to give you results. But you marked your data as
> >> > "don't index me," so there is nothing for query to work with, as far
> >> > as it is concerned, there's nothing in the datastore.
> >>
> >> > Cheers!
> >>
> >> > On Mar 16, 4:07 pm, Jeff Schnitzer <[email protected]> wrote:
> >> >> On Mon, Mar 15, 2010 at 11:04 PM, John Patterson <
> [email protected]> wrote:
> >>
> >> >> > On 16 Mar 2010, at 12:25, Jeff Schnitzer wrote:
> >>
> >> >> >> I'm puzzled by the behavior of custom indexes.  I have a simple
> test
> >> >> >> case below, a simple equality filter on one property combined with
> a
> >> >> >> descending sort on another property.  If I set the properties with
> >> >> >> setUnindexedProperty(), the query fails to find the result.  If I
> set
> >> >> >> the properties with setProperty(), it does.
> >>
> >> >> > I also wondered why - I assume that the custom index build reads
> the single
> >> >> > property indexes directly which must be more efficient than reading
> the
> >> >> > Entities "table".
> >>
> >> >> I guess that is possible, but seems like a poor design decision.  It
> >> >> makes adding custom indexes after-the-fact really, really painful.
> >>
> >> >> Can someone official chime in on this?  Is it intended behavior, or
> >> >> should we file an issue against it?  The documentation doesn't say
> >> >> much on the subject, and all the conceptual explanation of queries
> >> >> suggests that these extra single-property indexes will be unused.
> >>
> >> >> Jeff
> >>
> >> > --
> >> > You received this message because you are subscribed to the Google
> Groups "Google App Engine for Java" group.
> >> > To post to this group, send email to
> [email protected].
> >> > To unsubscribe from this group, send email to
> [email protected]<google-appengine-java%[email protected]>
> .
> >> > For more options, visit this group athttp://
> groups.google.com/group/google-appengine-java?hl=en.
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> > To post to this group, send email to
> [email protected].
> > To unsubscribe from this group, send email to
> [email protected]<google-appengine-java%[email protected]>
> .
> > For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
> >
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine-java%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" 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-java?hl=en.

Reply via email to