[
https://issues.apache.org/jira/browse/CALCITE-5814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18047829#comment-18047829
]
Julian Hyde commented on CALCITE-5814:
--------------------------------------
Under any reasonable semantics, {{MAP [1, 2]}} is not equal to {{MAP [2, 3]}},
so this simplification should go ahead.
There is debate about what happens if a constructor contains duplicate keys
(does it fail, are earlier keys overwritten, or is an arbitrary key
overwritten), and the order of keys (is order preserved, are keys sorted, or
does order simply not matter). We can resolve that debate by examining what
other implementations (e.g. Spark SQL), and picking a semantics if there is a
consensus. But it is clear that a map cannot contain duplicate keys, and maps
with different keys are not equal.
> Simplify 'a = MAP[1,2] AND a = MAP[2,3]' to 'FALSE'
> ---------------------------------------------------
>
> Key: CALCITE-5814
> URL: https://issues.apache.org/jira/browse/CALCITE-5814
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Affects Versions: 1.34.0
> Reporter: Runkang He
> Assignee: Runkang He
> Priority: Major
>
> Currently the following expression with const map literal is not simplified
> to FALSE:
> {code:sql}
> a = MAP[1,2] AND a = MAP[2,3]
> {code}
> Since the map type is an extension to the SQL standard, it's not clear
> whether it is comparable or not. If comparable, it would be nice to simplify
> above expression to FALSE.
> Welcome to discuss or provide some information.
> Note that this Jira is inspired from discussion of
> [CALCITE-5733|https://issues.apache.org/jira/browse/CALCITE-5733].
--
This message was sent by Atlassian Jira
(v8.20.10#820010)