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-05T16:34:21Z
Lists: pgsql-bugs
Attachments
- fix_srf.diff (text/x-patch) patch
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.
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