Re: postgres_fdw: perform UPDATE/DELETE .. RETURNING on a join directly

Etsuro Fujita <etsuro.fujita@gmail.com>

From: Etsuro Fujita <etsuro.fujita@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>, Pg Hackers <pgsql-hackers@postgresql.org>, Rushabh Lathia <rushabh.lathia@gmail.com>, Michael Paquier <michael.paquier@gmail.com>, Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
Date: 2018-02-11T07:45:10Z
Lists: pgsql-hackers
2018-02-11 6:24 GMT+09:00 Tom Lane <tgl@sss.pgh.pa.us>:

> Robert Haas <robertmhaas@gmail.com> writes:
> > On Fri, Feb 9, 2018 at 1:33 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >> Robert Haas <robertmhaas@gmail.com> writes:
> >>> Me neither.  I just ran the postgres_fdw regression tests 713 times in
> >>> a row without a failure.  Tom, since you seem to be able to reproduce
> >>> the problem locally, could you have a look at this proposed fix?
>
> >> I'm a bit busy, but AFAICS it's just a timing thing, so try inserting
> >> a sleep.  The attached is enough to reproduce rhinoceros' results
> >> for me.
>
> > Not for me, but when I pushed the pg_sleep up to 180 seconds, then it
> failed.
>
> > With the proposed patch, it passes repeatedly for me with no sleep,
> > and also passes for me with the sleep.  So I guess I'll commit this
> > and see what the buildfarm thinks.
>
> FWIW, I ran a thousand cycles of postgres_fdw installcheck without seeing
> further problems.  So this fixes it at least for my configuration.
>

Thank you both for working on this issue!

However, jaguarundi still shows a problem:
>
> https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=
> jaguarundi&dt=2018-02-10%2008%3A41%3A32
>
> (previous run similar, so it's semi-reproducible even after this patch).
> jaguarundi uses -DCLOBBER_CACHE_ALWAYS, so you might try a few repetitions
> with that.
>

I'll look into this and send a patch by Tuesday.

Best regards,
Etsuro Fujita

Commits

  1. Temporarily instrument postgres_fdw test to look for statistics changes.

  2. postgres_fdw: Fourth attempt to stabilize regression tests.

  3. postgres_fdw: Third attempt to stabilize regression tests.

  4. postgres_fdw: Attmempt to stabilize regression tests.

  5. postgres_fdw: Push down UPDATE/DELETE joins to remote servers.