[ https://issues.apache.org/jira/browse/CALCITE-6040?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ran Tao updated CALCITE-6040: ----------------------------- Summary: The operand type inference of SqlMapValueConstructor is incorrect (was: The operandTypeInference of SqlMapValueConstructor is incorrect) > The operand type inference 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 > Assignee: 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)