https://github.com/jibiyr
场景
flink 建表时候如果包含计算列,而计算列中包含类似 in exist 这种类似 subQuery。会导致空指针。
版本
flink 1.11.1
相关issue
https://issues.apache.org/jira/browse/FLINK-21613
https://issues.apache.org/jira/browse/FLINK-20884
https://issues.apache.org/jira/browse/CALCITE-4548
解决
debug,发现是calcite中SqlToRelConverter中解析表达式有bug导致,旧版本flink没有用这个public方法,新版本使用了,所以有此异常
我已经提了一个pr,,目前review通过,等待calcite合并。至于flink ,若是可能的活可以考虑重写SqlToRelConverter的convertExpression方法。
pr如下,此文章只做记录用
https://github.com/apache/calcite/pull/2382