While working on a different FDW, I discovered that postgres_fdw doesn't push a DISTINCT clause to the foreign server,
unlessit's part of an aggregate function:
k=# explain verbose select distinct i from tf;
QUERY PLAN
--------------------------------------------------------------------------
HashAggregate (cost=193.20..195.20 rows=200 width=8)
Output: i
Group Key: tf.i
-> Foreign Scan on public.tf (cost=100.00..186.80 rows=2560 width=8)
Output: i, f
Remote SQL: SELECT i FROM public.tf
(6 rows)
Of course, the same effect can be achieved with GROUP BY, but I'm curious why it doesn't push it down?