[ https://issues.apache.org/jira/browse/FLINK-36152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated FLINK-36152: ----------------------------------- Labels: pull-request-available (was: ) > Traverse through the superclass hierarchy to extract generic type. > ------------------------------------------------------------------ > > Key: FLINK-36152 > URL: https://issues.apache.org/jira/browse/FLINK-36152 > Project: Flink > Issue Type: Bug > Components: Table SQL / Planner > Affects Versions: 2.0.0, 1.16.1 > Reporter: Xinglong Wang > Priority: Major > Labels: pull-request-available > > In our case, there's a `ConcreteLookupFunction extends > AbstractLookupFunction`, and `AbstractLookupFunction extends > TableFunction<RowData>`. > However `Class#getGenericSuperclass` only return the direct superclass, so it > cannot extract the correct generic type `RowData`. > I can reproduce the exception below: > {code:java} > // > flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/runtime/stream/sql/FunctionITCase.java > @Test > void testLookupTableFunctionWithoutHintLevel2() > throws ExecutionException, InterruptedException { > > testLookupTableFunctionBase(LookupTableWithoutHintLevel2Function.class.getName()); > } > // ... ... > public static class LookupTableWithoutHintLevel2Function > extends LookupTableWithoutHintLevel1Function {}{code} > {code:java} > org.apache.flink.table.api.ValidationException: Cannot extract a data type > from an internal 'org.apache.flink.table.data.RowData' class without further > information. Please use annotations to define the full logical type. > at > org.apache.flink.table.types.extraction.ExtractionUtils.extractionError(ExtractionUtils.java:424) > at > org.apache.flink.table.types.extraction.ExtractionUtils.extractionError(ExtractionUtils.java:419) > at > org.apache.flink.table.types.extraction.DataTypeExtractor.checkForCommonErrors(DataTypeExtractor.java:425) > at > org.apache.flink.table.types.extraction.DataTypeExtractor.extractDataTypeOrError(DataTypeExtractor.java:330) > at > org.apache.flink.table.types.extraction.DataTypeExtractor.extractDataTypeOrRawWithTemplate(DataTypeExtractor.java:290) > ... 53 more > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)