Get desktop application:
View/edit binary Protocol Buffers messages
The datastore's RPC call endpoints.
begin, commit, and rollback a transaction
get a query's histogram (not really, just a result count). this is the total number of result for the query, *not* the number of results left in the query.
create a new composite index. the request index's id should be 0. returns the id assigned to the newly created index.
Deletes one or more entities. If the request includes a transaction, then the entities are deleted in the context of that transaction, and the writes will happen when the transaction is committed.
deletes a query cursor and flushes any associated state
deletes a composite index definition. only the app_id and definition fields of the CompositeIndex request PB are used. like UpdateIndex, this call is idempotent. deleting a nonexistent index is a noop. note that this deletes the index definition, but it does *not* delete the index's rows in the EntitiesByCompositeProperty index.
get an explanation of the query plan that would be executed by RunQuery
If true, the ancestor constraint was satisfied natively.
The native property indexes that were used to satisfy the query, if any. Multiple property indexes may be used, even in conjunction with a native ancestor, in the case of merge join queries. In other cases, only a single index is used.
The native offset, if any.
The native limit, if any.
Looks up one or more entities by their ids. The GetResponse has an Entity element for each key in the GetRequest. Each Entity.entity field will be filled if its corresponding key matched an existing entity. Otherwise, it will be unset. If the request specifies a transaction, then the lookups occur in the context of that transaction, and the entities must all be in the same group.
returns all composite indices defined for a given app. the request StringProto should contain the app id.
makes an educated guess at an app's schema based on the entities in its datastore. the request StringProto should contain the app id.
includes one entity per kind found in the datastore. each one includes all property names and types found in entities of that kind.
get more results for a query
Store one or more entities. New entities are inserted, while existing entities are updated. The response contains the keys of the entities written to the datastore, in the same order as the request. Newly inserted entities will have the primary key and app name filled in in the response. If the request specifies a transaction, then the entities are put in the context of that transaction, and the writes will happen when the transaction is committed.
run a query
update a composite index's state. only the state field will be changed. the index id field is ignored. this call is idempotent. if the index already has the desired state, UpdateIndex is a noop.
A query cursor.
Used as request type in: DatastoreService.DeleteCursor
Used as field type in: ,
all possible values from 0 to 2^64 - 1 are valid cursors. there is no special "error" or "unset" value.
RPC request and response objects, along with response error codes for error handling.
(message has no fields)
the Entity elements here will match the keys in the GetRequest. The entity field will be set for keys that were found, unset for keys that weren't found.
Used in:
Query API
Used as request type in: DatastoreService.Count, DatastoreService.Explain, DatastoreService.RunQuery
kind and ancestor both restrict the query results. if kind is provided, only entities of that kind are returned. if ancestor is provided, only entities descended from that ancestor by path, including the ancestor itself, are returned. either or both must be provided.
currently not implemented. eventually, when provided, this will be used as a plain-text search query. ideally, it will be combined with any filters, sort orders, and ancestor.
start returning results at this offset. useful for paging.
an optional upper bound on the number of results returned for this query.
the composite indexes, if any, that are available to the query planner
if true, the datastore will only run this query if there's an index or set of indices that perfectly match it. if not, it will return an error.
if specified, the query must be an ancestor query, and the ancestor must be in the same entity group as the other operations in the transaction.
filter based on property values. these AND, not OR, together. when filters are evaluated in memory, they're evaluated in the order they're provided here. you can take advantage of this by putting the most restrictive filters, ie the ones that match the least number of results, first.
Used in:
NOT_EQUAL is intentionally omitted. use IN instead, or use the GQL != operator: http://code.google.com/appengine/docs/datastore/gqlreference.html
these apply in the order they're added, e.g. adding ("date", DESC), then adding ("rank", DESC) would sort first by date, descending, then by rank, descending.
Used in:
default to ASCENDING
Used as response type in: DatastoreService.Next, DatastoreService.RunQuery
cursor is set in RunQuery() responses, but not in Next() responses
A transaction handle.
Used as request type in: DatastoreService.Commit, DatastoreService.Rollback
Used as response type in: DatastoreService.BeginTransaction
Used as field type in: , , ,
all possible values from 0 to 2^64 - 1 are valid handles. there is no special "error" or "unset" value.