Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-5253

NATURAL join and USING should fail if join columns are not unique - expression validation partially broken

    XMLWordPrintableJSON

Details

    Description

      Such issue is not possible for now:

      CREATE TABLE t1(a INTEGER, b INTEGER, c INTEGER);
      CREATE TABLE t2(b INTEGER, c INTEGER, d INTEGER);
      CREATE TABLE t3(c INTEGER, d INTEGER, e INTEGER);
      
      SELECT t1.c, t2.d, t1.b, t1.a, t3.e FROM t1 natural join t2 natural join t3;
      

      cause:

      SqlValidatorException: Column name 'C' in NATURAL join or USING clause is not unique on one side of join
      

      This validation is correct for example for case :

      select e.ename, d.name from dept as d natural join (select ename, sal as deptno, deptno from emp) as e
      

      but fails as described above.

      Was broken by:
      [1] https://issues.apache.org/jira/browse/CALCITE-5171

      Attachments

        Issue Links

          Activity

            People

              zstan Evgeny Stanilovsky
              zstan Evgeny Stanilovsky
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m