[
https://issues.apache.org/jira/browse/IGNITE-27404?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vyacheslav Koptilin updated IGNITE-27404:
-----------------------------------------
Labels: ignite-3 (was: )
> Sql. Investigate changes in TPCDS query 8 plan caused by updating calcite to
> 1.41
> ---------------------------------------------------------------------------------
>
> Key: IGNITE-27404
> URL: https://issues.apache.org/jira/browse/IGNITE-27404
> Project: Ignite
> Issue Type: Improvement
> Components: sql ai3
> Reporter: Maksim Zhuravkov
> Priority: Major
> Labels: ignite-3
>
> Calcite 1.41 introduced changes related to handling of aliases in GROUP BY
> clause - https://issues.apache.org/jira/browse/CALCITE-7189, so the query 8
> from TPC-DS test suite now generates a different plan. Investigate whether
> this an issue and check whether results are the same or not.
> That change introduced an SQL conformance option isNonStrictGroupBy (the
> default is isNonStrictGroupBy=false).
> When isNonStrictGroupBy is true, validation of 51, 53, 63, and 89 fails with
> NPE:
> {noformat}
> Caused by: java.lang.NullPointerException
> at org.apache.calcite.sql.validate.AggFinder.findAgg(AggFinder.java:61)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.isNonAggregatedNonGroupedColumn(SqlValidatorImpl.java:541)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.lambda$isNonAggregatedNonGroupedColumn$1(SqlValidatorImpl.java:557)
> at
> java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
> at
> java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
> at
> java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127)
> at
> java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
> at
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
> at
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
> at
> java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
> at
> java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
> at
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at
> java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:528)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.isNonAggregatedNonGroupedColumn(SqlValidatorImpl.java:557)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.lambda$isNonAggregatedNonGroupedColumn$1(SqlValidatorImpl.java:557)
> at
> java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
> at
> java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
> at
> java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127)
> at
> java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
> at
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
> at
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
> at
> java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
> at
> java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
> at
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at
> java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:528)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.isNonAggregatedNonGroupedColumn(SqlValidatorImpl.java:557)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.lambda$isNonAggregatedNonGroupedColumn$1(SqlValidatorImpl.java:557)
> at
> java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
> at
> java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
> at
> java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127)
> at
> java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
> at
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
> at
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
> at
> java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
> at
> java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
> at
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at
> java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:528)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.isNonAggregatedNonGroupedColumn(SqlValidatorImpl.java:557)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelectItem(SqlValidatorImpl.java:494)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelectList(SqlValidatorImpl.java:5135)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:4127)
> at
> org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validateSelect(IgniteSqlValidator.java:650)
> at
> org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:62)
> at
> org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:96)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1178)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1149)
> at
> org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validateQuery(IgniteSqlValidator.java:241)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3604)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3583)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:4114)
> at
> org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validateSelect(IgniteSqlValidator.java:650)
> at
> org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:62)
> at
> org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:96)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1178)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1149)
> at
> org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validateQuery(IgniteSqlValidator.java:241)
> at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:282)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:1115)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:821)
> at
> org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validate(IgniteSqlValidator.java:191)
> at
> org.apache.ignite.internal.sql.engine.prepare.IgnitePlanner.validateAndGetTypeMetadata(IgnitePlanner.java:303)
> at
> org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.lambda$validateQuery$20(PrepareServiceImpl.java:635)
> at
> java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run$$$capture(CompletableFuture.java:1700)
> at
> java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java)
> at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
> at
> java.base/java.util.concurrent.CompletableFuture$AsyncSupply.<init>(CompletableFuture.java:1686)
> at
> java.base/java.util.concurrent.CompletableFuture.asyncSupplyStage(CompletableFuture.java:1714)
> at
> java.base/java.util.concurrent.CompletableFuture.supplyAsync(CompletableFuture.java:1931)
> at
> org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.validateQuery(PrepareServiceImpl.java:627)
> at
> org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.prepareQuery(PrepareServiceImpl.java:560)
> at
> org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.prepareAsync0(PrepareServiceImpl.java:466)
> ... 121 more
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)