The SymmetricDS Data Format is used to stream data from one node to another. The data format reader and writer are pluggable with an initial implementation using a format based on Comma Separated Values (CSV). Each line in the stream is a record with fields separated by commas. String fields are surrounded with double quotes. Double quotes and backslashes used in a string field are escaped with a backslash. Binary values are represented as a string with hex values in "\0xab" format. The absence of any value in the field indicates a null value. Extra spacing is ignored and lines starting with a hash are ignored.
The first field of each line gives the directive for the line. The following directives are used:
Indicates the version of the file format
Sets the context of which table on which to operate.
Lists the column names that are used as the primary key for the table. Only needs to occur after the first occurrence of the table.
Lists all the column names (including key columns) of the table. Only needs to occur after the first occurrence of the table.
Insert into the table with the values that correspond with the columns.
Update the table using the old key values to set the new column values.
Delete from the table using the old key values.
version, 1,0,0
table, item_selling_price
keys, price_id
columns, price_id, price, cost
insert, 55, 0.65, 0.55
table, item
keys, item_id
columns, item_id, price_id, name
insert, 110000055, 55, "Soft Drink"
delete, 110000001
table, item_selling_price
update, 55, 0.75, 0.65, 55
Example C.1. Data Format Stream