diff options
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/main/get_diagnostics.result | 21 | ||||
-rw-r--r-- | mysql-test/main/get_diagnostics.test | 16 |
2 files changed, 37 insertions, 0 deletions
diff --git a/mysql-test/main/get_diagnostics.result b/mysql-test/main/get_diagnostics.result index 2e749fa21d7..2606f6a90e0 100644 --- a/mysql-test/main/get_diagnostics.result +++ b/mysql-test/main/get_diagnostics.result @@ -1811,3 +1811,24 @@ SELECT @n; @n 4 DROP TABLE t; +# +# MDEV-26698: Incorrect row number upon INSERT .. SELECT from the same +# table: rows are counted twice +# +CREATE OR REPLACE TABLE t (a TINYINT); +INSERT INTO t VALUES (1),(100); +INSERT INTO t SELECT a*2 FROM t; +Warnings: +Warning 1264 Out of range value for column 'a' at row 2 +GET DIAGNOSTICS CONDITION 1 @err1 = ROW_NUMBER; +SELECT @err1; +@err1 +2 +GET DIAGNOSTICS CONDITION 2 @err2 = ROW_NUMBER; +Warnings: +Warning 1264 Out of range value for column 'a' at row 2 +Error 1758 Invalid condition number +SELECT @err2; +@err2 +NULL +DROP TABLE t; diff --git a/mysql-test/main/get_diagnostics.test b/mysql-test/main/get_diagnostics.test index e8d81dca1e6..3dbe72ec55c 100644 --- a/mysql-test/main/get_diagnostics.test +++ b/mysql-test/main/get_diagnostics.test @@ -1687,3 +1687,19 @@ GET DIAGNOSTICS CONDITION 3 @n = ROW_NUMBER; SELECT @n; DROP TABLE t; + +-- echo # +-- echo # MDEV-26698: Incorrect row number upon INSERT .. SELECT from the same +-- echo # table: rows are counted twice +-- echo # + +CREATE OR REPLACE TABLE t (a TINYINT); +INSERT INTO t VALUES (1),(100); + +INSERT INTO t SELECT a*2 FROM t; +GET DIAGNOSTICS CONDITION 1 @err1 = ROW_NUMBER; +SELECT @err1; +GET DIAGNOSTICS CONDITION 2 @err2 = ROW_NUMBER; +SELECT @err2; + +DROP TABLE t; |