rhel: Fix use of $< in ordinary Make rules.
[sliver-openvswitch.git] / ovsdb / SPECS
index 3a9af9f..951c097 100644 (file)
@@ -132,6 +132,7 @@ is represented by <database-schema>, as described below.
         "columns": {<id>: <column-schema>, ...}   required
         "maxRows": <integer>                      optional
         "isRoot": <boolean>                       optional
+        "indexes": [<column-set>*]                optional
 
     The value of "columns" is a JSON object whose names are column
     names and whose values are <column-schema>s.
@@ -176,6 +177,15 @@ is represented by <database-schema>, as described below.
     enforced after unreferenced rows are deleted from tables with a
     false "isRoot".
 
+    If "indexes" is specified, it must be an array of zero or more
+    <column-set>s.  A <column-set> is an array of one or more strings,
+    each of which names a column.  Each <column-set> is a set of
+    columns whose values, taken together within any given row, must be
+    unique within the table.  This is a "deferred" constraint,
+    enforced only at transaction commit time, after unreferenced rows
+    are deleted and dangling weak references are removed.  Ephemeral
+    columns may not be part of indexes.
+
 <column-schema>
 
     A JSON object with the following members:
@@ -184,12 +194,18 @@ is represented by <database-schema>, as described below.
         "ephemeral": <boolean>                    optional
         "mutable": <boolean>                      optional
 
-    The "type" specifies the type of data stored in this column.  If
-    "ephemeral" is specified as true, then this column's values are
+    The "type" specifies the type of data stored in this column.
+
+    If "ephemeral" is specified as true, then this column's values are
     not guaranteed to be durable; they may be lost when the database
-    restarts.  If "mutable" is specified as false, then this column's
-    values may not be modified after they are initially set with the
-    "insert" operation.
+    restarts.  A column whose type (either key or value) is a strong
+    reference to a table that is not part of the root set is always
+    durable, regardless of this value.  (Otherwise, restarting the
+    database could lose entire rows.)
+
+    If "mutable" is specified as false, then this column's values may
+    not be modified after they are initially set with the "insert"
+    operation.
 
 <type>
 
@@ -426,6 +442,16 @@ include at least the following:
         The number of rows in a table exceeds the maximum number
         permitted by the table's "maxRows" value (see <table-schema>).
 
+    "error": "constraint violation"
+
+        Two or more rows in a table had the same values in the columns
+        that comprise an index.
+
+    "error": "resources exhausted"
+    "error": "I/O error"
+
+        As described in the definition of <error> above.
+
 If "params" contains one or more "wait" operations, then the
 transaction may take an arbitrary amount of time to complete.  The
 database implementation must be capable of accepting, executing, and