Quanlong Huang created IMPALA-12324:
---------------------------------------
Summary: toSql results of UnnestExpr could be ambiguous
Key: IMPALA-12324
URL: https://issues.apache.org/jira/browse/IMPALA-12324
Project: IMPALA
Issue Type: Bug
Components: Frontend
Reporter: Quanlong Huang
For queries that sort the unnest() results, their query plan might have
ambiguous labels on the sort by columns. E.g. the following query sorts by two
unnest() results using different order (asc v.s. desc):
{code:sql}
explain select id, unnest(arr1), unnest(arr2)
from functional_parquet.complextypes_arrays
order by 2, 3 desc; {code}
In the query plan, the order by expressions are "item ASC, item DESC". It's
ambiguous that which one is sorted in ASC.
{code:java}
PLAN-ROOT SINK
|
06:MERGING-EXCHANGE [UNPARTITIONED]
| order by: item ASC, item DESC
|
05:SORT
| order by: item ASC, item DESC <-- Ambiguous expressions
| row-size=20B cardinality=13.51K
|
01:SUBPLAN
| row-size=44B cardinality=13.51K
|
|--04:NESTED LOOP JOIN [CROSS JOIN]
| | row-size=44B cardinality=10
| |
| |--02:SINGULAR ROW SRC
| | row-size=28B cardinality=1
| |
| 03:UNNEST [functional_parquet.complextypes_arrays.arr1 arr1,
functional_parquet.complextypes_arrays.arr2 arr2]
| row-size=0B cardinality=10
|
00:SCAN HDFS [functional_parquet.complextypes_arrays]
HDFS partitions=1/1 files=1 size=1.06KB
row-size=28B cardinality=1.35K
{code}
Another example is empty unnest() parameter in the query plan. The query is:
{code:sql}
explain select id, item1, item2, row_number() over (order by id, item1, item2
desc)
from (
select id, unnest(arr1) as item1, unnest(arr2) as item2
from functional_parquet.complextypes_arrays
) v; {code}
The plan has "order by: id ASC, UNNEST() ASC, UNNEST() DESC":
{code:java}
PLAN-ROOT SINK
|
06:ANALYTIC
| functions: row_number()
| order by: id ASC, UNNEST() ASC, UNNEST() DESC <-- Ambiguous expressions
| window: ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
| row-size=56B cardinality=13.51K
|
07:MERGING-EXCHANGE [UNPARTITIONED]
| order by: id ASC, UNNEST() ASC, UNNEST() DESC
|
05:SORT
| order by: id ASC, UNNEST() ASC, UNNEST() DESC
| row-size=48B cardinality=13.51K
|
01:SUBPLAN
| row-size=44B cardinality=13.51K
|
|--04:NESTED LOOP JOIN [CROSS JOIN]
| | row-size=44B cardinality=10
| |
| |--02:SINGULAR ROW SRC
| | row-size=28B cardinality=1
| |
| 03:UNNEST [functional_parquet.complextypes_arrays.arr1 arr1,
functional_parquet.complextypes_arrays.arr2 arr2]
| row-size=0B cardinality=10
|
00:SCAN HDFS [functional_parquet.complextypes_arrays]
HDFS partitions=1/1 files=1 size=1.06KB
row-size=28B cardinality=1.35K {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)