[jira] [Updated] (CALCITE-6040) The operand type inference of SqlMapValueConstructor is incorrect

2023-10-12 Thread Ran Tao (Jira)


 [ 
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.

More serious scenario, if it is `map[1, 'x', 2, null]`, an exception will be 
thrown directly and fail.

because the null converted to FIRST_KNOWN INTEGER(however it should keep NULL, 
then leaseRestrictive type will be char). 

the form such as `map[1, null, 2,'x']` has same problem.

  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 this test case, it is wrong. 

by checking the plan, it seems the deduced value type of NULL has converted to 
INTEGER.



More serious scenario, if it is `map[1, 'x', 2, null]`, an exception will be 
thrown directly and fail.

because the null converted to FIRST_KNOWN INTEGER(however it should keep NULL, 
then leaseRestrictive type will be char).  the `map[1, null, 2,'x']` has same 
problem.


> 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
>  Labels: pull-request-available
> Fix For: 1.36.0
>
>
> 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.
> More serious scenario, if it is `map[1, 'x', 2, null]`, an exception will be 
> thrown directly and fail.
> because the null converted to FIRST_KNOWN INTEGER(however it should keep 
> NULL, then leaseRestrictive type will be char). 
> the form such as `map[1, null, 2,'x']` has same problem.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CALCITE-6040) The operand type inference of SqlMapValueConstructor is incorrect

2023-10-12 Thread Ran Tao (Jira)


 [ 
https://issues.apache.org/jira/browse/CALCITE-6040?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ran Tao updated CALCITE-6040:
-
Fix Version/s: 1.36.0

> 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
>  Labels: pull-request-available
> Fix For: 1.36.0
>
>
> 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.
> More serious scenario, if it is `map[1, 'x', 2, null]`, an exception will be 
> thrown directly and fail.
> because the null converted to FIRST_KNOWN INTEGER(however it should keep 
> NULL, then leaseRestrictive type will be char).  the `map[1, null, 2,'x']` 
> has same problem.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CALCITE-6040) The operand type inference of SqlMapValueConstructor is incorrect

2023-10-12 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/CALCITE-6040?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated CALCITE-6040:

Labels: pull-request-available  (was: )

> 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
>  Labels: pull-request-available
>
> 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.
> More serious scenario, if it is `map[1, 'x', 2, null]`, an exception will be 
> thrown directly and fail.
> because the null converted to FIRST_KNOWN INTEGER(however it should keep 
> NULL, then leaseRestrictive type will be char).  the `map[1, null, 2,'x']` 
> has same problem.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CALCITE-6040) The operand type inference of SqlMapValueConstructor is incorrect

2023-10-12 Thread Ran Tao (Jira)


 [ 
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.



More serious scenario, if it is `map[1, 'x', 2, null]`, an exception will be 
thrown directly and fail.

because the null converted to FIRST_KNOWN INTEGER(however it should keep NULL, 
then leaseRestrictive type will be char).  the `map[1, null, 2,'x']` has same 
problem.

  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 this test case, it is wrong. 

by checking the plan, it seems the deduced value type of NULL has converted to 
INTEGER.


> 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.
> More serious scenario, if it is `map[1, 'x', 2, null]`, an exception will be 
> thrown directly and fail.
> because the null converted to FIRST_KNOWN INTEGER(however it should keep 
> NULL, then leaseRestrictive type will be char).  the `map[1, null, 2,'x']` 
> has same problem.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (CALCITE-6040) The operand type inference of SqlMapValueConstructor is incorrect

2023-10-09 Thread Ran Tao (Jira)


 [ 
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)