| From: | Peter Eisentraut <peter(at)eisentraut(dot)org> |
|---|---|
| To: | Andres Freund <andres(at)anarazel(dot)de> |
| Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: some Page/PageData const stuff |
| Date: | 2026-01-04 15:10:30 |
| Message-ID: | 56a6e40d-52d4-4ecb-a37e-0b2c86fb7d72@eisentraut.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 03.01.26 18:23, Andres Freund wrote:
> On 2026-01-03 18:05:19 +0100, Peter Eisentraut wrote:
>> On 02.01.26 20:17, Andres Freund wrote:
>>> On 2025-01-20 15:01:08 +0100, Peter Eisentraut wrote:
>>>> This has been committed.
>>>
>>> I don't like the const markings in PageGetItem():
>>>
>>>
>>> /*
>>> * PageGetItem
>>> * Retrieves an item on the given page.
>>> *
>>> * Note:
>>> * This does not change the status of any of the resources passed.
>>> * The semantics may change in the future.
>>> */
>>> static inline void *
>>> PageGetItem(const PageData *page, const ItemIdData *itemId)
>>> {
>>> Assert(page);
>>> Assert(ItemIdHasStorage(itemId));
>>>
>>> return (void *) (((const char *) page) + ItemIdGetOffset(itemId));
>>> }
>>>
>>> The const for PageData seems like a lie to me, because we cast it away. And
>>> indeed, we often then use the returned value to set hint bits etc.
>>
>> I agree this is incorrect. Since no callers appear to rely on the const
>> qualification of the argument, the easiest solution would be to just remove
>> it. See attached patch.
>
> LGTM
committed
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andrew Dunstan | 2026-01-04 15:37:05 | Re: Non-text mode for pg_dumpall |
| Previous Message | Tatsuo Ishii | 2026-01-04 14:01:44 | Re: Row pattern recognition |