Re: Refactoring SysCacheGetAttr to know when attr cannot be NULL
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Daniel Gustafsson <daniel@yesql.se>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-02-28T23:20:21Z
Lists: pgsql-hackers
Daniel Gustafsson <daniel@yesql.se> writes: > The attached refactoring introduce SysCacheGetAttrNotNull as a wrapper around > SysCacheGetAttr where a NULL value triggers an elog(). +1, seems like a good idea. (I didn't review the patch details.) > This will reduce granularity of error messages, and as the patch sits now it > does so a lot since the message is left to work on - I wanted to see if this > was at all seen as a net positive before spending time on that part. I chose > an elog since I as a user would prefer to hit an elog instead of a silent keep > going with an assert, this is of course debateable. I'd venture that the Assert cases are mostly from laziness, and that once we centralize this it's plenty worthwhile to generate a decent elog message. You ought to be able to look up the table and column name from the info that is at hand. Also ... at least in assert-enabled builds, maybe we could check that the column being fetched this way is actually marked attnotnull? That would help to catch misuse. regards, tom lane
Commits
-
Add SysCacheGetAttrNotNull for guaranteed not-null attrs
- d435f15fff3c 16.0 landed