Re: POC: make mxidoff 64 bits - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: POC: make mxidoff 64 bits
Date
Msg-id 73b48ddd-3114-450e-939b-63a39b0210c6@iki.fi
Whole thread Raw
In response to Re: POC: make mxidoff 64 bits  ("zengman" <zengman@halodbtech.com>)
Responses Re: POC: make mxidoff 64 bits
Re: POC: make mxidoff 64 bits
List pgsql-hackers
On 30/12/2025 03:49, zengman wrote:
> Hi,
> 
> I'm currently looking into the `SlruReadSwitchPageSlow` function and have a question regarding the expression
`&state->buf.data+ bytes_read` —
 
> I suspect the ampersand (&) here might be misused. Would you be able to help me verify this?
> 
> ```
>     while (bytes_read < BLCKSZ)
>     {
>         ssize_t        rc;
> 
>         rc = pg_pread(state->fd,
>                       &state->buf.data + bytes_read,
>                       BLCKSZ - bytes_read,
>                       offset);
>         if (rc < 0)
>         {
>             if (errno == EINTR)
>                 continue;
>             pg_fatal("could not read file \"%s\": %m", state->fn);
>         }
>         if (rc == 0)
>         {
>             /* unexpected EOF */
>             pg_log(PG_WARNING, "unexpected EOF reading file \"%s\" at offset %u, reading as zeros",
>                    state->fn, (unsigned int) offset);
>             memset(&state->buf.data + bytes_read, 0, BLCKSZ - bytes_read);
>             break;
>         }
>         bytes_read += rc;
>         offset += rc;
>     }
> ```
> 
> ```
>         rc = pg_pread(state->fd,
>                       &state->buf.data + bytes_read,
>                       BLCKSZ - bytes_read,
>                       offset);
> memset(&state->buf.data + bytes_read, 0, BLCKSZ - bytes_read);
> ```

Yes, you're right. Good catch! Committed the fix, thanks.

- Heikki




pgsql-hackers by date:

Previous
From: Jacob Jackson
Date:
Subject: Proposal: Add a UNIQUE NOT ENFORCED constraint
Next
From: Jim Jones
Date:
Subject: Re: WIP - xmlvalidate implementation from TODO list