hailong wang created FLINK-14064: ------------------------------------ Summary: Support Project Push down to LookupableTableSource Key: FLINK-14064 URL: https://issues.apache.org/jira/browse/FLINK-14064 Project: Flink Issue Type: Improvement Components: Table SQL / Planner Affects Versions: 1.9.0 Reporter: hailong wang Fix For: 1.10.0
Consider such a temporal join sql: {code:java} SELECT T.id, D.id, D.name FROM T JOIN temporalTable for system_time AS OF T.proctime AS D ON upper(T.id) = upper(D.id) {code} When apply a sql function to equivalent condition such as 'upper', it doesn't support. In other words, temporal join don't support any transfrom on temporal table primary key field. There are two reasons: 1、In CommonLookupJoin.getIdenticalSourceField method, we can not get the input index when expr is a rexCall except IN_FENNEL and CAST; 2、StreamExecLookupJoinRule doesn't push down project function to LookupableTableSource, so LookupFunction can not perceive the transfrom of primary key. -- This message was sent by Atlassian Jira (v8.3.2#803003)