[ https://issues.apache.org/jira/browse/CALCITE-3020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16833718#comment-16833718 ]
Vladimir Sitnikov commented on CALCITE-3020: -------------------------------------------- {quote} scans with dynamic stars only - it can't be determined if the table is dynamic {quote} AFAIK validator somehow is able to tell if the used columns are valid. That implies one can tell if table scan contains dynamic_star or not. There are org.apache.calcite.rel.type.RelDataTypeField#isDynamicStar, and org.apache.calcite.rel.type.DynamicRecordType#isDynamicStarColName > throws AssertionError:Type mismatch in VolcanoPlanner > ----------------------------------------------------- > > Key: CALCITE-3020 > URL: https://issues.apache.org/jira/browse/CALCITE-3020 > Project: Calcite > Issue Type: Bug > Components: core > Affects Versions: 1.19.0 > Reporter: godfrey he > Assignee: Danny Chan > Priority: Major > > after [CALCITE-2454|https://issues.apache.org/jira/browse/CALCITE-2454] > merged, an AssertionError:Type mismatch will be thrown in VolcanoPlanner when > running the following sql: > {code:sql} > WITH t1 AS (SELECT CAST(a as BIGINT) AS a, SUM(b) AS b FROM x GROUP BY CAST(a > as BIGINT)), > t2 AS (SELECT CAST(a as DOUBLE) AS a, SUM(b) AS b FROM x GROUP BY CAST(a > as DOUBLE)) > SELECT t1.*, t2.* FROM t1, t2 WHERE t1.b = t2.b > {code} > Caused by: java.lang.AssertionError: Type mismatch: > left: > RecordType(BIGINT a, BIGINT b) NOT NULL > right: > RecordType(DOUBLE a, BIGINT b) NOT NULL > at org.apache.calcite.util.Litmus$1.fail(Litmus.java:31) > at org.apache.calcite.plan.RelOptUtil.equal(RelOptUtil.java:1858) > at > org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1705) > at > org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:850) > at > org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:872) > at > org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:1958) > at > org.apache.calcite.plan.volcano.VolcanoRuleCall.transformTo(VolcanoRuleCall.java:126) > at > org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:234) > at > org.apache.calcite.rel.convert.ConverterRule.onMatch(ConverterRule.java:141) > at > org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:205) > at > org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:637) -- This message was sent by Atlassian JIRA (v7.6.3#76005)