~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/message/transaction_writer.cc

Merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
 */
16
16
 
17
17
using namespace std;
18
 
using namespace drizzled::message;
 
18
using namespace drizzled;
19
19
 
20
20
static uint32_t server_id= 1;
21
21
static uint64_t transaction_id= 0;
35
35
#endif
36
36
}
37
37
 
38
 
static void writeCommit(drizzled::message::Command &record)
 
38
static void writeCommit(message::Command &record)
39
39
{
40
 
  record.set_type(Command::COMMIT);
 
40
  record.set_type(message::Command::COMMIT);
41
41
  record.set_timestamp(getNanoTimestamp());
42
42
 
43
 
  drizzled::message::TransactionContext *trx= record.mutable_transaction_context();
 
43
  message::TransactionContext *trx= record.mutable_transaction_context();
44
44
  trx->set_server_id(server_id);
45
45
  trx->set_transaction_id(transaction_id);
46
46
}
47
47
 
48
48
#if 0
49
 
static void writeRollback(drizzled::message::Command &record)
 
49
static void writeRollback(message::Command &record)
50
50
{
51
 
  record.set_type(Command::ROLLBACK);
 
51
  record.set_type(message::Command::ROLLBACK);
52
52
  record.set_timestamp(getNanoTimestamp());
53
53
 
54
 
  drizzled::message::TransactionContext *trx= record.mutable_transaction_context();
 
54
  message::TransactionContext *trx= record.mutable_transaction_context();
55
55
  trx->set_server_id(server_id);
56
56
  trx->set_transaction_id(transaction_id);
57
57
}
58
58
#endif
59
59
 
60
 
static void writeStartTransaction(drizzled::message::Command &record)
 
60
static void writeStartTransaction(message::Command &record)
61
61
{
62
 
  record.set_type(Command::START_TRANSACTION);
 
62
  record.set_type(message::Command::START_TRANSACTION);
63
63
  record.set_timestamp(getNanoTimestamp());
64
64
 
65
 
  drizzled::message::TransactionContext *trx= record.mutable_transaction_context();
 
65
  message::TransactionContext *trx= record.mutable_transaction_context();
66
66
  trx->set_server_id(server_id);
67
67
  trx->set_transaction_id(transaction_id);
68
68
}
69
69
 
70
 
static void writeInsert(drizzled::message::Command &record)
 
70
static void writeInsert(message::Command &record)
71
71
{
72
 
  record.set_type(Command::INSERT);
 
72
  record.set_type(message::Command::INSERT);
73
73
  record.set_sql("INSERT INTO t1 (a) VALUES (1) (2)");
74
74
  record.set_timestamp(getNanoTimestamp());
75
75
  record.set_schema("test");
76
76
  record.set_table("t1");
77
77
 
78
 
  drizzled::message::TransactionContext *trx= record.mutable_transaction_context();
 
78
  message::TransactionContext *trx= record.mutable_transaction_context();
79
79
  trx->set_server_id(server_id);
80
80
  trx->set_transaction_id(transaction_id);
81
81
 
82
 
  drizzled::message::InsertRecord *irecord= record.mutable_insert_record();
 
82
  message::InsertRecord *irecord= record.mutable_insert_record();
83
83
 
84
84
  /* Add Fields and Values... */
85
85
 
86
 
  Table::Field *field= irecord->add_insert_field();
 
86
  message::Table::Field *field= irecord->add_insert_field();
87
87
  field->set_name("a");
88
 
  field->set_type(drizzled::message::Table::Field::VARCHAR);
 
88
  field->set_type(message::Table::Field::VARCHAR);
89
89
 
90
90
  irecord->add_insert_value("1");
91
91
  irecord->add_insert_value("2");
92
92
}
93
93
 
94
 
static void writeDeleteWithPK(drizzled::message::Command &record)
 
94
static void writeDeleteWithPK(message::Command &record)
95
95
{
96
 
  record.set_type(Command::DELETE);
 
96
  record.set_type(message::Command::DELETE);
97
97
  record.set_sql("DELETE FROM t1 WHERE a = 1");
98
98
  record.set_timestamp(getNanoTimestamp());
99
99
  record.set_schema("test");
100
100
  record.set_table("t1");
101
101
 
102
 
  drizzled::message::TransactionContext *trx= record.mutable_transaction_context();
 
102
  message::TransactionContext *trx= record.mutable_transaction_context();
103
103
  trx->set_server_id(server_id);
104
104
  trx->set_transaction_id(transaction_id);
105
105
 
106
 
  drizzled::message::DeleteRecord *drecord= record.mutable_delete_record();
 
106
  message::DeleteRecord *drecord= record.mutable_delete_record();
107
107
 
108
 
  Table::Field *field= drecord->add_where_field();
 
108
  message::Table::Field *field= drecord->add_where_field();
109
109
  field->set_name("a");
110
 
  field->set_type(drizzled::message::Table::Field::VARCHAR);
 
110
  field->set_type(message::Table::Field::VARCHAR);
111
111
 
112
112
  drecord->add_where_value("1");
113
113
}
114
114
 
115
 
static void writeUpdateWithPK(drizzled::message::Command &record)
 
115
static void writeUpdateWithPK(message::Command &record)
116
116
{
117
 
  record.set_type(Command::UPDATE);
 
117
  record.set_type(message::Command::UPDATE);
118
118
  record.set_sql("UPDATE t1 SET a = 5 WHERE a = 1;");
119
119
  record.set_timestamp(getNanoTimestamp());
120
120
  record.set_schema("test");
121
121
  record.set_table("t1");
122
122
 
123
 
  drizzled::message::TransactionContext *trx= record.mutable_transaction_context();
 
123
  message::TransactionContext *trx= record.mutable_transaction_context();
124
124
  trx->set_server_id(server_id);
125
125
  trx->set_transaction_id(transaction_id);
126
126
 
127
 
  drizzled::message::UpdateRecord *urecord= record.mutable_update_record();
 
127
  message::UpdateRecord *urecord= record.mutable_update_record();
128
128
 
129
 
  Table::Field *field;
 
129
  message::Table::Field *field;
130
130
  
131
131
  field= urecord->add_update_field();
132
132
  field->set_name("a");
133
 
  field->set_type(drizzled::message::Table::Field::VARCHAR);
 
133
  field->set_type(message::Table::Field::VARCHAR);
134
134
 
135
135
  urecord->add_after_value("5");
136
136
 
137
137
  field= urecord->add_where_field();
138
138
  field->set_name("a");
139
 
  field->set_type(drizzled::message::Table::Field::VARCHAR);
 
139
  field->set_type(message::Table::Field::VARCHAR);
140
140
 
141
141
  urecord->add_where_value("1");
142
142
}
143
143
 
144
 
static void writeTransaction(int file, drizzled::message::Transaction &transaction)
 
144
static void writeTransaction(int file, message::Transaction &transaction)
145
145
{
146
146
  std::string buffer;
147
147
  size_t length;
148
148
  size_t written;
149
149
 
150
 
  drizzled::message::TransactionContext *trx= transaction.mutable_transaction_context();
 
150
  message::TransactionContext *trx= transaction.mutable_transaction_context();
151
151
  trx->set_server_id(server_id);
152
152
  trx->set_transaction_id(transaction_id);
153
153
 
191
191
  transaction_id++;
192
192
 
193
193
  /* Simple INSERT statement */
194
 
  Transaction transaction;
 
194
  message::Transaction transaction;
195
195
  transaction.set_start_timestamp(getNanoTimestamp());
196
196
  writeStartTransaction(*transaction.add_command());
197
197
  writeInsert(*transaction.add_command());