For cases like: select * from t1 join t2 on t1.col = t2.col where t1.col = 1; Is rule PredicateTransitivePropagate supposed to propagate predicate "t1.col = 1" to t2 via join condition t1.col = t2.col? Assuming so, I found that the predicate "t1.col = 1" has not been pushed down to table scan of t1, thus PredicateTransitivePropagate wouldn't see the predicate. Then I tried to put PredicateTransitivePropagate after PredicatePushDown, I saw predicate "t1.col = 1" was propagated to t2.
Could anyone enlighten me? Thanks. Ruoxi SUN