Re: CHECKPOINT unlogged data

Christoph Berg <myon@debian.org>

From: Christoph Berg <myon@debian.org>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Fujii Masao <masao.fujii@oss.nttdata.com>, Andres Freund <andres@anarazel.de>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-06-11T13:45:46Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add FLUSH_UNLOGGED option to CHECKPOINT command.

  2. Add MODE option to CHECKPOINT command.

  3. Add option list to CHECKPOINT command.

  4. Rename CHECKPOINT_FLUSH_ALL to CHECKPOINT_FLUSH_UNLOGGED.

  5. Rename CHECKPOINT_IMMEDIATE to CHECKPOINT_FAST.

Re: Nathan Bossart
> That seems like a good idea to me.  I'm tempted to say that "fast" more
> accurately describes what's happening than "immediate."  "Immediate" sounds
> like it happens instantaneously, but it's actually just happening "fast,"
> i.e., as fast as possible.

Ack.

> > #define CHECKPOINT_FLUSH_ALL    0x0010  /* Flush all pages, including those
> >                                          * belonging to unlogged tables */
> > 
> > Maybe CHECKPOINT_FLUSH_UNLOGGED would be more explicit?
> 
> WFM.

Do we want to change the checkpoint log message (and the new options)
only, or include the CHECKPOINT_* flags? (I would guess there aren't
many external users of these flags, but mmmv.)

> I thought it would make sense to put it closer to where these options are
> described, since it'll be most evident for manually-initiated checkpoints.

Ack, I'll add that.

> >> We might also want to make sure it's clear that CHECKPOINT does nothing if
> >> there's been no database activity since the last one (or, in the case of a
> >> restartpoint, if there hasn't been a checkpoint record).
> > 
> > That's taken care of by "force":
> > 
> > #define CHECKPOINT_FORCE        0x0008  /* Force even if no activity */
> 
> Oh, I see that we always specify that for CHECKPOINT commands, except for
> restartpoints.  IIRC even if you do specify CHECKPOINT_FORCE for a
> restartpoint, it'll have no effect.  It's proably worth mentioning that
> case, at least.

Right, will do.

Christoph