<string>
- A JSON string.
+ A JSON string. Any Unicode string is allowed, as specified by RFC
+ 4627. Implementations may disallowed null bytes.
<id>
"columns": {<id>: <column-schema>, ...} required
The "comment" optionally provides information about this table for
- a human reader. The value of "tables" is a JSON object whose
- names are table names and whose values are <column-schema>s.
+ a human reader. The value of "columns" is a JSON object whose
+ names are column names and whose values are <column-schema>s.
Every table has the following columns whose definitions are not
included in the schema:
Wire Protocol
-------------
-The database wire protocol is implemented in JSON-RPC 1.0. It
-consists of the following JSON-RPC methods:
+The database wire protocol is implemented in JSON-RPC 1.0. We
+encourage use of JSON-RPC over stream connections instead of JSON-RPC
+over HTTP, for these reasons:
+
+ * JSON-RPC is a peer-to-peer protocol, but HTTP is a client-server
+ protocol, which is a poor match. Thus, JSON-RPC over HTTP
+ requires the client to periodically poll the server to receive
+ server requests.
+
+ * HTTP is more complicated than stream connections and doesn't
+ provide any corresponding advantage.
+
+ * The JSON-RPC specification for HTTP transport is incomplete.
+
+The database wire protocol consists of the following JSON-RPC methods:
get_schema
..........
individual operations. Some operations do not produce any
results, in which case the object will have no members.
- - A JSON object that contains a "error" member indicates that the
+ - A JSON object that contains an "error" member indicates that the
operation completed with an error. The value of the "error"
member is a short string, specified in this document, that
broadly indicates the class of the error. Besides the ones
A 2-element JSON array that represents the UUID of a row inserted
in a previous "insert" operation within the same transaction. The
first element of the array must be the string "named-uuid" and the
- second element must be the string specified on a previous "insert"
- operation's "uuid-name". For example, if a previous "insert"
+ second element must be the string specified on this "insert"
+ operation's "uuid-name" or on a preceding "insert" within the same
+ transaction. For example, if this or a previous "insert"
operation specified a "uuid-name" of "myrow", the following
<named-uuid> represents the UUID created by that operation:
["named-uuid", "myrow"]
+ A <named-uuid> may be used anywhere a <uuid> is valid.
+
<condition>
A 3-element JSON array of the form [<column>, <function>,
values.
The new row receives a new, randomly generated UUID, which is
- returned as the "_uuid" member of the result. If "uuid-name"
- is supplied, then the UUID is made available under that name
- to later operations within the same transaction.
+ returned as the "uuid" member of the result. If "uuid-name" is
+ supplied, then the UUID is made available under that name to this
+ operation and later operations within the same transaction.
select
......
value of each column specified in "row" to the value for that
column specified in "row".
- The "_uuid" and "_version" columns of a table may not be updated.
- Columns designated read-only in the schema also may not be
- updated.
+ The "_uuid" and "_version" columns of a table may not be directly
+ updated with this operation. Columns designated read-only in the
+ schema also may not be updated.
The "count" member of the result specifies the number of rows
that matched.