Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Invalid
-
1.9.0
-
None
-
None
Description
Consider such a temporal join sql:
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)
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.