[
https://issues.apache.org/jira/browse/CALCITE-6040?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ran Tao updated CALCITE-6040:
-----------------------------
Description:
we have a simple test case:
{code:java}
f.checkScalar("map[1, null]", "{1=null}",
"(INTEGER NOT NULL, NULL) MAP NOT NULL"); {code}
The result is:
{noformat}
java.lang.AssertionError: Query: values (map[1, null])
Expected: is "(INTEGER NOT NULL, NULL) MAP NOT NULL"
but: was "(INTEGER NOT NULL, INTEGER) MAP NOT NULL"
{noformat}
however, the asserted actual result "(INTEGER NOT NULL, INTEGER) MAP NOT NULL"
for this case is wrong. If we switch to this asserted actual result it throws
another exception:
{noformat}
java.lang.AssertionError: Query: select map[p0, null] from (values (1)) as t(p0)
Expected: is "(INTEGER NOT NULL, INTEGER) MAP NOT NULL"
but: was "(INTEGER NOT NULL, NULL) MAP NOT NULL"
{noformat}
No matter how you write this result type in this test case, it is wrong.
by checking the plan, it seems the deduced value type of NULL has converted to
INTEGER.
was:
we have a simple test case:
{code:java}
f.checkScalar("map[1, null]", "{1=null}",
"(INTEGER NOT NULL, NULL) MAP NOT NULL"); {code}
The result is:
{noformat}
java.lang.AssertionError: Query: values (map[1, null])
Expected: is "(INTEGER NOT NULL, NULL) MAP NOT NULL"
but: was "(INTEGER NOT NULL, INTEGER) MAP NOT NULL"
{noformat}
however, the asserted actual result "(INTEGER NOT NULL, INTEGER) MAP NOT NULL"
for this case is wrong. If we switch to this asserted actual result it throws
another exception:
{noformat}
java.lang.AssertionError: Query: select map[p0, null] from (values (1)) as t(p0)
Expected: is "(INTEGER NOT NULL, INTEGER) MAP NOT NULL"
but: was "(INTEGER NOT NULL, NULL) MAP NOT NULL"
{noformat}
No matter how you write this result type in test case, it is wrong.
by checking the plan, it seems the deduced value type of NULL has converted to
INTEGER.
> The operandTypeInference of SqlMapValueConstructor is incorrect
> ---------------------------------------------------------------
>
> Key: CALCITE-6040
> URL: https://issues.apache.org/jira/browse/CALCITE-6040
> Project: Calcite
> Issue Type: Bug
> Components: tests
> Affects Versions: 1.35.0
> Reporter: Ran Tao
> Priority: Major
>
> we have a simple test case:
> {code:java}
> f.checkScalar("map[1, null]", "{1=null}",
> "(INTEGER NOT NULL, NULL) MAP NOT NULL"); {code}
> The result is:
> {noformat}
> java.lang.AssertionError: Query: values (map[1, null])
> Expected: is "(INTEGER NOT NULL, NULL) MAP NOT NULL"
> but: was "(INTEGER NOT NULL, INTEGER) MAP NOT NULL"
> {noformat}
> however, the asserted actual result "(INTEGER NOT NULL, INTEGER) MAP NOT
> NULL" for this case is wrong. If we switch to this asserted actual result it
> throws another exception:
> {noformat}
> java.lang.AssertionError: Query: select map[p0, null] from (values (1)) as
> t(p0)
> Expected: is "(INTEGER NOT NULL, INTEGER) MAP NOT NULL"
> but: was "(INTEGER NOT NULL, NULL) MAP NOT NULL"
> {noformat}
> No matter how you write this result type in this test case, it is wrong.
> by checking the plan, it seems the deduced value type of NULL has converted
> to INTEGER.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)