3
package drizzled.message;
4
option optimize_for = SPEED;
7
Context for a transaction.
9
message TransactionContext
11
required int32 server_id = 1;
12
required int64 transaction_id = 2;
16
Insert one record into a single table.
20
repeated Table.Field insert_field = 3;
21
repeated bytes insert_value = 4;
25
Update one record in a single table.
29
repeated Table.Field update_field = 3;
30
repeated bytes before_value = 4;
31
repeated bytes after_value = 5;
32
repeated Table.Field where_field = 6;
33
repeated bytes where_value = 7;
37
Deletes one record in a single table
41
repeated Table.Field where_field = 3;
42
repeated bytes where_value = 4;
46
A component of a transaction -- a single instruction or command
52
START_TRANSACTION = 0; /* A START TRANSACTION statement */
53
COMMIT = 1; /* A COMMIT statement */
54
ROLLBACK = 2; /* A ROLLBACK statement */
55
INSERT = 3; /* An insert of a single record */
56
DELETE = 4; /* A delete of a single record */
57
UPDATE = 5; /* An update of a single record */
58
RAW_SQL = 6; /* A raw SQL statement */
60
required Type type = 1;
61
required uint64 timestamp = 2; /* A nanosecond precision timestamp */
63
Transaction Context is duplicated here so that ChangeRecords may
64
be sent over the wire separately from the rest of the records in
67
required TransactionContext transaction_context = 3;
68
optional string schema = 4; /* The schema affected */
69
optional string table = 5; /* The table affected */
71
optional string sql = 6; /* May contain the actual SQL supplied for the original statement */
74
The below implement the actual change. Each ChangeRecord will
75
have zero or one of the below sub-messages defined.
77
optional InsertRecord insert_record = 7;
78
optional DeleteRecord delete_record = 8;
79
optional UpdateRecord update_record = 9;
84
required TransactionContext transaction_context = 1;
85
required uint64 start_timestamp = 2;
86
required uint64 end_timestamp = 3;
87
repeated Command command = 4;
91
* Describes a server used in replication. This message
92
* class is passed in the Publisher::registerSubscriber()
93
* and Subscriber::subscribe() methods.
97
required int32 server_id = 1; /* A unique numeric identifier for this server */
98
required string ip_address = 2; /* A valid IP address */
99
required uint32 port = 3; /* Port that this server is listening for replication events */
100
optional string name = 4; /* Optional name for the server */
104
* A subscriber manifest describes the state of
105
* a subscriber in replication. This message class
106
* is passed in the replication API in the
107
* drizzled::plugin::Publisher's dataIsAvailable() and
110
message SubscriberManifest
112
required int32 server_id = 1; /* Only need to pass the ID...not the whole Server message */
113
required uint64 last_applied_timestamp = 2; /* The timestamp of the last time this subscriber communicated with the publisher */
114
required int64 last_applied_transaction_id = 3; /* The timestamp of last applied transaction or command */