4
#include "replication_event.pb.h"
8
Example reader application for master.info data.
11
void printRecord(const drizzle::EventList *list)
13
using namespace drizzle;
16
for (x= 0; x < list->event_size(); x++)
18
const drizzle::Event event= list->event(x);
21
cout << endl << "##########################################################################################" << endl << endl;
32
cout << "INSERT INTO " << event.table() << " (";
34
for (x= 0; x < event.field_names_size() ; x++)
39
cout << event.field_names(x);
42
cout << ") VALUES " << endl;
44
for (x= 0; x < event.values_size(); x++)
47
Event_Value values= event.values(x);
53
for (y= 0; y < values.value_size() ; y++)
58
cout << "\"" << values.value(y) << "\"";
69
Event_Value values= event.values(0);
71
cout << "DELETE FROM " << event.table() << " WHERE " << event.primary_key() << " IN (";
73
for (x= 0; x < values.value_size() ; x++)
78
cout << "\"" << values.value(x) << "\"";
88
for (count= 0; count < event.values_size() ; count++)
91
Event_Value values= event.values(count);
93
cout << "UPDATE " << event.table() << " SET ";
95
for (x= 1; x < values.value_size() ; x++)
100
cout << event.field_names(x - 1) << " = \"" << values.value(x) << "\"";
103
cout << " WHERE " << event.primary_key() << " = " << values.value(0) << endl;
109
cout << "COMMIT" << endl;
115
cout << "Original SQL: " << event.sql() << endl;
117
cout << "AUTOCOMMIT: " << event.autocommit() << endl;
118
cout << "Server id: " << event.server_id() << endl;
119
cout << "Query id: " << event.query_id() << endl;
120
cout << "Transaction id: " << event.transaction_id() << endl;
121
cout << "Schema: " << event.schema() << endl;
122
if (event.type() != Event::DDL)
123
cout << "Table Name: " << event.table() << endl;
127
int main(int argc, char* argv[])
129
GOOGLE_PROTOBUF_VERIFY_VERSION;
133
cerr << "Usage: " << argv[0] << " replication event log " << endl;
137
drizzle::EventList list;
140
// Read the existing master.info file
141
fstream input(argv[1], ios::in | ios::binary);
142
if (!list.ParseFromIstream(&input))
144
cerr << "Failed to parse master.info." << endl;