[ https://issues.apache.org/jira/browse/CALCITE-2468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16586722#comment-16586722 ]
Julian Hyde commented on CALCITE-2468: -------------------------------------- I wonder whether RelStructuredTypeFlattener is to blame. Although the stack trace in the Flink case indicates that it's still in the validator and has probably not got to RelStructuredTypeFlattener yet. > Validator throws IndexOutOfBoundsException when trying to infer operand type > from struct return type > ---------------------------------------------------------------------------------------------------- > > Key: CALCITE-2468 > URL: https://issues.apache.org/jira/browse/CALCITE-2468 > Project: Calcite > Issue Type: Bug > Components: core > Affects Versions: 1.17.0 > Reporter: Rong Rong > Assignee: Julian Hyde > Priority: Major > > IOOBE was thrown when trying to acquire {{SqlOperandTypeInference}} using > {{RETURN_TYPE}} at: > https://github.com/apache/calcite/blob/branch-1.17/core/src/main/java/org/apache/calcite/sql/type/InferTypes.java#L68 > The follow SQLs demonstrates how to trigger the exception over a simple > Schema: > {code:yaml} > - table1: > - structType1: > - intField > - structType2: > - intField > - bigintField > {code} > - Exception SQL: > {code:sql} > SELECT structType1 AS myStructType FROM table1 > {code} > - Correct SQL: > {code:sql} > SELECT structType1 FROM table1 > {code} > {code:sql} > SELECT structType2 AS myStructType FROM table1 > {code} > E2E example can be found in: > https://github.com/apache/calcite/commit/d5fb1f9fc5d3f9583128d9ee35c4a23e8470d54d -- This message was sent by Atlassian JIRA (v7.6.3#76005)