99
99
statement->set_end_timestamp(getNanoTimestamp());
102
static void doCreateTable3(message::Transaction &transaction)
104
message::Statement *statement= transaction.add_statement();
106
statement->set_type(message::Statement::RAW_SQL);
107
statement->set_sql("CREATE TABLE t3 (a INTEGER NOT NULL, b BLOB NOT NULL, PRIMARY KEY a) ENGINE=InnoDB");
108
statement->set_start_timestamp(getNanoTimestamp());
109
statement->set_end_timestamp(getNanoTimestamp());
112
102
static void doSimpleInsert(message::Transaction &transaction)
114
104
message::Statement *statement= transaction.add_statement();
179
169
statement->set_end_timestamp(getNanoTimestamp());
182
static void doBlobInsert(message::Transaction &transaction)
184
message::Statement *statement= transaction.add_statement();
186
/* Do generic Statement setup */
187
statement->set_type(message::Statement::INSERT);
188
statement->set_sql("INSERT INTO t3 (a, b) VALUES (1, 'test\0me')", 43); /* 43 == length including \0 */
189
statement->set_start_timestamp(getNanoTimestamp());
191
/* Do INSERT-specific header and setup */
192
message::InsertHeader *header= statement->mutable_insert_header();
194
/* Add table and field metadata for the statement */
195
message::TableMetadata *t_meta= header->mutable_table_metadata();
196
t_meta->set_schema_name("test");
197
t_meta->set_table_name("t3");
199
message::FieldMetadata *f_meta= header->add_field_metadata();
200
f_meta->set_name("a");
201
f_meta->set_type(message::Table::Field::INTEGER);
203
f_meta= header->add_field_metadata();
204
f_meta->set_name("b");
205
f_meta->set_type(message::Table::Field::BLOB);
207
/* Add new values... */
208
message::InsertData *data= statement->mutable_insert_data();
209
data->set_segment_id(1);
210
data->set_end_segment(true);
212
message::InsertRecord *record1= data->add_record();
214
record1->add_insert_value("1");
215
record1->add_insert_value("test\0me", 7); /* 7 == length including \0 */
217
statement->set_end_timestamp(getNanoTimestamp());
220
172
static void doSimpleDelete(message::Transaction &transaction)
222
174
message::Statement *statement= transaction.add_statement();
402
354
writeTransaction(coded_output, transaction);
403
355
transaction.Clear();
405
/* Write an INSERT which writes BLOB data */
406
initTransactionContext(transaction);
407
doCreateTable3(transaction);
408
doBlobInsert(transaction);
409
writeTransaction(coded_output, transaction);
412
357
delete coded_output;
413
358
delete raw_output;