Re: BUG #16801: Invalid memory access on WITH RECURSIVE with nested WITHs
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Michael Paquier <michael@paquier.xyz>
Cc: Alexander Lakhin <exclusion@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2021-02-25T15:19:43Z
Lists: pgsql-bugs
Michael Paquier <michael@paquier.xyz> writes: > On Wed, Feb 24, 2021 at 09:48:03PM -0500, Tom Lane wrote: >> Anyway, I think we're better off with a test that doesn't require >> DEBUG_LIST_MEMORY_USAGE, or preferably not even CLOBBER_FREED_MEMORY, >> to show the problem. The test I showed misbehaves even in non-debug >> builds, because it actually depends on what's in the innerwiths lists. > Yeah. What I sent previously does not break in non-debug builds, but > it does with just --enable-cassert. > Hmm. I'd like to think that this would be enough for this thread, and > I cannot come up now with a test able to break the lists for non-debug > builds. But perhaps you have an idea? For me, the example I gave fails in a non-debug build. With the code as of HEAD, I get "ERROR: stack depth limit exceeded" or a segfault. With your patch applied, it complains about w6 not having the correct form for a recursive CTE. regards, tom lane
Commits
-
Fix list-manipulation bug in WITH RECURSIVE processing.
- 80ca8464fe02 14.0 landed
- 49076fd3ba6b 13.3 landed