Re: Use LOCKMODE in parse_relation.c/.h
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: Andreas Karlsson <andreas@proxel.se>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2026-02-23T20:27:30Z
Lists: pgsql-hackers
On 18.02.26 18:19, Andreas Karlsson wrote: > On 2/18/26 10:50 AM, Peter Eisentraut wrote: >> There are a couple of comments in parse_relation.c >> >> > Note: properly, lockmode should be declared LOCKMODE not int, but that >> > would require importing storage/lock.h into parse_relation.h. Since >> > LOCKMODE is typedef'd as int anyway, that seems like overkill. >> >> but actually LOCKMODE has been in storage/lockdefs.h for a while, >> which is intentionally a more narrow header. So we can include that >> one in parse_relation.h and just use LOCKMODE normally. >> >> An alternative would be to add a duplicate typedef into >> parse_relation.h, but that doesn't seem necessary here. > > Looks like a nice change and I did not find any more cases where we > should fix this. > > But when I was looking I found a case where BufferLockMode could be used > in the gin code (ginStepRight() and the brin (brinGetTupleForHeapBlock) > code but I am not sure there are worth fixing. I think these could be worth improving, if only to make the function signatures more clear (there are different kinds of enums for different kinds of lock modes).
Commits
-
Use LOCKMODE in parse_relation.c/.h
- aca61f7e5f8a 19 (unreleased) landed
-
Don't include low level locking code from frontend code.
- 4eda0a647057 9.6.0 cited
-
Add a bunch of new error location reports to parse-analysis error messages.
- b153c0920960 8.4.0 cited