As long as this works the same if the old queries:

id==value and id>0

yes.

If you could also avoid the trunk of changing the name='__key__' and
restoring name='id' it would be better. You could add a new attrbute
to the field object and use that for the check: _iskey=True,

On Jun 9, 11:25 pm, howesc <how...@umich.edu> wrote:
> 1) i don't mind removing __key__ from extra.  it was just something i
> was using while figuring it out.  (though i don't understand what it
> changes in how Rows is accessed).
>
> 2) The Key on GAE is a base64 encoded string of "table_name:
> id=<id>" (for the simple no-ancestor case).  My understanding of how
> GAE executes the query is that it decodes the key, sorts on the
> numeric id, and then filters, so the transformation to the GAE Key
> class should not cause problems.   at least that is how i understand
> it (and how it works in my limited usage so far).  
> seehttp://code.google.com/appengine/docs/python/datastore/queriesandinde...
> for a little better explanation.
>
> Does that help?  shall i make a new patch w/o the __key__ in _extra?
>
> thanks!
>
> christian
>
> On Jun 9, 9:08 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > The belongs is fine but I have a couple of problems:
>
> > 1) adding __key__ in extra is not backward compatible because it
> > changes the way records in Rows is acceessed
>
> > 2) if you say db(db.table.id<1000) it does not actually select records
> > if id<1000 but Key(id)<Key(1000).
>
> > Did I misunderstand the source?
>
> > On Jun 9, 10:54 pm, Christian Foster Howes <how...@umich.edu> wrote:
>
> > > Hi all,
>
> > > attached is a patch for gql.py.  Please review and Massimo, if people
> > > like this, can we add it to trunk?
>
> > > what does it do?  it allows you to do key queries on Google App Engine.
> > >   this means that you can now perform all ID queries on tables in google
> > > app engine.  for example:
>
> > >      belongs = db(db.test_tbl.id.belongs([69126,69127])).select()
> > >      eq = db(db.test_tbl.id==69126).select()
> > >      neq = db(db.test_tbl.id!=69126).select()
> > >      lt = db(db.test_tbl.id<69126).select()
> > >      gt = db(db.test_tbl.id>69126).select()
> > >      lte = db(db.test_tbl.id<=69126).select()
> > >      gte = db(db.test_tbl.id>=69126).select()
> > >      all = db(db.test_tbl.id>0).select()
>
> > > it also adds "__key__" to _extra on each row in the result...just in
> > > case you really wanted to see that google key.
>
> > > if i missed some test cases please let me know and i'll verify them as 
> > > well.
>
> > > thanks!
>
> > > Christian
>
> > >  gql_key_query_patch.diff
> > > 3KViewDownload

Reply via email to