Re: Mark ItemPointer parameters as const in tuple/table lock functions
От
Peter Eisentraut
Тема
Re: Mark ItemPointer parameters as const in tuple/table lock functions
Дата
Msg-id
812f1ee6-eb2f-4793-92d2-98a800273245@eisentraut.org
Ответ на
Список
Дерево обсуждения
Mark ItemPointer parameters as const in tuple/table lock functions Chao Li <li.evan.chao@gmail.com>
Re: Mark ItemPointer parameters as const in tuple/table lock functions Peter Eisentraut <peter@eisentraut.org>
Re: Mark ItemPointer parameters as const in tuple/table lock functions Chao Li <li.evan.chao@gmail.com>
Re: Mark ItemPointer parameters as const in tuple/table lock functions Peter Eisentraut <peter@eisentraut.org>
Re: Mark ItemPointer parameters as const in tuple/table lock functions Chao Li <li.evan.chao@gmail.com>
Re: Mark ItemPointer parameters as const in tuple/table lock functions Chao Li <li.evan.chao@gmail.com>
On 28.08.25 04:27, Chao Li wrote: >> On Aug 27, 2025, at 17:24, Peter Eisentraut wrote: >> >> This style of having Foo be a type alias for pointer-to-FooData is an >> ancient Postgres coding convention that does not map well to modern C >> that has an emphasis on judicious use of qualifiers and attributes, >> and so if this abstraction gets in the way, we sometimes crack it >> open, like in the case of ItemPointerGetBlockNumber() etc. > > You are right, we want to protect the stuff that “tid” points to instead > of “tid” itself: > > *tid = something; // should hit compile error > tid = something; // ok > > Also, thanks for telling the history. I have updated the patch to use > “const ItemPointerData *” in the same way as ItemPointerGetBlockNumber(). > > Attached is the v2 patch. This patch still causes a compiler warning: ../src/backend/storage/lmgr/lmgr.c: In function 'XactLockTableWait': ../src/backend/storage/lmgr/lmgr.c:681:27: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers] I have fixed that and committed your patch.
В списке pgsql-hackers по дате отправления
От: Ajin Cherian
Дата: