Re: BUG #15669: Error with unnest in PG 11 (ERROR: 0A000)
Julien Rouhaud <rjuju123@gmail.com>
From: Julien Rouhaud <rjuju123@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: thibaut.madelaine@dalibo.com, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2019-03-05T17:16:10Z
Lists: pgsql-bugs
Attachments
- fix_srf-v2.diff (text/x-patch) patch v2
On Tue, Mar 5, 2019 at 5:34 PM Julien Rouhaud <rjuju123@gmail.com> wrote: > > On Tue, Mar 5, 2019 at 4:39 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > > > PG Bug reporting form <noreply@postgresql.org> writes: > > > In PostgreSQL 10.7 and before, it is possible to run the following query: > > > > > thibaut=# WITH test AS ( SELECT array[1,2] AS intarr ) > > > SELECT unnest(intarr) AS lot_id FROM test WHERE false; > > > > > In version 11.2, the same query fails: > > > ERROR: 0A000: set-valued function called in context that cannot accept a set > > > > Hmm, that's definitely a bug. It looks like we're forgetting to make > > a ProjectSet plan node for the unnest() if we realize that the query > > is a no-op; but I'm not sure why 10.x doesn't have the same issue. > > Digging ... > > It seems to be due to 11cf92f6e2e which bypass adjust_paths_for_srfs() > in case of dummy rel. I'm not familiar with that this code, but > attached patch seems to fix the issue without breaking regression > tests. I forgot to add a regression test, fixed in v2 with a simplified test case.
Commits
-
Fix handling of targetlist SRFs when scan/join relation is known empty.
- 1d338584062b 12.0 landed
- 925f46ffb82f 11.3 landed
- 19ff710aaa5f 10.8 landed