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

Unknown column 'v1' in 'SELECT'

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Not a Bug
    • 11.4.10
    • N/A
    • Optimizer
    • None
    • 11.4.10-MariaDB
    • Not for Release Notes

    Description

      UPDATE ... SET ... IN (SELECT ...) statement causes inconsistent behavior in MariaDB compared to MySQL, TiDB, and PostgreSQL.
      Results:

      PostgreSQL: No error, 0 rows updated.
      MySQL: No error, 0 rows updated.
      TiDB: No error, 0 rows updated.
      MariaDB: Error: ERROR 1054 (42S22): Unknown column 'v1' in 'SELECT'.

      Details:
      1. Results from pg:

      postgres@cn001=# drop table v0;
      CREATE TABLE v0 ( v1 CHAR );
      UPDATE v0 SET v1 = 'x' IN (
      SELECT v1 FROM (
      SELECT v1
      UNION
      SELECT DISTINCT 'a'
      ) AS v2
      );
      DROP TABLE
      CREATE TABLE
      UPDATE 0

      2. Results from mysql:

      mysql> drop table v0;
      Query OK, 0 rows affected (0.04 sec)

      mysql> CREATE TABLE v0 ( v1 CHAR );
      Query OK, 0 rows affected (0.07 sec)

      mysql> UPDATE v0 SET v1 = 'x' IN (
      -> SELECT v1 FROM (
      -> SELECT v1
      -> UNION
      -> SELECT DISTINCT 'a'
      -> ) AS v2
      -> );
      Query OK, 0 rows affected (0.01 sec)
      Rows matched: 0 Changed: 0 Warnings: 0

      3. Results from tidb:
      mysql> CREATE TABLE v0 ( v1 CHAR );
      Query OK, 0 rows affected (0.07 sec)

      mysql> UPDATE v0 SET v1 = 'x' IN (
      -> SELECT v1 FROM (
      -> SELECT v1
      -> UNION
      -> SELECT DISTINCT 'a'
      -> ) AS v2
      -> );
      Query OK, 0 rows affected (0.00 sec)
      Rows matched: 0 Changed: 0 Warnings: 0

      4. Results from mariadb:
      mysql> CREATE TABLE v0 ( v1 CHAR );
      Query OK, 0 rows affected (0.01 sec)

      mysql> UPDATE v0 SET v1 = 'x' IN (
      -> SELECT v1 FROM (
      -> SELECT v1
      -> UNION
      -> SELECT DISTINCT 'a'
      -> ) AS v2
      -> );
      ERROR 1054 (42S22): Unknown column 'v1' in 'SELECT'

      5. Steps to reproduce:

      ```
      drop table v0;
      CREATE TABLE v0 ( v1 CHAR );
      UPDATE v0 SET v1 = 'x' IN (
      SELECT v1 FROM (
      SELECT v1
      UNION
      SELECT DISTINCT 'a'
      ) AS v2
      );

      ```

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              chunlingqin chunlingqin
              Votes:
              0 Vote for this issue
              Watchers:
              3 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.