Table
Per-table staging area for a tx's writes.
Rows are written column-by-column into a shared relation.
writePut / writeDelete / writeErase — and the batch writePuts / writeDeletes / writeErases / patchDocs — wrap this protocol for callers that don't need the column-level (zero-alloc) control.
If you elect to write the values directly, each op must have exactly one value written to each of the columns:
the valid-time range — writeValidTimes / writeValidTimeMicros / writeDefaultValidTime;
put only: the document columns, via putDocWriter;
Then, a terminal endPut / endDelete / endErase — this is what records the row.
In columnar style, you may choose to write all your IDs first, then all the valid-times, then all the documents, then the batch endPuts / endDeletes / endErases - it is your responsibility to ensure a consistent number of values in each column.
In any event, you must write all the batch's row data before calling the corresponding end methods.
Properties
The document-column sink for a put: write the doc's columns here, between the id/valid-time writes and endPut.
Functions
Ends count DELETE operations.
Instant-based overload of patchDocs for end-user callers working with java.time.Instant. Null on either bound means the same as passing systemTimeMicros / MAX_LONG to the µs overload.
Bulk-patch docs into this table, keyed by _iid, preserving existing columns where the patched doc doesn't supply a new value.
Single delete of id over the given valid-time range.
Batch delete: deletes every row in rel (keyed by _iid).
Single erase of id across all valid time, in one call.
Batch erase: erases every iid in iids across all valid time.