You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "David Rorke (Jira)" <ji...@apache.org> on 2020/04/01 01:11:00 UTC

[jira] [Created] (IMPALA-9589) Parser failures on valid SQL

David Rorke created IMPALA-9589:
-----------------------------------

             Summary: Parser failures on valid SQL
                 Key: IMPALA-9589
                 URL: https://issues.apache.org/jira/browse/IMPALA-9589
             Project: IMPALA
          Issue Type: Bug
          Components: Frontend
    Affects Versions: Impala 3.3.0
            Reporter: David Rorke


The impala parser fails to parse the following valid SQL:

 
{noformat}
SELECT 
  * 
FROM 
  (
    (
      SELECT 
        `sr_item_sk`, 
        `sr_reason_sk`, 
        `sr_ticket_number`, 
        `sr_return_quantity` 
      FROM 
        `tpcds_10000_decimal_parquet`.`store_returns` 
      WHERE 
        `sr_reason_sk` IS NOT NULL
    ) AS `t1` 
    INNER JOIN (
      SELECT 
        `r_reason_sk` 
      FROM 
        `tpcds_10000_decimal_parquet`.`reason` 
      WHERE 
        `r_reason_desc` = 'reason 66'
    ) AS `t3` ON `t1`.`sr_reason_sk` = `t3`.`r_reason_sk`
  );

ERROR: ParseException: Syntax error in line 14:
    ) AS `t1`
      ^
Encountered: AS
Expected: LIMIT, ORDER, UNION
{noformat}
 

The query parses fine when you remove the outer set of parentheses:
{noformat}
SELECT 
  * 
FROM 
  (
    SELECT 
      `sr_item_sk`, 
      `sr_reason_sk`, 
      `sr_ticket_number`, 
      `sr_return_quantity` 
    FROM 
      `tpcds_10000_decimal_parquet`.`store_returns` 
    WHERE 
      `sr_reason_sk` IS NOT NULL
  ) AS `t1` 
  INNER JOIN (
    SELECT 
      `r_reason_sk` 
    FROM 
      `tpcds_10000_decimal_parquet`.`reason` 
    WHERE 
      `r_reason_desc` = 'reason 66'
  ) AS `t3` ON `t1`.`sr_reason_sk` = `t3`.`r_reason_sk`;
{noformat}
 

The failing query is a simplified subset of the following query (a rewrite of TPC-DS query 93) which also fails to parse:
{noformat}
Query: SELECT `t`.`ss_customer_sk`,
  SUM(
    CASE WHEN `t1`.`sr_return_quantity` IS NOT NULL THEN CAST(
      `t`.`ss_quantity` - `t1`.`sr_return_quantity` AS DECIMAL(10, 0)
    ) * `t`.`ss_sales_price` ELSE CAST(
      `t`.`ss_quantity` AS DECIMAL(10, 0)
    ) * `t`.`ss_sales_price` END
  ) AS `$f1`
FROM
  (
    SELECT
      `ss_item_sk`,
      `ss_customer_sk`,
      `ss_ticket_number`,
      `ss_quantity`,
      `ss_sales_price`
    FROM
      `tpcds_10000_decimal_parquet`.`store_sales`
  ) AS `t`
  INNER JOIN (
    (
      SELECT
        `sr_item_sk`,
        `sr_reason_sk`,
        `sr_ticket_number`,
        `sr_return_quantity`
      FROM
        `tpcds_10000_decimal_parquet`.`store_returns`
      WHERE
        `sr_reason_sk` IS NOT NULL
    ) AS `t1`
    INNER JOIN (
      SELECT
        `r_reason_sk`
      FROM
        `tpcds_10000_decimal_parquet`.`reason`
      WHERE
        `r_reason_desc` = 'reason 66'
    ) AS `t3` ON `t1`.`sr_reason_sk` = `t3`.`r_reason_sk`
  ) ON `t`.`ss_item_sk` = `t1`.`sr_item_sk`
  AND `t`.`ss_ticket_number` = `t1`.`sr_ticket_number`
GROUP BY
  `t`.`ss_customer_sk`
ORDER BY
  SUM(
    CASE WHEN `t1`.`sr_return_quantity` IS NOT NULL THEN CAST(
      `t`.`ss_quantity` - `t1`.`sr_return_quantity` AS DECIMAL(10, 0)
    ) * `t`.`ss_sales_price` ELSE CAST(
      `t`.`ss_quantity` AS DECIMAL(10, 0)
    ) * `t`.`ss_sales_price` END
  ),
  `t`.`ss_customer_sk`
LIMIT
  100
Query submitted at: 2020-03-31 18:04:21 (Coordinator: https://drorke-dm-perf-coordinator3.drorke-d.xcu2-8y8x.dev.cldr.work:25000)
ERROR: ParseException: Syntax error in line 31:
    ) AS `t1`
      ^
Encountered: AS
Expected: LIMIT, ORDER, UNION
{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org