Re: recovery modules - Mailing list pgsql-hackers

From Andres Freund
Subject Re: recovery modules
Date
Msg-id 20230201115426.6japkd3rfs36hbhk@alap3.anarazel.de
Whole thread Raw
In response to Re: recovery modules  (Nathan Bossart <nathandbossart@gmail.com>)
Responses Re: recovery modules
List pgsql-hackers
Hi,

On 2023-01-31 15:30:13 -0800, Nathan Bossart wrote:


> +/*
> + * basic_archive_startup
> + *
> + * Creates the module's memory context.
> + */
> +void *
> +basic_archive_startup(void)
> +{
> +    return (void *) AllocSetContextCreate(TopMemoryContext,
> +                                          "basic_archive",
> +                                          ALLOCSET_DEFAULT_SIZES);
>  }

I'd make basic_archive's private data a struct, with a member for the
context, but it's not that important.

I'd also be inclined to do the same for the private_state you're passing
around for each module. Even if it's just to reduce the number of
functions accepting void * - loosing compiler type checking isn't great.

So maybe an ArchiveModuleState { void *private_data } that's passed to
basic_archive_startup() and all the other callbacks.

Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: Antonin Houska
Date:
Subject: RLS makes COPY TO process child tables
Next
From: Alvaro Herrera
Date:
Subject: Re: transition tables and UPDATE