Re: some Page/PageData const stuff - Mailing list pgsql-hackers

From Andres Freund
Subject Re: some Page/PageData const stuff
Date
Msg-id beusplf77varvhip6ryuhd2fchsx26qmmhduqz432bnglq634b@2dx4k6yxj4cm
Whole thread Raw
In response to Re: some Page/PageData const stuff  (Peter Eisentraut <peter@eisentraut.org>)
Responses Re: some Page/PageData const stuff
List pgsql-hackers
Hi,

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.

Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: Kirill Reshke
Date:
Subject: Re: GIN pageinspect support for entry tree and posting tree
Next
From: Benjamin Leff
Date:
Subject: Re: Client-only Meson Build From Sources