Re: Push down more UPDATEs/DELETEs in postgres_fdw

From: Etsuro Fujita <fujita(dot)etsuro(at)lab(dot)ntt(dot)co(dot)jp>
To: Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Push down more UPDATEs/DELETEs in postgres_fdw
Date: 2016-09-08 10:55:03
Message-ID: e5e2b521-545a-8682-6153-360596fd460a@lab.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2016/09/07 13:21, Ashutosh Bapat wrote:
> * with the patch:
> postgres=# explain verbose delete from ft1 using ft2 where ft1.a =
> ft2.a;
> QUERY PLAN
> -----------------------------------------------------------------------------------------------------------------------------
> Delete on public.ft1 (cost=100.00..102.04 rows=1 width=38)
> -> Foreign Delete (cost=100.00..102.04 rows=1 width=38)
> Remote SQL: DELETE FROM public.t1 r1 USING (SELECT ROW(a,
> b), a FROM public.t2) ss1(c1, c2) WHERE ((r1.a = ss1.c2))
> (3 rows)

> The underlying scan on t2 requires ROW(a,b) for locking the row for
> update/share. But clearly it's not required if the full query is being
> pushed down.

Exactly.

> Is there a way we can detect that ROW(a,b) is useless
> column (not used anywhere in the other parts of the query like
> RETURNING, DELETE clause etc.) and eliminate it?

I don't have a clear solution for that yet, but I'll try to remove that
in the next version.

> Similarly for a, it's
> part of the targetlist of the underlying scan so that the WHERE clause
> can be applied on it. But it's not needed if we are pushing down the
> query. If we eliminate the targetlist of the query, we could construct a
> remote query without having subquery in it, making it more readable.

Will try to do so also.

Thanks for the comments!

Best regards,
Etsuro Fujita

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Craig Ringer 2016-09-08 11:04:27 Re: High-CPU consumption on information_schema (only) query
Previous Message Etsuro Fujita 2016-09-08 10:51:00 Re: Push down more full joins in postgres_fdw