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 uint64 transaction_id = 2; /* Globally-unique transaction ID */
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;
81
optional uint32 session_id = 30; /* Optionally stores the ID of the session which executed this command */
86
required TransactionContext transaction_context = 1;
87
required uint64 start_timestamp = 2;
88
required uint64 end_timestamp = 3;
89
repeated Command command = 4;
93
* Describes a server used in replication. This message
94
* class is passed in the Publisher::registerSubscriber()
95
* and Subscriber::subscribe() methods.
99
/* A unique numeric identifier for this server */
100
required int32 server_id = 1;
101
/* A valid IP address */
102
required string ip_address = 2;
103
/* Port that this server is listening for replication events */
104
required uint32 port = 3;
105
/* Optional name for the server */
106
optional string name = 4;
110
* A subscriber manifest describes the state of
111
* a subscriber in replication. This message class
112
* is passed in the replication API in the
113
* drizzled::plugin::Publisher's findSubscriptionState() call
115
message SubscriberManifest
117
/* Only need to pass the ID...not the whole Server message */
118
required int32 server_id = 1;
120
* The timestamp of the last time this subscriber
121
* communicated with the publisher
123
required uint64 last_applied_timestamp = 2;
124
/* The globally unique transaction ID of last applied command */
125
required uint64 last_applied_transaction_id = 3;