Re: [sqlsmith] ERROR: badly formatted node string "RESTRICTINFO...

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andreas Seltenreich <seltenreich@gmx.de>
Cc: pgsql-hackers@postgresql.org
Date: 2017-04-09T15:51:52Z
Lists: pgsql-hackers
Andreas Seltenreich <seltenreich@gmx.de> writes:
> regression=> select (select max(result) from fdw_postgres.num_result) from tt0;
> ERROR:  badly formatted node string "RESTRICTINFO :clause {NULLTEST :"...
> CONTEXT:  parallel worker

Apparently, postgres_fdw is trying to store RestrictInfos in the
fdw_private field of a ForeignScan node.  That won't do; those aren't
supposed to be present in a finished plan tree, so there's no readfuncs.c
support for them (and we're not adding it).

Don't know if this is a new bug, or ancient but not previously reachable.
It seems to be nearly the inverse of the problem you found yesterday,
in which postgres_fdw was stripping RestrictInfos sooner than it really
ought to.  Apparently that whole business needs a fresh look.

			regards, tom lane


Commits

  1. Avoid transferring parallel-unsafe subplans to parallel workers.

  2. Mark finished Plan nodes with parallel_safe flags.

  3. Simplify handling of remote-qual pass-forward in postgres_fdw.

  4. Handle restriction clause lists more uniformly in postgres_fdw.

  5. Allow parallel workers to execute subplans.