Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(354)

Unified Diff: service/datastore/serialize/serialize.go

Issue 1355783002: Refactor keys and queries in datastore service and implementation. (Closed) Base URL: https://github.com/luci/gae.git@master
Patch Set: appease errcheck Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « service/datastore/reflect.go ('k') | service/datastore/serialize/serialize_test.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: service/datastore/serialize/serialize.go
diff --git a/service/datastore/serialize/serialize.go b/service/datastore/serialize/serialize.go
index 88c887fc281cd8acd328b59337f909529e71b5c4..0c58fcae712ce249acf633e5d0b7d089c7d8a415 100644
--- a/service/datastore/serialize/serialize.go
+++ b/service/datastore/serialize/serialize.go
@@ -13,7 +13,6 @@ import (
"github.com/luci/gae/service/blobstore"
ds "github.com/luci/gae/service/datastore"
- "github.com/luci/gae/service/datastore/dskey"
"github.com/luci/luci-go/common/cmpbin"
)
@@ -51,10 +50,10 @@ const (
// WriteKey encodes a key to the buffer. If context is WithContext, then this
// encoded value will include the appid and namespace of the key.
-func WriteKey(buf Buffer, context KeyContext, k ds.Key) (err error) {
+func WriteKey(buf Buffer, context KeyContext, k *ds.Key) (err error) {
// [appid ++ namespace]? ++ [1 ++ token]* ++ NULL
defer recoverTo(&err)
- appid, namespace, toks := dskey.Split(k)
+ appid, namespace, toks := k.Split()
if context == WithContext {
panicIf(buf.WriteByte(1))
_, e := cmpbin.WriteString(buf, appid)
@@ -75,7 +74,7 @@ func WriteKey(buf Buffer, context KeyContext, k ds.Key) (err error) {
// the value of context that was passed to WriteKey when the key was encoded.
// If context == WithoutContext, then the appid and namespace parameters are
// used in the decoded Key. Otherwise they're ignored.
-func ReadKey(buf Buffer, context KeyContext, appid, namespace string) (ret ds.Key, err error) {
+func ReadKey(buf Buffer, context KeyContext, appid, namespace string) (ret *ds.Key, err error) {
defer recoverTo(&err)
actualCtx, e := buf.ReadByte()
panicIf(e)
@@ -117,7 +116,7 @@ func ReadKey(buf Buffer, context KeyContext, appid, namespace string) (ret ds.Ke
toks = append(toks, tok)
}
- return dskey.NewToks(actualAid, actualNS, toks), nil
+ return ds.NewKeyToks(actualAid, actualNS, toks), nil
}
// WriteKeyTok writes a KeyTok to the buffer. You usually want WriteKey
@@ -243,7 +242,7 @@ func WriteProperty(buf Buffer, context KeyContext, p ds.Property) (err error) {
case ds.PTGeoPoint:
err = WriteGeoPoint(buf, p.Value().(ds.GeoPoint))
case ds.PTKey:
- err = WriteKey(buf, context, p.Value().(ds.Key))
+ err = WriteKey(buf, context, p.Value().(*ds.Key))
case ds.PTBlobKey:
_, err = cmpbin.WriteString(buf, string(p.Value().(blobstore.Key)))
}
@@ -375,7 +374,7 @@ func ReadPropertyMap(buf Buffer, context KeyContext, appid, namespace string) (p
func WriteIndexColumn(buf Buffer, c ds.IndexColumn) (err error) {
defer recoverTo(&err)
- if c.Direction == ds.ASCENDING {
+ if !c.Descending {
panicIf(buf.WriteByte(0))
} else {
panicIf(buf.WriteByte(1))
@@ -391,12 +390,7 @@ func ReadIndexColumn(buf Buffer) (c ds.IndexColumn, err error) {
dir, err := buf.ReadByte()
panicIf(err)
- switch dir {
- case 0:
- c.Direction = ds.ASCENDING
- default:
- c.Direction = ds.DESCENDING
- }
+ c.Descending = dir != 0
c.Property, _, err = cmpbin.ReadString(buf)
return
}
@@ -464,7 +458,7 @@ func toBytesErr(i interface{}, ctx KeyContext) (ret []byte, err error) {
case ds.IndexDefinition:
err = WriteIndexDefinition(buf, x)
- case ds.Key:
+ case *ds.Key:
err = WriteKey(buf, ctx, x)
case ds.KeyTok:
« no previous file with comments | « service/datastore/reflect.go ('k') | service/datastore/serialize/serialize_test.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698