[
https://issues.apache.org/jira/browse/CALCITE-6593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17884582#comment-17884582
]
Ruben Q L edited comment on CALCITE-6593 at 9/25/24 11:55 AM:
--------------------------------------------------------------
[~rrueda] I agree, I'm also not very convinced about the revert in future
versions.
Moreover, with the new idea in the PR of linking the CALCITE-3094 feature with
a CalciteSystem property (with the possibility of disabling it by setting a
specific value), we could leave the compact code and let the user decide via
properties if they want compact code, flink splitter, both or none. The only
thing to be decided is the default value of those properties (i.e. whether or
not the should be enabled by default).
was (Author: rubenql):
[~rrueda] I agree, I'm also not very convinced about the revert in future
versions.
Moreover, with the new idea in the PR of linking the CALCITE-3094 feature with
a CalciteSystem property (with the possibility of disabling it by setting a
specific value), we could leave the compact code and let the user decide via
properties if they want compact code, flink splitter, both or none. The only to
be decided is the default value of those properties (i.e. whether or not the
should be enabled by default).
> NPE when outer joining tables with many fields and unmatching rows
> ------------------------------------------------------------------
>
> Key: CALCITE-6593
> URL: https://issues.apache.org/jira/browse/CALCITE-6593
> Project: Calcite
> Issue Type: Bug
> Components: core
> Reporter: Rodrigo Rueda
> Assignee: Ruben Q L
> Priority: Blocker
> Labels: pull-request-available
> Fix For: 1.38.0
>
>
> The fix for CALCITE-3094 started generating the following code for a join
> when the resulting field count is >= 100.
> {code:java}
> public Object[] apply(Object[] left, Object[] right) {
> Object[] outputArray = new Object[102];
> System.arraycopy(left, 0, outputArray, 0, 94);
> System.arraycopy(right, 0, outputArray, 94, 8);
> return outputArray;
> } {code}
> But left or right might be null if one of the sides of the join is empty,
> which leads to a NPE:
> {code:java}
> java.lang.NullPointerException
> at java.base/java.lang.System.arraycopy(Native Method)
> at Baz$3.apply(Unknown Source)
> at Baz$3.apply(Unknown Source)
> at Baz$3.apply(Unknown Source)
> at
> org.apache.calcite.linq4j.EnumerableDefaults$12$1.current(EnumerableDefaults.java:2078)
> at Baz$4$1.current(Unknown Source) {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)