Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-12862

Subquery Limit Failed to Parse

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Blocker
    • Resolution: Unresolved
    • 2.8
    • None
    • sql
    • None
    • Mac OS 10.15.1

      Run on a single node and also tried a cluster of 3 server nodes

      SQL is being executed with JDBC thin client and also DBeaver with distributedJoins=true

    Description

      I am trying to test a query involving SQL distributed joins with subquery. However it seems to have some bugs when I have Limit clause in the subquery. (user <-> role has a many to many relationship)

      Without LIMIT clause it works:

      SELECT 
      	"user".id, "user".name,
      	"role".id as "role_id", "role".role_name as "role_name", 
      	"address".id as "address_id", "address".street1 as "address_street1", 
      	"address".street2 as "address_street2"
      FROM (SELECT * FROM "user" ORDER BY "user".id ASC) AS "user"
      LEFT JOIN "address" on "address".user_id = "user".id
      LEFT JOIN "user_has_role" on  "user_has_role".user_id = "user".id
      LEFT JOIN "role" on "role".id = "user_has_role".role_id
      ORDER BY "user".id ASC
      

      However With Limit clause:

      SELECT 
      	"user".id, "user".name,
      	"role".id as "role_id", "role".role_name as "role_name", 
      	"address".id as "address_id", "address".street1 as "address_street1", 
      	"address".street2 as "address_street2"
      FROM (SELECT * FROM "user" ORDER BY "user".id ASC LIMIT 10) AS "user"
      LEFT JOIN "address" on "address".user_id = "user".id
      LEFT JOIN "user_has_role" on  "user_has_role".user_id = "user".id
      LEFT JOIN "role" on "role".id = "user_has_role".role_id
      ORDER BY "user".id ASC
      

      The server will return an error:

      SQL Error [1001] [42000]: Failed to parse query. Column "user__Z1.ID" not found; SQL statement:
      SELECT
      "__Z2"."USER_ID" "__C1_0",
      "__Z2"."ID" "__C1_1",
      "__Z4"."ROLE_NAME" "__C1_2",
      "__Z4"."ID" "__C1_3",
      "__Z2"."STREET2" "__C1_4",
      "__Z2"."STREET1" "__C1_5"
      FROM "PUBLIC"."address" "__Z2" 
       LEFT OUTER JOIN "PUBLIC"."user_has_role" "__Z3" 
       ON "__Z3"."USER_ID" = "user__Z1"."ID" 
       LEFT OUTER JOIN "PUBLIC"."role" "__Z4" 
       ON "__Z4"."ID" = "__Z3"."ROLE_ID"
      ORDER BY 1 [42122-199]
      

      The tables are created with partitioned template with backups of 2, except for the role table which is created with template=replicated

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            darkredz Leng Sheng Hong
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: