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

Reply via email to