Re: Refactoring SysCacheGetAttr to know when attr cannot be NULL
Daniel Gustafsson <daniel@yesql.se>
From: Daniel Gustafsson <daniel@yesql.se>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Peter Eisentraut <peter.eisentraut@enterprisedb.com>,
Tom Lane <tgl@sss.pgh.pa.us>,
Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-03-24T21:12:13Z
Lists: pgsql-hackers
> On 24 Mar 2023, at 21:59, David Rowley <dgrowleyml@gmail.com> wrote: > On Fri, 24 Mar 2023 at 20:31, Peter Eisentraut <peter.eisentraut@enterprisedb.com> wrote: >> On 23.03.23 09:52, David Rowley wrote: >>> One thing I thought about while looking is it stage 2 might do >>> something similar for SearchSysCacheN. I then wondered if we're more >>> likely to want to keep the localised __FILE__, __LINE__ and __func__ >>> in the elog for those or not. It's probably less important that we're >>> losing those for this change, but worth noting here at least in case >>> nobody else thought of it. >> >> I don't follow what you are asking for here. > > I had two points: > > 1. Doing something similar for SearchSysCache1 and co might be a good > phase two to this change. Quite possibly yes, they do follow a pretty repeatable pattern. > 2. With the change Daniel is proposing here, \set VERBOSITY verbose is > not going to print as useful information to tracking down where any > unexpected nulls in the catalogue originates. Thats a fair point for the elog() removals, for the rather many assertions it might be a net positive to get a non-local elog when failing in production. -- Daniel Gustafsson
Commits
-
Add SysCacheGetAttrNotNull for guaranteed not-null attrs
- d435f15fff3c 16.0 landed