1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-26830: Wrong ROW_NUMBER in diagnostics upon INSERT IGNORE with

CHECK violation

Analysis: When there is constraint fail we return non-zero value for
view_check_option(). So we continue the loop which doesn't increment the
counter because it increments at the end of the loop.
Fix: Increment m_current_row_for_warning() at the beginning of loop. This
will also fix similar bugs if any, about counter not incrementing
correctly because of continue.
This commit is contained in:
Rucha Deodhar
2021-10-18 13:27:36 +05:30
committed by Sergei Golubchik
parent 797bd73cfa
commit e13dc7d0d0
3 changed files with 34 additions and 2 deletions

View File

@ -1765,3 +1765,21 @@ SELECT @n, @m;
@n @m
1 Column count doesn't match value count at row 1
DROP TABLE t1;
#
# MDEV-26830: Wrong ROW_NUMBER in diagnostics upon INSERT IGNORE with
# CHECK violation
#
CREATE TABLE t1 (a INT, CHECK(a>0));
INSERT IGNORE INTO t1 VALUES (1),(0),(2),(0);
Warnings:
Warning 4025 CONSTRAINT `CONSTRAINT_1` failed for `test`.`t1`
Warning 4025 CONSTRAINT `CONSTRAINT_1` failed for `test`.`t1`
GET DIAGNOSTICS CONDITION 1 @n= ROW_NUMBER;
SELECT @n;
@n
2
GET DIAGNOSTICS CONDITION 2 @n= ROW_NUMBER;
SELECT @n;
@n
4
DROP TABLE t1;