~drizzle-trunk/drizzle/development

324.1.1 by Mats Kindahl
Adding specification of a simple protobuf-based binary log format,
1
package BinaryLog;
2
3
// Design goals:
4
5
// - Keep the name of the individual binary logs out of the files. We
6
//   assume that each binary log has a base name (e.g., the name of
7
//   the server) and a sequence number, but we do not want to tie the
8
//   base name
9
10
message Header {
11
  required uint32 server_id = 1;
12
  required uint32 trans_id = 2;
13
  required uint32 seqno = 3;
14
}
15
16
// Start of a binary log. Note that the name 
17
message Start {
18
  required Header header = 1;
19
  required uint32 server_version = 2;
20
  required string server_signature = 3;
21
}
22
23
// Chain a binary log to the next binary log
24
message Chain {
25
  required Header header = 1;
26
  required uint32 next = 2;            // Sequence number of next file
27
}
28
29
message Query {
30
  // Assignments to variables that are part of the query
31
  message Variable {
32
    required string name = 1;
33
    required string value = 2;
34
    // Character set?
35
  }
36
37
  required Header header = 1;
38
  repeated Variable variable = 3;
39
  required string query = 2;
40
}
41
42
message Commit {
43
  required Header header = 1;
44
}
45
46
message Rollback {
47
  required Header header = 1;
48
}
49
50
51
52