Re: pg15b1: FailedAssertion("val > base", File: "...src/include/utils/relptr.h", Line: 67, PID: 30485)
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Robert Haas <robertmhaas@gmail.com>,
Kyotaro Horiguchi <horikyota.ntt@gmail.com>,
Justin Pryzby <pryzby@telsasoft.com>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-05-31T21:52:09Z
Lists: pgsql-hackers
Thomas Munro <thomas.munro@gmail.com> writes: > Count we make the relptrs 1-based, so that 0 is reserved as a sentinel > that has the nice memset(0) property? Hm ... almost. A +1 offset would mean that zero is ambiguous with a pointer to the byte just before the relptr. Maybe that case never arises in practice, but now that we've seen this problem I'm not real comfortable with such an assumption. But how about a -1 offset? Then zero would be ambiguous with a pointer to the second byte of the relptr, and I think I *am* prepared to assume that that has no use-cases. The other advantage of such a definition is that it'd help flush out anybody breaking the relptr abstraction ;-) regards, tom lane
Commits
-
Fix relptr's encoding of the base address.
- 99504ff8265e 14.5 landed
- 7201cd18627a 15.0 landed
-
Suppress compiler warning in relptr_store().
- e07d4ddc55fd 15.0 cited