An equality check for a key field was failing with a panic if the optional project and namespace were not supplied, and with a datastore client error if they were provided.
[ERROR] datastore: bad query filter value type: invalid Value type gql.KeyLiteralExpr
The first is fixed by defaulting the project and namespace to an empty string if not specified (a string cannot be set to nil).
The latter is fixed by translating the gql.KeyLiteralExpr into a datastore.Key in the equality branch of the query building.
It's not clear from the datastore client docs what one should do with the project ID if it is specified in the KEY(...) GQL expression, so this is left unimplemented at present.
An equality check for a key field was failing with a panic if the optional project and namespace were not supplied, and with a datastore client error if they were provided.
Panic output was:
Datastore error was:
The first is fixed by defaulting the project and namespace to an empty string if not specified (a string cannot be set to
nil
).The latter is fixed by translating the
gql.KeyLiteralExpr
into adatastore.Key
in the equality branch of the query building.It's not clear from the datastore client docs what one should do with the project ID if it is specified in the
KEY(...)
GQL expression, so this is left unimplemented at present.