From 21d03cb08a6a0ebd17fc17b9bf77300a275fb989 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 7 Oct 2021 12:03:34 +0200 Subject: [PATCH] MDEV-26654 ROW_NUMBER is wrong upon INSERT into Federated table just a test case --- .../suite/federated/error_row_number.result | 26 +++++++++++++++++++ .../suite/federated/error_row_number.test | 18 +++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 mysql-test/suite/federated/error_row_number.result create mode 100644 mysql-test/suite/federated/error_row_number.test diff --git a/mysql-test/suite/federated/error_row_number.result b/mysql-test/suite/federated/error_row_number.result new file mode 100644 index 00000000000..a53f3a87a17 --- /dev/null +++ b/mysql-test/suite/federated/error_row_number.result @@ -0,0 +1,26 @@ +# +# MDEV-26654 ROW_NUMBER is wrong upon INSERT into Federated table +# +connect master,127.0.0.1,root,,test,$MASTER_MYPORT,; +connect slave,127.0.0.1,root,,test,$SLAVE_MYPORT,; +connection master; +CREATE DATABASE federated; +connection slave; +CREATE DATABASE federated; +connection master; +create table t (pk int primary key); +create table tfed engine=FEDERATED connection='mysql://root@localhost:$MASTER_MYPORT/test/t'; +insert into tfed values (1),(2),(1); +ERROR 23000: Can't write; duplicate key in table 'tfed' +get diagnostics condition 1 @val = row_number; +# federated is doing bulk insert here, the exact row number is unknown +select @val; +@val +0 +drop table tfed, t; +connection master; +DROP TABLE IF EXISTS federated.t1; +DROP DATABASE IF EXISTS federated; +connection slave; +DROP TABLE IF EXISTS federated.t1; +DROP DATABASE IF EXISTS federated; diff --git a/mysql-test/suite/federated/error_row_number.test b/mysql-test/suite/federated/error_row_number.test new file mode 100644 index 00000000000..8d943589e07 --- /dev/null +++ b/mysql-test/suite/federated/error_row_number.test @@ -0,0 +1,18 @@ +--echo # +--echo # MDEV-26654 ROW_NUMBER is wrong upon INSERT into Federated table +--echo # + +--source suite/federated/have_federatedx.inc +--source include/federated.inc +--connection master + +create table t (pk int primary key); +--evalp create table tfed engine=FEDERATED connection='mysql://root@localhost:$MASTER_MYPORT/test/t' +--error ER_DUP_KEY +insert into tfed values (1),(2),(1); +get diagnostics condition 1 @val = row_number; +--echo # federated is doing bulk insert here, the exact row number is unknown +select @val; + +drop table tfed, t; +--source include/federated_cleanup.inc