Обсуждение: Simplify xlogreader.c with XLogRec* macros

Поиск
Список
Период
Сортировка

Simplify xlogreader.c with XLogRec* macros

От
邱宇航
Дата:
Hello hackers,

Commit 3f1ce97 refactored XLog record access macros, but missed in a few places. I fixed this, and patch is attached.

--
Yuhang Qiu




Вложения

Re: Simplify xlogreader.c with XLogRec* macros

От
Junwang Zhao
Дата:
On Tue, Oct 31, 2023 at 5:23 PM 邱宇航 <iamqyh@gmail.com> wrote:
>
> Hello hackers,
>
> Commit 3f1ce97 refactored XLog record access macros, but missed in a few places. I fixed this, and patch is attached.
>
> --
> Yuhang Qiu
>
>
>

@@ -2036,8 +2035,8 @@ RestoreBlockImage(XLogReaderState *record, uint8
block_id, char *page)
  char    *ptr;
  PGAlignedBlock tmp;

- if (block_id > record->record->max_block_id ||
- !record->record->blocks[block_id].in_use)
+ if (block_id > XLogRecMaxBlockId(record) ||
+ !XLogRecGetBlock(record, block_id)->in_use)

I thought these can also be rewrite to:

if (!XLogRecHasBlockRef(record, block_id))


--
Regards
Junwang Zhao



Re: Simplify xlogreader.c with XLogRec* macros

От
邱宇航
Дата:
> @@ -2036,8 +2035,8 @@ RestoreBlockImage(XLogReaderState *record, uint8
> block_id, char *page)
>  char    *ptr;
>  PGAlignedBlock tmp;
> 
> - if (block_id > record->record->max_block_id ||
> - !record->record->blocks[block_id].in_use)
> + if (block_id > XLogRecMaxBlockId(record) ||
> + !XLogRecGetBlock(record, block_id)->in_use)
> 
> I thought these can also be rewrite to:
> 
> if (!XLogRecHasBlockRef(record, block_id))

Oops, I missed that. New version is attached.

--
Yuhang Qiu


Вложения

Re: Simplify xlogreader.c with XLogRec* macros

От
Bharath Rupireddy
Дата:
On Tue, Oct 31, 2023 at 4:12 PM 邱宇航 <iamqyh@gmail.com> wrote:
>
> >
> > I thought these can also be rewrite to:
> >
> > if (!XLogRecHasBlockRef(record, block_id))
>
> Oops, I missed that. New version is attached.

+1. Indeed a reasonable change. The attached v2 patch LGTM.

--
Bharath Rupireddy
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com



Re: Simplify xlogreader.c with XLogRec* macros

От
Bharath Rupireddy
Дата:
On Fri, Nov 3, 2023 at 12:01 AM Bharath Rupireddy
<bharath.rupireddyforpostgres@gmail.com> wrote:
>
> On Tue, Oct 31, 2023 at 4:12 PM 邱宇航 <iamqyh@gmail.com> wrote:
> >
> > >
> > > I thought these can also be rewrite to:
> > >
> > > if (!XLogRecHasBlockRef(record, block_id))
> >
> > Oops, I missed that. New version is attached.
>
> +1. Indeed a reasonable change. The attached v2 patch LGTM.

This patch basically uses the macros introduced by commit 3f1ce97 [1]
more extensively. I don't see a CF entry added for this patch. Please
add one if not added.

[1]
commit 3f1ce973467a0d285961bf2f99b11d06e264e2c1
Author: Thomas Munro <tmunro@postgresql.org>
Date:   Fri Mar 18 17:45:04 2022 +1300

    Add circular WAL decoding buffer, take II.

--
Bharath Rupireddy
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com