[ https://issues.apache.org/jira/browse/CALCITE-2468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16708094#comment-16708094 ]
Rong Rong commented on CALCITE-2468: ------------------------------------ Hi [~julianhyde], sorry I somehow missed the 2nd part of your last comment. You are right, recursive is obviously more elegant! I just changed the code and remove the TODO ( no longer needed ). please kindly take another look. > 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)