~ubuntu-branches/ubuntu/trusty/drizzle/trusty

« back to all changes in this revision

Viewing changes to plugin/transaction_log/tests/r/savepoint.result

  • Committer: Package Import Robot
  • Author(s): Clint Byrum
  • Date: 2012-06-19 10:46:49 UTC
  • mfrom: (1.1.6)
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20120619104649-e2l0ggd4oz3um0f4
Tags: upstream-7.1.36-stable
ImportĀ upstreamĀ versionĀ 7.1.36-stable

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
DROP TABLE IF EXISTS t1;
2
 
DROP TABLE IF EXISTS t2;
3
 
CREATE TABLE t1(a INT NOT NULL AUTO_INCREMENT, b VARCHAR(10), c VARCHAR(10), PRIMARY KEY(a));
4
 
CREATE TABLE t2(a INT NOT NULL AUTO_INCREMENT, b VARCHAR(10), c VARCHAR(10), PRIMARY KEY(a));
5
 
CREATE TABLE t3(a INT NOT NULL AUTO_INCREMENT, b VARCHAR(10), c VARCHAR(10), PRIMARY KEY(a));
6
 
INSERT INTO t1 (b,c) VALUES ('1','ok'), ('3','ok');
7
 
INSERT INTO t2 (b,c) VALUES ('2','ok'), ('4','ok');
8
 
INSERT INTO t3 (b,c) VALUES ('1','ok'), ('2','ok'), ('3','ok'), ('4','ok'), ('5','ok'), ('6','ok'), ('7','ok'), ('8','ok'), ('9','ok'), ('10','ok');
9
 
SET GLOBAL transaction_log_truncate_debug= true;
10
 
 
11
 
Test deadlock
12
 
 
13
 
SET AUTOCOMMIT=OFF;
14
 
START TRANSACTION;
15
 
UPDATE t1 SET c = 'trx1' WHERE a > 0;
16
 
SAVEPOINT A;
17
 
 
18
 
Should have one savepoint: A
19
 
SELECT * FROM DATA_DICTIONARY.USER_DEFINED_SAVEPOINTS;
20
 
SAVEPOINT_NAME
21
 
A
22
 
 
23
 
SET AUTOCOMMIT=OFF;
24
 
START TRANSACTION;
25
 
UPDATE t2 SET a = a*3;
26
 
UPDATE t1 SET b = 'trx2' WHERE a > 0;
27
 
DELETE FROM t2 WHERE a > 0;
28
 
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
29
 
 
30
 
Should have no savepoints
31
 
SELECT * FROM DATA_DICTIONARY.USER_DEFINED_SAVEPOINTS;
32
 
SAVEPOINT_NAME
33
 
 
34
 
SAVEPOINT A;
35
 
UPDATE t3 SET c = 'TRX1a' WHERE a < 10 ORDER BY b LIMIT 4;
36
 
UPDATE t3 SET b = 'TRX1b' WHERE a < 10 ORDER BY c LIMIT 4;
37
 
ROLLBACK TO SAVEPOINT A;
38
 
SAVEPOINT A;
39
 
ROLLBACK;
40
 
START TRANSACTION;
41
 
 
42
 
Definitely should have no savepoints
43
 
SELECT * FROM DATA_DICTIONARY.USER_DEFINED_SAVEPOINTS;
44
 
SAVEPOINT_NAME
45
 
 
46
 
UPDATE t3 SET b = 'TRX1c' WHERE a > 7;
47
 
ROLLBACK TO SAVEPOINT A;
48
 
ERROR 42000: SAVEPOINT A does not exist
49
 
COMMIT;
50
 
COMMIT;
51
 
 
52
 
SELECT * FROM t1;
53
 
a       b       c
54
 
1       trx2    ok
55
 
2       trx2    ok
56
 
 
57
 
SELECT * FROM t2;
58
 
a       b       c
59
 
3       2       ok
60
 
6       4       ok
61
 
 
62
 
SELECT * FROM t3;
63
 
a       b       c
64
 
1       1       ok
65
 
2       2       ok
66
 
3       3       ok
67
 
4       4       ok
68
 
5       5       ok
69
 
