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

ON expressions cannot contain outer references

Details

    Description

      Outside references in LEFT JOIN's ON expression produce "unknown column" error.

      Create the test dataset (As far as I'm aware, there's nothing special about this choice of tables/columns):

      create table t10 (
        pk int primary key,
        a int
      );
      insert into t10 values (1,1);
       
      create table t11 (
        pk int primary key,
        b int
      );
      create table t12 (a int);
      insert into t12 values (1),(2);
      

      Run the query Q1:

      select
        a,
        (select count(*)
         from 
           t10 left join t11 on t11.pk=t12.a
         where 
           t10.pk=1
         ) as SUBQ
      from t12;
      

      ERROR 1054 (42S22): Unknown column 't12.a' in 'on clause'
      

      Wrapping the outside reference in a subquery helps: Q2:

      select
        a,
        (select count(*)
         from 
           t10 left join t11 on t11.pk=(select t12.a from dual)
         where 
           t10.pk=1
         ) as SUBQ
      from t12;
      

      +------+------+
      | a    | SUBQ |
      +------+------+
      |    1 |    1 |
      |    2 |    1 |
      +------+------+
      

      I've tried Q1 on MySQL 8.0.22 or PostgreSQL and it worked in both.

      Is it a bug MariaDB produces this error?

      Attachments

        Activity

          psergei Sergei Petrunia created issue -
          psergei Sergei Petrunia made changes -
          Field Original Value New Value
          Assignee Oleksandr Byelkin [ sanja ]
          igor Igor Babaev (Inactive) made changes -
          Assignee Oleksandr Byelkin [ sanja ] Igor Babaev [ igor ]
          igor Igor Babaev (Inactive) made changes -
          Fix Version/s 10.2 [ 14601 ]
          igor Igor Babaev (Inactive) made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          igor Igor Babaev (Inactive) made changes -
          Assignee Igor Babaev [ igor ] Dmitry Shulga [ JIRAUSER47315 ]
          Status In Progress [ 3 ] In Review [ 10002 ]
          shulga Dmitry Shulga made changes -
          Status In Review [ 10002 ] Stalled [ 10000 ]
          igor Igor Babaev (Inactive) made changes -
          Fix Version/s 10.2.38 [ 25207 ]
          Fix Version/s 10.3.29 [ 25206 ]
          Fix Version/s 10.4.19 [ 25205 ]
          Fix Version/s 10.5.10 [ 25204 ]
          Fix Version/s 10.2 [ 14601 ]
          Resolution Fixed [ 1 ]
          Status Stalled [ 10000 ] Closed [ 6 ]
          marko Marko Mäkelä made changes -
          Resolution Fixed [ 1 ]
          Status Closed [ 6 ] Stalled [ 10000 ]
          marko Marko Mäkelä made changes -
          Fix Version/s 10.4 [ 22408 ]
          Fix Version/s 10.5 [ 23123 ]
          Fix Version/s 10.5.10 [ 25204 ]
          Fix Version/s 10.4.19 [ 25205 ]
          Priority Major [ 3 ] Blocker [ 1 ]
          marko Marko Mäkelä made changes -
          issue.field.resolutiondate 2021-03-19 11:15:05.0 2021-03-19 11:15:05.287
          marko Marko Mäkelä made changes -
          Fix Version/s 10.4.19 [ 25205 ]
          Fix Version/s 10.5.10 [ 25204 ]
          Fix Version/s 10.4 [ 22408 ]
          Fix Version/s 10.5 [ 23123 ]
          Resolution Fixed [ 1 ]
          Status Stalled [ 10000 ] Closed [ 6 ]
          igor Igor Babaev (Inactive) made changes -
          Assignee Dmitry Shulga [ JIRAUSER47315 ] Igor Babaev [ igor ]
          serg Sergei Golubchik made changes -
          Workflow MariaDB v3 [ 119573 ] MariaDB v4 [ 158969 ]

          People

            igor Igor Babaev (Inactive)
            psergei Sergei Petrunia
            Votes:
            0 Vote for this issue
            Watchers:
            5 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.