DescriptionImplement projection queries correctly.
* Add Project and ForIndex to Property in service/datastore
* Remove PTBoolFalse/PTBoolTrue silliness (now just PTBool)
* Remove ByteSlice silliness (now []byte behaves exactly like string w.r.t.
indexing. If you don't want it indexed, put `gae:",noindex"` on it.)
* Make indexes index 'underlying' types. e.g. PTTime is not distinguished from
PTInt in the index, nor are the various byte sequence types.
* Make impl/prod correctly extract data from internal datastoreIndex objects
when doing projection queries. This allows doing a projection into
[]PropertyMap. Since all data is bussed internally as PropertyMap (instead of
crazy PropertyLoadSaver implementations), this is required to make projection
queries work. I'm pretty confident that this won't break, however, as it's all
derived from protobufs which are extremely unlikely to change.
To make this better, we'd have to implement the protobuf protocol directly in
luci/gae instead of routing through the SDK. Not as absurd as it sounds, but
definitely out of scope for this CL :).
* Include extremely basic test for impl/prod using aetest. This test takes 12s
to run on my laptop. *sigh*.
R=dnj@chromium.org, estaab@chromium.org, maruel@chromium.org, tandrii@chromium.org, vadimsh@chromium.org
BUG=https://github.com/luci/gae/issues/1
Committed: https://github.com/luci/gae/commit/9ce8b9442816469d8c4e3c53572d52aaf4d7378e
Patch Set 1 #
Total comments: 15
Patch Set 2 : typo #Patch Set 3 : fix doc #
Total comments: 11
Patch Set 4 : fix comments #
Messages
Total messages: 11 (3 generated)
|