How do we know which operator/function is eligible for pushdown and which is not? For example, are the following operators/functions eligible for pushdown:
CONCAT(col, '-', partitionCol)
col || - || partitionCol
ARRAY_INTERSECTS()
ANY_MATCH()
Is there a general rule of knowing which ones are eligible?
You can run explain and see if the expression is still in the query plan. That is the definitive way. It’s also specific to the connector.
If an aggregate function is successfully pushed down to the connector, the explain plan does not show that Aggregate operator.
…
…this query does not show any Aggregate operator with the count function, as this operation is now performed by the connector.
Also, you can take a look at EXPLAIN output, the Scan line (eg “TableScan”, “ScanFilter” or “ScanFilterProject”). The scan line will indicate the agg pushdown did happen
see: https://twitter.com/findepi/status/1352028552745652225