6       6       ok
70
 
7       7       ok
71
 
8       TRX1c   ok
72
 
9       TRX1c   ok
73
 
10      TRX1c   ok
74
 
 
75
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log', ENTRY_OFFSET) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
76
 
PRINT_TRANSACTION_MESSAGE('transaction.log', ENTRY_OFFSET)
77
 
transaction_context {
78
 
  server_id: 1
79
 
  TRANSACTION_ID
80
 
  START_TIMESTAMP
81
 
  END_TIMESTAMP
82
 
}
83
 
statement {
84
 
  type: UPDATE
85
 
  START_TIMESTAMP
86
 
  END_TIMESTAMP
87
 
  sql: "UPDATE t3 SET b = \'TRX1c\' WHERE a > 7"
88
 
  update_header {
89
 
    table_metadata {
90
 
      schema_name: "test"
91
 
      table_name: "t3"
92
 
    }
93
 
    key_field_metadata {
94
 
      type: INTEGER
95
 
      name: "a"
96
 
    }
97
 
    set_field_metadata {
98
 
      type: VARCHAR
99
 
      name: "b"
100
 
    }
101
 
  }
102
 
  update_data {
103
 
    segment_id: 1
104
 
    end_segment: true
105
 
    record {
106
 
      key_value: "8"
107
 
      after_value: "TRX1c"
108
 
      is_null: false
109
 
    }
110
 
    record {
111
 
      key_value: "9"
112
 
      after_value: "TRX1c"
113
 
      is_null: false
114
 
    }
115
 
    record {
116
 
      key_value: "10"
117
 
      after_value: "TRX1c"
118
 
      is_null: false
119
 
    }
120
 
  }
121
 
}
122
 
segment_id: 1
123
 
end_segment: true
124
 
 
125
 
transaction_context {
126
 
  server_id: 1
127
 
  TRANSACTION_ID
128
 
  START_TIMESTAMP
129
 
  END_TIMESTAMP
130
 
}
131
 
statement {
132
 
  type: UPDATE
133
 
  START_TIMESTAMP
134
 
  END_TIMESTAMP
135
 
  sql: "UPDATE t2 SET a = a*3"
136
 
  update_header {
137
 
    table_metadata {
138
 
      schema_name: "test"
139
 
      table_name: "t2"
140
 
    }
141
 
    key_field_metadata {
142
 
      type: INTEGER
143
 
      name: "a"
144
 
    }
145
 
    set_field_metadata {
146
 
      type: INTEGER
147
 
      name: "a"
148
 
    }
149
 
  }
150
 
  update_data {
151
 
    segment_id: 1
152
 
    end_segment: true
153
 
    record {
154
 
      key_value: "1"
155
 
      after_value: "3"
156
 
      is_null: false
157
 
    }
158
 
    record {
159
 
      key_value: "2"
160
 
      after_value: "6"
161
 
      is_null: false
162
 
    }
163
 
  }
164
 
}
165
 
statement {
166
 
  type: UPDATE
167
 
  START_TIMESTAMP
168
 
  END_TIMESTAMP
169
 
  sql: "UPDATE t1 SET b = \'trx2\' WHERE a > 0"
170
 
  update_header {
171
 
    table_metadata {
172
 
      schema_name: "test"
173
 
      table_name: "t1"
174
 
    }
175
 
    key_field_metadata {
176
 
      type: INTEGER
177
 
      name: "a"
178
 
    }
179
 
    set_field_metadata {
180
 
      type: VARCHAR
181
 
      name: "b"
182
 
    }
183
 
  }
184
 
  update_data {
185
 
    segment_id: 1
186
 
    end_segment: true
187
 
    record {
188
 
      key_value: "1"
189
 
      after_value: "trx2"
190
 
      is_null: false
191
 
    }
192
 
    record {
193
 
      key_value: "2"
194
 
      after_value: "trx2"
195
 
      is_null: false
196
 
    }
197
 
  }
198
 
}
199
 
segment_id: 1
200
 
end_segment: true
201
 
 
202
 
DROP TABLE t1, t2, t3;
203
 
SET GLOBAL transaction_log_truncate_debug= true;