[
https://issues.apache.org/jira/browse/CALCITE-7347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mihai Budiu updated CALCITE-7347:
---------------------------------
Summary: UNKNOWN type inferred for array element type in VALUES (was:
UNKNOWN type inferred for array element type)
> UNKNOWN type inferred for array element type in VALUES
> ------------------------------------------------------
>
> Key: CALCITE-7347
> URL: https://issues.apache.org/jira/browse/CALCITE-7347
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.41.0
> Reporter: Mihai Budiu
> Priority: Minor
>
> Consider this example:
> {code:java}
> SELECT DISTINCT
> t.f1,
> t.f2,
> CAST(t.f3 AS TEXT ARRAY) AS f3,
> t.f4
> FROM (VALUES
> ('a', 1, ARRAY['by'], true),
> ('b', 1, ARRAY(), false)
> ) AS t (f1, f2, f3, f4) {code}
> The plan produced is the following:
> {code:java}
> [Logical plan]
> LogicalAggregate(group=[{0, 1, 2, 3}]), id = 80
> LogicalProject(f1=[$0], f2=[$1], f3=[CAST($2):VARCHAR CHARACTER SET
> "UTF-8" NOT NULL ARRAY NOT NULL], f4=[$3]), id = 79
> LogicalUnion(all=[true]), id = 78
> LogicalProject(EXPR$0=[_UTF-8'a'], EXPR$1=[1],
> EXPR$2=[CAST(ARRAY(_UTF-8'by')):UNKNOWN NOT NULL ARRAY NOT NULL],
> EXPR$3=[true]), id = 75
> LogicalValues(tuples=[[{ 0 }]]), id = 67
> LogicalProject(EXPR$0=[_UTF-8'b'], EXPR$1=[1], EXPR$2=[ARRAY()],
> EXPR$3=[false]), id = 77
> LogicalValues(tuples=[[{ 0 }]]), id = 69 {code}
> Note that the array ARRAY['a'] is cast to an UNKNOWN ARRAY using a project,
> then the union is cast to an VARCHAR ARRAY. I think that a much more logical
> choice would be to cast the empty array to a VARCHAR ARRAY instead.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)