Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-2301

Query fails when multiple table aliases are provided for CTEs

    XMLWordPrintableJSON

Details

    Description

      When a query contains a WITH clause which defines Common Table Expressions (CTEs), a second alias for the same the temporary table cannot be provided.

      The following query fails to validate:
      WITH C AS
      (
      SELECT c_customer_id cid
      FROM customer
      GROUP BY c_customer_id )
      SELECT c2.cid
      FROM C c1,
      C c2
      WHERE c2.cid = c1.cid
      ORDER BY c2.cid limit 10;

      Query failed: SqlValidatorException: Table 'c2' not found

      The above query validates and executes successfully on Postgres.

      When the WITH clause is removed, the query succeeds.

      The following query executes fine:
      SELECT c2.c_customer_id
      FROM customer c1,
      customer c2
      WHERE c2.c_customer_id = c1.c_customer_id
      ORDER BY c2.c_customer_id limit 10;

      Logs attached.

      Attachments

        1. drillbit.log
          12 kB
          Abhishek Girish

        Issue Links

          Activity

            People

              jni Jinfeng Ni
              agirish Abhishek Girish
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: