Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as Plain Text by Joe ( 16 years ago )
DROP TABLE IF EXISTS t1;
--enable_warnings
CREATE TABLE t1 (
id INT NOT NULL
, padding VARCHAR(200) NOT NULL
, PRIMARY KEY (id)
);
INSERT INTO t1 VALUES (1, "I love testing.");
INSERT INTO t1 VALUES (3, "I hate testing.");
INSERT INTO t1 VALUES (5, "I still hate testing.");
connect (conn1, localhost, root,,);
connect (conn2, localhost, root,,);
connection conn1;
--source ../plugin/transaction_log/tests/t/truncate_log.inc
--echo
START TRANSACTION;
INSERT INTO t1 VALUES (7, "I still still hate testing.");
SELECT id FROM t1 FOR UPDATE;
connection conn2;
# This should timeout and not appear in the transaction log
--error ER_LOCK_WAIT_TIMEOUT
UPDATE t1 SET id=1000 WHERE padding='I love testing.';
connection conn1;
UPDATE t1 SET id=id + 1;
COMMIT;
--source ../plugin/transaction_log/tests/t/check_transaction_log.inc
--echo
+# check transaction_log
+SELECT * FROM DATA_DICTIONARY.TRANSACTION_LOG;
+FILE_NAME FILE_LENGTH NUM_LOG_ENTRIES NUM_TRANSACTIONS MIN_TRANSACTION_ID MAX_TRANSACTION_IDMIN_END_TIMESTAMP MAX_END_TIMESTAMP INDEX_SIZE_IN_BYTES
+transaction.log 223 1 1 1 1 START_TIMESTAMP END_TIMESTAMP 73736
+
+Check transaction_log_entries
+SELECT * FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
+ENTRY_OFFSET ENTRY_TYPE ENTRY_LENGTH
+0 TRANSACTION 223
+
+Check transaction_log_transactions
+SELECT * FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
+ENTRY_OFFSET TRANSACTION_ID SERVER_ID START_TIMESTAMP END_TIMESTAMP NUM_STATEMENTS CHECKSUM
+0 1 1 START_TIMESTAMP END_TIMESTAMP 2 0
+Check transaction log contents
+SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
+PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
+transaction_context {
+ server_id: 1
+ transaction_id: 1
+ START_TIMESTAMP
+ END_TIMESTAMP
+}
+statement {
+ type: INSERT
+ START_TIMESTAMP
+ END_TIMESTAMP
+ insert_header {
+ table_metadata {
+ schema_name: "test"
+ table_name: "t1"
+ }
+ field_metadata {
+ type: INTEGER
+ name: "id"
+ }
+ field_metadata {
+ type: VARCHAR
+ name: "padding"
+ }
+ }
+ insert_data {
+ segment_id: 1
+ end_segment: true
+ record {
+ insert_value: "7"
+ insert_value: "I still still hate testing."
+ }
+ }
+}
+statement {
+ type: UPDATE
+ start_timestamp: 1278004207819349
+ end_timestamp: 1278004207819976
+ update_header {
+ table_metadata {
+ schema_name: "test"
+ table_name: "t1"
+ }
+ key_field_metadata {
+ type: INTEGER
+ name: "id"
+ }
+ set_field_metadata {
+ type: INTEGER
+ name: "id"
+ }
+ }
+ update_data {
+ segment_id: 1
+ end_segment: true
+ record {
+ key_value: "1"
+ after_value: "2"
+ }
+ record {
+ key_value: "3"
+ after_value: "4"
+ }
+ record {
+ key_value: "5"
+ after_value: "6"
+ }
+ record {
+ key_value: "7"
+ after_value: "8"
+ }
+}
+
+
+
+DROP TABLE t1;
+SET GLOBAL transaction_log_truncate_debug= true;
Revise this Paste