| Index: go/src/infra/gae/libs/wrapper/memory/schema
|
| diff --git a/go/src/infra/gae/libs/wrapper/memory/schema b/go/src/infra/gae/libs/wrapper/memory/schema
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f81e239b3e5d3bd2e2b7104df847987261f8a140
|
| --- /dev/null
|
| +++ b/go/src/infra/gae/libs/wrapper/memory/schema
|
| @@ -0,0 +1,31 @@
|
| +index row encoding
|
| + ints ->
|
| + funnybase
|
| + floats -> http://stereopsis.com/radix.html
|
| + b := math.Float64bits(f)
|
| + return b ^ (-(b >> 63) | 0x8000000000000000)
|
| +
|
| + return math.Float64frombits(b ^ ((b >> 63) - 1) | 0x8000000000000000)
|
| +
|
| +index types:
|
| + primary: (key -> entity)
|
| + kind: (kind | key -> nil)
|
| + prop: (kind | prop | val | key -> nil)
|
| + -prop: (kind | prop | -val | key -> nil)
|
| + comp: (kind | <[prop | ?val]+> | key -> nil)
|
| +
|
| +collections
|
| + ents:ns -> key -> value
|
| + (rootkind, rootid, __entity_group__,1) -> {__version__: int}
|
| + (rootkind, rootid, __entity_group_ids__,1) -> {__version__: int}
|
| + (__entity_group_ids__,1) -> {__version__: int}
|
| + idx:ns:kind -> key = nil
|
| + idx:ns:kind|prop -> propval|key = [prev val]
|
| + idx:ns:kind|-prop -> -propval|key = [next val]
|
| + idx:ns:kind|A|?prop|?prop -> A|propval|propval|key = [prev/next val]|[prev/next val]
|
| + idx:ns:kind|?prop|?prop -> propval|propval|key = [prev/next val]|[prev/next val]
|
| +
|
| + // to add persistence later
|
| + idx: -> kind,A?,[-?prop]*
|
| +
|
| +
|
|
|