Re: BUG #16536: Segfault with partition-wise joins

From: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #16536: Segfault with partition-wise joins
Date: 2020-07-14 14:24:08
Message-ID: 87eepeqjez.fsf@news-spur.riddles.org.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

>>>>> "Tom" == Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:

Tom> Anyway, I can see a couple of routes to a fix:

Tom> (1) Change create_bitmap_and_path and create_bitmap_or_path to
Tom> account for parameterization honestly. This is certainly the
Tom> cleanest fix, but it would add some cycles, and what's probably a
Tom> bigger issue for back-patching is that their signatures would have
Tom> to change. Maybe that's okay? There's probably not a reason for
Tom> external code to call them, and codesearch.debian.net knows of no
Tom> instances of that.

Tom> (2) Hack up reparameterize_path_by_child so that it will descend
Tom> into these nodes regardless of their parameterization markers.
Tom> That's okay from an efficiency standpoint, since we'd already have
Tom> stopped at the parent BitmapHeapPath if it weren't parameterized.
Tom> But it seems quite ugly.

Well the obvious compromise fix is to do 2 in the back-branches and 1 in
head, but that may be overkill...

Tom> Another point I notice is that reparameterize_path thinks it
Tom> doesn't need to touch sub-structure at all when increasing the
Tom> parameterization of a BitmapHeapPath. Maybe that's okay but it
Tom> probably deserves more thought, especially since I see that the
Tom> case is again untested.

Hmm. I'm not sure I fully understand the implications of what's going on
there, but if new quals are effectively being moved into the path as a
result of the reparameterization, then leaving the substructure alone
would presumably mean that those new quals can only become Filter:
clauses. But presumably, if they could be usefully indexed, then we
would have already generated a parameterized path that included them?

--
Andrew (irc:RhodiumToad)

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Bruce Momjian 2020-07-14 14:27:00 Re: BUG #16526: pg_test_fsync in v12 doesn't run in Windows
Previous Message Tom Lane 2020-07-14 14:11:52 Re: ERROR: cache lookup failed for collation 0 on DELETE query after upgrading from 9.X to 12.3