51
51
static const char *replace_with_spaces= "\n\r";
53
static void printStatement(const message::Statement &statement, string &output)
53
static void printErrorMessage(enum message::TransformSqlError err)
57
case message::MISSING_HEADER:
59
cerr << "Data segment without a header\n";
62
case message::MISSING_DATA:
64
cerr << "Header segment without a data segment\n";
67
case message::UUID_MISMATCH:
69
cerr << "UUID on objects did not match\n";
74
cerr << "Unhandled error\n";
81
* Transform the given Statement message into a printable SQL string.
83
* @param[in] statement The Statement protobuf message to transform.
84
* @param[out] output Storage for the printable string.
86
* @retval true Success
89
static bool printStatement(const message::Statement &statement, string &output)
55
91
vector<string> sql_strings;
57
message::transformStatementToSql(statement,
60
true /* already in transaction */);
92
enum message::TransformSqlError err;
94
err= message::transformStatementToSql(statement,
97
true /* already in transaction */);
99
if (err != message::NONE)
101
printErrorMessage(err);
62
105
for (vector<string>::iterator sql_string_iter= sql_strings.begin();
63
106
sql_string_iter != sql_strings.end();
287
static void printTransaction(const message::Transaction &transaction,
333
* Transform the given Transaction message into printable SQL strings.
335
* @param[in] transaction The Transaction protobuf message to transform.
336
* @param[in] ignore_events If true, Event messages are not output.
337
* @param[in] print_as_raw If true, print as raw protobuf instead of SQL.
339
* @retval true Success
340
* @retval false Error
342
static bool printTransaction(const message::Transaction &transaction,
288
343
bool ignore_events,
289
344
bool print_as_raw)
346
401
should_commit= false;
349
printStatement(statement, output);
405
if (not printStatement(statement, output))
351
410
if (isEndStatement(statement))
353
412
/* A complete, non-segmented statement */
395
454
if (should_commit)
396
455
cout << "COMMIT;" << endl;
399
static void processTransactionMessage(TransactionManager &trx_mgr,
460
static bool processTransactionMessage(TransactionManager &trx_mgr,
400
461
const message::Transaction &transaction,
402
463
bool ignore_events,
451
printTransaction(transaction, ignore_events, print_as_raw);
515
if (not printTransaction(transaction, ignore_events, print_as_raw))
527
* @retval 0 Process completed successfully.
528
* @retval -1 Process encountered an error.
457
530
int main(int argc, char* argv[])
459
532
GOOGLE_PROTOBUF_VERIFY_VERSION;
578
651
transaction.ParseFromArray(data, length);
580
processTransactionMessage(trx_mgr, transaction,
581
summarize, ignore_events, print_as_raw);
653
if (not processTransactionMessage(trx_mgr, transaction,
654
summarize, ignore_events,
584
661
else // file based transaction log
611
688
if (opt_transaction_id == transaction_id)
613
processTransactionMessage(trx_mgr, transaction, summarize,
614
ignore_events, print_as_raw);
690
if (not processTransactionMessage(trx_mgr, transaction, summarize,
691
ignore_events, print_as_raw))
624
704
* No transaction ID given, so process all messages.
626
processTransactionMessage(trx_mgr, transaction, summarize,
627
ignore_events, print_as_raw);
706
if (not processTransactionMessage(trx_mgr, transaction, summarize,
707
ignore_events, print_as_raw))