You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (Jira)" <ji...@apache.org> on 2020/09/09 18:18:00 UTC

[jira] [Resolved] (CALCITE-4237) AssertionError in SqlTypeFactoryImpl.leastRestrictive when running slow tests

     [ https://issues.apache.org/jira/browse/CALCITE-4237?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Julian Hyde resolved CALCITE-4237.
----------------------------------
    Resolution: Fixed

> AssertionError in SqlTypeFactoryImpl.leastRestrictive when running slow tests
> -----------------------------------------------------------------------------
>
>                 Key: CALCITE-4237
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4237
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Stamatis Zampetakis
>            Assignee: Julian Hyde
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.26.0
>
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> There are various failures when running slow tests all due to the AssertionError raised in SqlTypeFactoryImpl.leastRestrictive.
> Below a few tests that fail and the respective stacktraces showing the problem:
> LatticeSuggesterTest#testFoodMartAll()
> {noformat}
> java.lang.AssertionError
>     at org.apache.calcite.sql.type.SqlTypeFactoryImpl.leastRestrictive(SqlTypeFactoryImpl.java:152)
>     at org.apache.calcite.rex.RexSimplify$RexSargBuilder.getType(RexSimplify.java:2693)
>     at org.apache.calcite.rex.RexSimplify$SargCollector.fix(RexSimplify.java:2631)
>     at org.apache.calcite.rex.RexSimplify.lambda$simplifyOrs$8(RexSimplify.java:1762)
>     at java.util.ArrayList.forEach(ArrayList.java:1259)
>     at org.apache.calcite.rex.RexSimplify.simplifyOrs(RexSimplify.java:1762)
>     at org.apache.calcite.rex.RexSimplify.simplifyOr(RexSimplify.java:1736)
>     at org.apache.calcite.rex.RexSimplify.simplify(RexSimplify.java:274)
>     at org.apache.calcite.rex.RexSimplify.simplifyUnknownAs(RexSimplify.java:243)
>     at org.apache.calcite.rex.RexSimplify.simplifyUnknownAsFalse(RexSimplify.java:232)
>     at org.apache.calcite.rex.RexSimplify.simplifyFilterPredicates(RexSimplify.java:2484)
>     at org.apache.calcite.tools.RelBuilder.filter(RelBuilder.java:1224)
>     at org.apache.calcite.tools.RelBuilder.filter(RelBuilder.java:1200)
>     at org.apache.calcite.rel.rules.FilterJoinRule.perform(FilterJoinRule.java:179)
>     at org.apache.calcite.rel.rules.FilterJoinRule$FilterIntoJoinRule.onMatch(FilterJoinRule.java:377)
>     at org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:333)
>     at org.apache.calcite.plan.hep.HepPlanner.applyRule(HepPlanner.java:542)
>     at org.apache.calcite.plan.hep.HepPlanner.applyRules(HepPlanner.java:407)
>     at org.apache.calcite.plan.hep.HepPlanner.executeInstruction(HepPlanner.java:243)
>     at org.apache.calcite.plan.hep.HepInstruction$RuleInstance.execute(HepInstruction.java:127)
>     at org.apache.calcite.plan.hep.HepPlanner.executeProgram(HepPlanner.java:202)
>     at org.apache.calcite.plan.hep.HepPlanner.findBestExp(HepPlanner.java:189)
>     at org.apache.calcite.materialize.LatticeSuggester.addQuery(LatticeSuggester.java:134)
>     at org.apache.calcite.materialize.LatticeSuggesterTest$Tester.addQuery(LatticeSuggesterTest.java:818)
>     at org.apache.calcite.materialize.LatticeSuggesterTest.checkFoodMartAll(LatticeSuggesterTest.java:309)
>     at org.apache.calcite.materialize.LatticeSuggesterTest.testFoodMartAll(LatticeSuggesterTest.java:398)
> {noformat}
> FoodmartTest#test(FoodmartQuery)[2383]
> {noformat}
> java.lang.AssertionError
>     at org.apache.calcite.sql.type.SqlTypeFactoryImpl.leastRestrictive(SqlTypeFactoryImpl.java:152)
>     at org.apache.calcite.rex.RexSimplify$RexSargBuilder.getType(RexSimplify.java:2693)
>     at org.apache.calcite.rex.RexSimplify$SargCollector.fix(RexSimplify.java:2631)
>     at org.apache.calcite.rex.RexSimplify.lambda$simplifyOrs$8(RexSimplify.java:1762)
>     at java.util.ArrayList.forEach(ArrayList.java:1259)
>     at org.apache.calcite.rex.RexSimplify.simplifyOrs(RexSimplify.java:1762)
>     at org.apache.calcite.rex.RexSimplify.simplifyOr(RexSimplify.java:1736)
>     at org.apache.calcite.rex.RexSimplify.simplify(RexSimplify.java:274)
>     at org.apache.calcite.rex.RexSimplify.simplifyList(RexSimplify.java:503)
>     at org.apache.calcite.rex.RexSimplify.simplifyAnd(RexSimplify.java:1295)
>     at org.apache.calcite.rex.RexSimplify.simplify(RexSimplify.java:272)
>     at org.apache.calcite.rex.RexSimplify.simplifyUnknownAs(RexSimplify.java:243)
>     at org.apache.calcite.rex.RexSimplify.simplifyUnknownAsFalse(RexSimplify.java:232)
>     at org.apache.calcite.rex.RexSimplify.simplifyFilterPredicates(RexSimplify.java:2484)
>     at org.apache.calcite.tools.RelBuilder.filter(RelBuilder.java:1224)
>     at org.apache.calcite.tools.RelBuilder.filter(RelBuilder.java:1211)
>     at org.apache.calcite.sql2rel.RelFieldTrimmer.trimFields(RelFieldTrimmer.java:596)
>     at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:524)
>     at org.apache.calcite.sql2rel.RelFieldTrimmer.dispatchTrimFields(RelFieldTrimmer.java:280)
>     at org.apache.calcite.sql2rel.RelFieldTrimmer.trimChild(RelFieldTrimmer.java:222)
>     at org.apache.calcite.sql2rel.RelFieldTrimmer.trimFields(RelFieldTrimmer.java:469)
>     at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:524)
>     at org.apache.calcite.sql2rel.RelFieldTrimmer.dispatchTrimFields(RelFieldTrimmer.java:280)
>     at org.apache.calcite.sql2rel.RelFieldTrimmer.trimChild(RelFieldTrimmer.java:222)
>     at org.apache.calcite.sql2rel.RelFieldTrimmer.trimFields(RelFieldTrimmer.java:1015)
>     at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:524)
>     at org.apache.calcite.sql2rel.RelFieldTrimmer.dispatchTrimFields(RelFieldTrimmer.java:280)
>     at org.apache.calcite.sql2rel.RelFieldTrimmer.trimChild(RelFieldTrimmer.java:222)
>     at org.apache.calcite.sql2rel.RelFieldTrimmer.trimFields(RelFieldTrimmer.java:627)
>     at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:524)
>     at org.apache.calcite.sql2rel.RelFieldTrimmer.dispatchTrimFields(RelFieldTrimmer.java:280)
>     at org.apache.calcite.sql2rel.RelFieldTrimmer.trim(RelFieldTrimmer.java:169)
>     at org.apache.calcite.tools.Programs$TrimFieldsProgram.run(Programs.java:370)
>     at org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:331)
>     at org.apache.calcite.prepare.Prepare.optimize(Prepare.java:166)
>     at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:297)
>     at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:208)
>     at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:632)
>     at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:498)
>     at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:468)
>     at org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:231)
>     at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:556)
>     at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:675)
>     at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
>     at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227)
>     at org.apache.commons.dbcp2.DelegatingStatement.executeQuery(DelegatingStatement.java:310)
>     at org.apache.commons.dbcp2.DelegatingStatement.executeQuery(DelegatingStatement.java:310)
>     at org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:534)
>     at org.apache.calcite.test.CalciteAssert$AssertQuery.lambda$runs$4(CalciteAssert.java:1583)
>     at org.apache.calcite.test.CalciteAssert$AssertQuery.withConnection(CalciteAssert.java:1474)
>     at org.apache.calcite.test.CalciteAssert$AssertQuery.runs(CalciteAssert.java:1581)
>     at org.apache.calcite.test.FoodmartTest.lambda$test$0(FoodmartTest.java:154)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)