[
https://issues.apache.org/jira/browse/CALCITE-7038?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17980155#comment-17980155
]
Julian Hyde commented on CALCITE-7038:
--------------------------------------
If you have the time and inclination to create a new convention -- if just
write a Jira case with a good specification -- it would be really useful. There
are stresses and strains on Enumerable convention that have been building for
years, and we have not even been capturing the requirements because people have
been hacking their way out of trouble. Search for bugs on reflective schemas
and you'll see what I mean.
> EnumerableUncollect unnecessarily assuming fields are Comparable
> ----------------------------------------------------------------
>
> Key: CALCITE-7038
> URL: https://issues.apache.org/jira/browse/CALCITE-7038
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.39.0
> Reporter: Christian Beikov
> Priority: Major
>
> {{EnumerableUncollect}} uses {{JavaRowFormat.LIST}} which unnecessarily
> requires that all the field values are {{Comparable}} leading to a
> {{ClassCastException}} when executing a query like e.g. against data that is
> not fully comparable
> {code:sql}
> select r.id
> from GitHubRepository r
> where not exists (
> select 1
> from unnest(r.branchProtectionRules) as br
> and exists (select 1 from GitHubRepository r)
> )
> {code}
> Assuming {{branchProtectionRules}} is {{Array(Struct(matchingRefs:
> Integer))}}. Note that the {{EXISTS}} predicate in the unnest subquery is
> needed to trigger the failure.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)