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

Confusion between table alias and ROW type variable

    XMLWordPrintable

Details

    Description

      This script:

      SET sql_mode=DEFAULT;
      CREATE OR REPLACE TABLE t1 (c1 INT, c2 INT);
      INSERT INTO t1 VALUES (0,0);
      DELIMITER $$
      DROP PROCEDURE IF EXISTS p1;
      CREATE PROCEDURE p1()
      BEGIN
        DECLARE a INT;
        DECLARE b INT;
        SELECT a.c1 INTO b
          FROM t1 a
         WHERE a.c2 = 0;
      END;
      $$
      DELIMITER ;
      CALL p1;
      

      works fine in 10.2. It treats a.c2 as a reference to the column a.c2, which is in fact t1.c2.

      Starting from bb-10.2-ext and 10.3, the same script fails to create the procedure with this error:

      ERROR 1105 (HY000): 'a' is not a row variable
      

      Attachments

        Activity

          People

            bar Alexander Barkov
            bar Alexander Barkov
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

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