Hi Kaka and Jark, On a side note, `RowTypeInfo` only compares field types in its `equals` method. I think our new logical row type shouldn't break this behavior.
kaka chen <kaka11.c...@gmail.com> 于2019年7月16日周二 下午10:53写道: > Hi Jark, > > Thanks! > > Thanks, > Kaka Chen > > Jark Wu <imj...@gmail.com> 于2019年7月16日周二 下午10:30写道: > > > Hi Kaka, > > > > Thanks for reporting this. We didn't cover integrate tests for connectors > > yet because of FLINK-13276. We will cover that after FLINK-13276 is > fixed. > > > > The problem you raised might because we misused `LogicalType.equals` > which > > will checks field names as well. > > I have created an issue (FLINK-13290) to track this problem. > > > > Best, > > Jark > > > > > > On Tue, 16 Jul 2019 at 17:35, kaka chen <kaka11.c...@gmail.com> wrote: > > > > > I am looking this issue, the related codes which throw errors are: > > > > > > SinkCodeGenerator:: validateFieldType() > > > > > > ... > > > > > > // Tuple/Case class/Row type requested > > > case tt: TupleTypeInfoBase[_] => > > > fieldTypes.zipWithIndex foreach { > > > case (fieldTypeInfo: GenericTypeInfo[_], i) => > > > val requestedTypeInfo = tt.getTypeAt(i) > > > if > > (!requestedTypeInfo.isInstanceOf[GenericTypeInfo[Object]]) { > > > throw new TableException( > > > s"Result field '${fieldNames(i)}' does not match > > requested > > > type. " + > > > s"Requested: $requestedTypeInfo; Actual: > > > $fieldTypeInfo") > > > } > > > case (fieldTypeInfo, i) => > > > val requestedTypeInfo = tt.getTypeAt(i) > > > validateFieldType(requestedTypeInfo) > > > * if (fromTypeInfoToLogicalType(fieldTypeInfo) !=* > > > * fromTypeInfoToLogicalType(requestedTypeInfo) &&* > > > * > > !requestedTypeInfo.isInstanceOf[GenericTypeInfo[Object]]) > > > {* > > > * val fieldNames = tt.getFieldNames* > > > * throw new TableException(s"Result field > '${fieldNames(i)}' > > > does not match requested" +* > > > * s" type. Requested: $requestedTypeInfo; Actual: > > > $fieldTypeInfo")* > > > * }* > > > } > > > ... > > > > > > Thanks, > > > Frank > > > > > > kaka chen <kaka11.c...@gmail.com> 于2019年7月16日周二 下午5:23写道: > > > > > > > Hi All, > > > > > > > > > > > > We are trying to switch to blink table planner in HBase connector, > > which > > > > found the following error: > > > > > > > > > > > > Running org.apache.flink.addons.hbase.HBaseSinkITCase > > > > > > > > Formatting using clusterid: testClusterID > > > > > > > > Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: > 28.042 > > > sec > > > > <<< FAILURE! - in org.apache.flink.addons.hbase.HBaseSinkITCase > > > > > > > > testTableSink(org.apache.flink.addons.hbase.HBaseSinkITCase) Time > > > > elapsed: 2.431 sec <<< ERROR! > > > > > > > > org.apache.flink.table.api.TableException: Result field 'family1' > does > > > not > > > > match requested type. Requested: Row(col1: Integer); Actual: > > Row(EXPR$0: > > > > Integer) > > > > > > > > at > > > > > > > > > > org.apache.flink.addons.hbase.HBaseSinkITCase.testTableSink(HBaseSinkITCase.java:140) > > > > > > > > > > > > The original flink table planner executed successfully. > > > > > > > > > > > > Thanks, > > > > > > > > Kaka Chen > > > > > > > > > >