Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-26845

For unsupported statements ROW_NUMBER shows different values depending on previous events

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.7(EOL)
    • 10.11
    • Server
    • 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

          Activity

            Also applies to at least some ALTER TABLEs, e.g.

            alter table t add key(a(0));
            

            I give up on trying to make the summary accurate, please adjust it as needed after analysis.

            elenst Elena Stepanova added a comment - Also applies to at least some ALTER TABLEs, e.g. alter table t add key (a(0)); I give up on trying to make the summary accurate, please adjust it as needed after analysis.

            Given the variety of affected statements, I'm raising it to Major, but since apparently it concerns (mainly?) statements which are out of the scope of MDEV-10075, I'm keeping it off 10.7 "must do" list.

            elenst Elena Stepanova added a comment - Given the variety of affected statements, I'm raising it to Major, but since apparently it concerns (mainly?) statements which are out of the scope of MDEV-10075 , I'm keeping it off 10.7 "must do" list.

            Somewhat more obvious case

            SELECT 1 INTO OUTFILE 'f';
            SELECT COUNT(*) FROM information_schema.tables;
            --error ER_FILE_EXISTS_ERROR
            SELECT 1 INTO OUTFILE 'f';
            GET DIAGNOSTICS CONDITION 1 @n = ROW_NUMBER, @m = MESSAGE_TEXT;
            SELECT @n, @m;
            

            bb-10.7-row_number c27f04ede

            COUNT(*)
            265
            SELECT 1 INTO OUTFILE 'f';
            ERROR HY000: File 'f' already exists
            GET DIAGNOSTICS CONDITION 1 @n = ROW_NUMBER, @m = MESSAGE_TEXT;
            SELECT @n, @m;
            @n	@m
            266	File 'f' already exists
            

            elenst Elena Stepanova added a comment - Somewhat more obvious case SELECT 1 INTO OUTFILE 'f' ; SELECT COUNT (*) FROM information_schema.tables; --error ER_FILE_EXISTS_ERROR SELECT 1 INTO OUTFILE 'f' ; GET DIAGNOSTICS CONDITION 1 @n = ROW_NUMBER, @m = MESSAGE_TEXT; SELECT @n, @m; bb-10.7-row_number c27f04ede COUNT (*) 265 SELECT 1 INTO OUTFILE 'f' ; ERROR HY000: File 'f' already exists GET DIAGNOSTICS CONDITION 1 @n = ROW_NUMBER, @m = MESSAGE_TEXT; SELECT @n, @m; @n @m 266 File 'f' already exists

            People

              rucha174 Rucha Deodhar
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.