summaryrefslogtreecommitdiff
path: root/mysql-test/suite/compat/oracle
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2018-05-06 16:10:49 +0400
committerAlexander Barkov <bar@mariadb.com>2018-05-06 16:10:49 +0400
commit4891d514b6e4920bee5efb965edba7d4f1596a36 (patch)
treedecdbb619d9917fac1623965e403e5ec736e67fa /mysql-test/suite/compat/oracle
parentb20039dd807007bb5662a9cd74b1ed31a21b7eac (diff)
downloadmariadb-git-4891d514b6e4920bee5efb965edba7d4f1596a36.tar.gz
MDEV-16095 Oracle-style placeholder inside GROUP BY..WITH ROLLUP breaks replication
Diffstat (limited to 'mysql-test/suite/compat/oracle')
-rw-r--r--mysql-test/suite/compat/oracle/r/binlog_stm_ps.result31
-rw-r--r--mysql-test/suite/compat/oracle/t/binlog_stm_ps.test20
2 files changed, 51 insertions, 0 deletions
diff --git a/mysql-test/suite/compat/oracle/r/binlog_stm_ps.result b/mysql-test/suite/compat/oracle/r/binlog_stm_ps.result
index c60e3493b3f..01fe3be3a04 100644
--- a/mysql-test/suite/compat/oracle/r/binlog_stm_ps.result
+++ b/mysql-test/suite/compat/oracle/r/binlog_stm_ps.result
@@ -65,3 +65,34 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (10,20)
master-bin.000001 # Query # # COMMIT
DROP TABLE t1;
+#
+# MDEV-16095 Oracle-style placeholder inside GROUP BY..WITH ROLLUP breaks replication
+#
+FLUSH LOGS;
+CREATE TABLE t1 (d DATE);
+INSERT INTO t1 VALUES ('1985-05-13'),('1989-12-24');
+CREATE TABLE t2 (d DATE, c BIGINT);
+BEGIN
+EXECUTE IMMEDIATE 'INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, :param' USING 1;
+EXECUTE IMMEDIATE 'INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, :param WITH ROLLUP' USING 1;
+END;
+$$
+DROP TABLE t1,t2;
+include/show_binlog_events.inc
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000002 # Binlog_checkpoint # # master-bin.000002
+master-bin.000002 # Gtid # # GTID #-#-#
+master-bin.000002 # Query # # use `test`; CREATE TABLE t1 (d DATE)
+master-bin.000002 # Gtid # # BEGIN GTID #-#-#
+master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES ('1985-05-13'),('1989-12-24')
+master-bin.000002 # Query # # COMMIT
+master-bin.000002 # Gtid # # GTID #-#-#
+master-bin.000002 # Query # # use `test`; CREATE TABLE t2 (d DATE, c BIGINT)
+master-bin.000002 # Gtid # # BEGIN GTID #-#-#
+master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, 1
+master-bin.000002 # Query # # COMMIT
+master-bin.000002 # Gtid # # BEGIN GTID #-#-#
+master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, 1 WITH ROLLUP
+master-bin.000002 # Query # # COMMIT
+master-bin.000002 # Gtid # # GTID #-#-#
+master-bin.000002 # Query # # use `test`; DROP TABLE "t1","t2" /* generated by server */
diff --git a/mysql-test/suite/compat/oracle/t/binlog_stm_ps.test b/mysql-test/suite/compat/oracle/t/binlog_stm_ps.test
index 996ef574413..f305f611bd2 100644
--- a/mysql-test/suite/compat/oracle/t/binlog_stm_ps.test
+++ b/mysql-test/suite/compat/oracle/t/binlog_stm_ps.test
@@ -35,3 +35,23 @@ SELECT * FROM t1;
--let $binlog_file = LAST
source include/show_binlog_events.inc;
DROP TABLE t1;
+
+
+--echo #
+--echo # MDEV-16095 Oracle-style placeholder inside GROUP BY..WITH ROLLUP breaks replication
+--echo #
+
+FLUSH LOGS;
+CREATE TABLE t1 (d DATE);
+INSERT INTO t1 VALUES ('1985-05-13'),('1989-12-24');
+CREATE TABLE t2 (d DATE, c BIGINT);
+DELIMITER $$;
+BEGIN
+ EXECUTE IMMEDIATE 'INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, :param' USING 1;
+ EXECUTE IMMEDIATE 'INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, :param WITH ROLLUP' USING 1;
+END;
+$$
+DELIMITER ;$$
+DROP TABLE t1,t2;
+--let $binlog_file = LAST
+source include/show_binlog_events.inc;