summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2018-05-06 22:46:56 +0200
committerSergei Golubchik <serg@mariadb.org>2018-05-08 10:48:13 +0200
commit34045af03f25fc2edd7c0c8db054e505f271513c (patch)
tree25f14d17460cf65238657b1e87afe4fec5fd4d90 /mysql-test
parent087ea8f820f46e200a2f8f84328c078555dda45f (diff)
downloadmariadb-git-34045af03f25fc2edd7c0c8db054e505f271513c.tar.gz
MDEV-15216 Assertion `! is_set() || m_can_overwrite_status' failed in Diagnostics_area::set_error_status upon operation inside XA
don't implicitly commit or rollback in mysql_admin_table() unless the statement has CF_IMPLICIT_COMMIT_END flag.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/assign_key_cache.result13
-rw-r--r--mysql-test/r/implicit_commit.result4
-rw-r--r--mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result4
-rw-r--r--mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result4
-rw-r--r--mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result4
-rw-r--r--mysql-test/t/assign_key_cache.test13
6 files changed, 28 insertions, 14 deletions
diff --git a/mysql-test/r/assign_key_cache.result b/mysql-test/r/assign_key_cache.result
new file mode 100644
index 00000000000..4ed6170136b
--- /dev/null
+++ b/mysql-test/r/assign_key_cache.result
@@ -0,0 +1,13 @@
+set global my_cache.key_buffer_size = 1024*1024;
+create table t1 (i int) engine=myisam partition by hash (i) partitions 2;
+xa start 'xid';
+cache index t1 partition (non_existing_partition) in my_cache;
+Table Op Msg_type Msg_text
+test.t1 assign_to_keycache error Error in list of partitions to test.t1
+cache index t1 partition (p1) in my_cache;
+Table Op Msg_type Msg_text
+test.t1 assign_to_keycache status OK
+xa end 'xid';
+xa rollback 'xid';
+drop table t1;
+set global my_cache.key_buffer_size = 0;
diff --git a/mysql-test/r/implicit_commit.result b/mysql-test/r/implicit_commit.result
index d568d05e7b7..0dcee1b8f06 100644
--- a/mysql-test/r/implicit_commit.result
+++ b/mysql-test/r/implicit_commit.result
@@ -561,7 +561,7 @@ INSERT INTO db1.trans (a) VALUES (1);
cache index t3 in keycache;
CALL db1.test_if_commit();
IMPLICIT COMMIT
-YES
+NO
set global keycache.key_buffer_size=0;
#
# SQLCOM_PRELOAD_KEYS
@@ -570,7 +570,7 @@ INSERT INTO db1.trans (a) VALUES (1);
load index into cache t3;
CALL db1.test_if_commit();
IMPLICIT COMMIT
-YES
+NO
#
# SQLCOM_FLUSH
#
diff --git a/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result b/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result
index e272961abe9..7efb1f7162b 100644
--- a/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result
+++ b/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result
@@ -140,11 +140,7 @@ master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; DROP FUNCTION myfunc_int
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (41)
-master-bin.000001 # Xid # # COMMIT /* XID */
-master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (40)
-master-bin.000001 # Xid # # COMMIT /* XID */
-master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (39)
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Gtid # # GTID #-#-#
diff --git a/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result b/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result
index 5d6590bd821..e24a84e02a1 100644
--- a/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result
+++ b/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result
@@ -145,12 +145,8 @@ master-bin.000001 # Query # # use `test`; DROP FUNCTION myfunc_int
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Table_map # # table_id: # (test.tt_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Xid # # COMMIT /* XID */
-master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Table_map # # table_id: # (test.tt_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
-master-bin.000001 # Xid # # COMMIT /* XID */
-master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Table_map # # table_id: # (test.tt_1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
diff --git a/mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result b/mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result
index e272961abe9..7efb1f7162b 100644
--- a/mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result
+++ b/mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result
@@ -140,11 +140,7 @@ master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; DROP FUNCTION myfunc_int
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (41)
-master-bin.000001 # Xid # # COMMIT /* XID */
-master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (40)
-master-bin.000001 # Xid # # COMMIT /* XID */
-master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(ddl_case) VALUES (39)
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Gtid # # GTID #-#-#
diff --git a/mysql-test/t/assign_key_cache.test b/mysql-test/t/assign_key_cache.test
new file mode 100644
index 00000000000..401e7bf9138
--- /dev/null
+++ b/mysql-test/t/assign_key_cache.test
@@ -0,0 +1,13 @@
+#
+# MDEV-15216 Assertion `! is_set() || m_can_overwrite_status' failed in Diagnostics_area::set_error_status upon operation inside XA
+#
+--source include/have_partition.inc
+set global my_cache.key_buffer_size = 1024*1024;
+create table t1 (i int) engine=myisam partition by hash (i) partitions 2;
+xa start 'xid';
+cache index t1 partition (non_existing_partition) in my_cache;
+cache index t1 partition (p1) in my_cache;
+xa end 'xid';
+xa rollback 'xid';
+drop table t1;
+set global my_cache.key_buffer_size = 0;