Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.7(EOL)
-
None
Description
--source include/have_innodb.inc
|
--disable_abort_on_error
|
|
create or replace table t (a tinyint) engine=InnoDB; |
backup stage end; |
get diagnostics condition 1 @n1 = row_number;
|
insert into t values (1),(2),(1000); |
backup stage end; |
get diagnostics condition 1 @n2 = row_number;
|
select 1; |
backup stage end; |
get diagnostics condition 1 @n3 = row_number;
|
select @n1, @n2, @n3; |
bb-10.7-row_number cb9002bee36 |
MariaDB [test]> select @n1, @n2, @n3; |
+------+------+------+ |
| @n1 | @n2 | @n3 |
|
+------+------+------+ |
| 0 | 3 | 1 |
|
+------+------+------+ |
1 row in set (0.000 sec) |
It should probably be always 0.
Same applies to various other statements, e.g. the same test case returns the same result if backup stage end is replaced by a failing drop database, or grant, etc.
Attachments
Issue Links
- is caused by
-
MDEV-10075 Provide index of error causing error in array INSERT
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Link |
This issue is caused by |
Summary | Failed BACKUP STAGE sets ROW_NUMBER to 1 | Failed BACKUP STAGE sets ROW_NUMBER to 1 or returns the previous value |
Description |
{code:sql}
BACKUP STAGE END; get diagnostics condition 1 @n = row_number; select @n; {code} {code:sql|title=bb-10.7-row_number cb9002bee36} MariaDB [test]> show warnings; +-------+------+-------------------------------------------------+ | Level | Code | Message | +-------+------+-------------------------------------------------+ | Error | 4146 | You must start backup with "BACKUP STAGE START" | +-------+------+-------------------------------------------------+ 1 row in set (0.000 sec) MariaDB [test]> get diagnostics condition 1 @n = row_number; Query OK, 0 rows affected (0.000 sec) MariaDB [test]> select @n; +------+ | @n | +------+ | 1 | +------+ 1 row in set (0.001 sec) {code} It should probably be 0. |
{code:sql}
--disable_abort_on_error create or replace table t (a tinyint); backup stage end; get diagnostics condition 1 @n1 = row_number; insert into t values (1),(2),(1000); backup stage end; get diagnostics condition 1 @n2 = row_number; select 1; backup stage end; get diagnostics condition 1 @n3 = row_number; select @n1, @n2, @n3; {code} {code:sql|title=bb-10.7-row_number cb9002bee36} MariaDB [test]> select @n1, @n2, @n3; +------+------+------+ | @n1 | @n2 | @n3 | +------+------+------+ | 0 | 3 | 1 | +------+------+------+ 1 row in set (0.000 sec) {code} It should probably be always 0. |
Summary | Failed BACKUP STAGE sets ROW_NUMBER to 1 or returns the previous value | Failed BACKUP STAGE sets ROW_NUMBER to different values depending on previous events |
Description |
{code:sql}
--disable_abort_on_error create or replace table t (a tinyint); backup stage end; get diagnostics condition 1 @n1 = row_number; insert into t values (1),(2),(1000); backup stage end; get diagnostics condition 1 @n2 = row_number; select 1; backup stage end; get diagnostics condition 1 @n3 = row_number; select @n1, @n2, @n3; {code} {code:sql|title=bb-10.7-row_number cb9002bee36} MariaDB [test]> select @n1, @n2, @n3; +------+------+------+ | @n1 | @n2 | @n3 | +------+------+------+ | 0 | 3 | 1 | +------+------+------+ 1 row in set (0.000 sec) {code} It should probably be always 0. |
{code:sql}
--source include/have_innodb.inc --disable_abort_on_error create or replace table t (a tinyint) engine=InnoDB; backup stage end; get diagnostics condition 1 @n1 = row_number; insert into t values (1),(2),(1000); backup stage end; get diagnostics condition 1 @n2 = row_number; select 1; backup stage end; get diagnostics condition 1 @n3 = row_number; select @n1, @n2, @n3; {code} {code:sql|title=bb-10.7-row_number cb9002bee36} MariaDB [test]> select @n1, @n2, @n3; +------+------+------+ | @n1 | @n2 | @n3 | +------+------+------+ | 0 | 3 | 1 | +------+------+------+ 1 row in set (0.000 sec) {code} It should probably be always 0. |
Priority | Trivial [ 5 ] | Minor [ 4 ] |
Component/s | Backup [ 13902 ] | |
Description |
{code:sql}
--source include/have_innodb.inc --disable_abort_on_error create or replace table t (a tinyint) engine=InnoDB; backup stage end; get diagnostics condition 1 @n1 = row_number; insert into t values (1),(2),(1000); backup stage end; get diagnostics condition 1 @n2 = row_number; select 1; backup stage end; get diagnostics condition 1 @n3 = row_number; select @n1, @n2, @n3; {code} {code:sql|title=bb-10.7-row_number cb9002bee36} MariaDB [test]> select @n1, @n2, @n3; +------+------+------+ | @n1 | @n2 | @n3 | +------+------+------+ | 0 | 3 | 1 | +------+------+------+ 1 row in set (0.000 sec) {code} It should probably be always 0. |
{code:sql}
--source include/have_innodb.inc --disable_abort_on_error create or replace table t (a tinyint) engine=InnoDB; backup stage end; get diagnostics condition 1 @n1 = row_number; insert into t values (1),(2),(1000); backup stage end; get diagnostics condition 1 @n2 = row_number; select 1; backup stage end; get diagnostics condition 1 @n3 = row_number; select @n1, @n2, @n3; {code} {code:sql|title=bb-10.7-row_number cb9002bee36} MariaDB [test]> select @n1, @n2, @n3; +------+------+------+ | @n1 | @n2 | @n3 | +------+------+------+ | 0 | 3 | 1 | +------+------+------+ 1 row in set (0.000 sec) {code} It should probably be always 0. Same applies to various other statements, e.g. the same test case returns the same result if {{backup stage end}} is replaced by a failing {{drop database}}, or {{grant}}, etc. |
Summary | Failed BACKUP STAGE sets ROW_NUMBER to different values depending on previous events | Non-table statements set ROW_NUMBER to different values depending on previous events |
Priority | Minor [ 4 ] | Major [ 3 ] |
Summary | Non-table statements set ROW_NUMBER to different values depending on previous events | For unsupported statements ROW_NUMBER shows different values depending on previous events |
Assignee | Rucha Deodhar [ rucha174 ] | Elena Stepanova [ elenst ] |
Comment |
[ I didn't realize that |
Assignee | Elena Stepanova [ elenst ] | Rucha Deodhar [ rucha174 ] |
Workflow | MariaDB v3 [ 126299 ] | MariaDB v4 [ 143258 ] |
Fix Version/s | 10.8 [ 26121 ] | |
Fix Version/s | 10.7 [ 24805 ] |
Fix Version/s | 10.9 [ 26905 ] | |
Fix Version/s | 10.8 [ 26121 ] |
Fix Version/s | 10.11 [ 27614 ] |
Fix Version/s | 10.9 [ 26905 ] |
Also applies to at least some ALTER TABLEs, e.g.
I give up on trying to make the summary accurate, please adjust it as needed after analysis.