Re: Sequence Access Methods, round two

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Kirill Reshke <reshkekirill@gmail.com>
Cc: Peter Eisentraut <peter@eisentraut.org>, Peter Smith <smithpb2250@gmail.com>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-08-18T23:28:07Z
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. Refactor init_params() in sequence.c to not use FormData_pg_sequence_data

  2. Fix comment thinko in sequence.c

  3. Group more closely cache updates for backends in sequence.c

  4. Introduce sequence_*() access functions

On Mon, Aug 18, 2025 at 06:15:05PM +0500, Kirill Reshke wrote:
> Yes, this resonates with me better.

After sleeping on it, yes, perhaps that's the right move.
test_ddl_deparse reports the attributes as related to a sequence, but
it's really how this is handled internally anyway with the internal
call of DefineRelation().  This entirely decouples the relation
creation and the creation of its attributes.

> @@ -3365,7 +3365,7 @@ match_previous_words(int pattern_id,
>                 COMPLETE_WITH("TYPE");
>         /* Complete "CREATE ACCESS METHOD <name> TYPE" */
>         else if (Matches("CREATE", "ACCESS", "METHOD", MatchAny, "TYPE"))
> -               COMPLETE_WITH("INDEX", "TABLE");
> +               COMPLETE_WITH("INDEX", "TABLE", "SEQUENCE");
>         /* Complete "CREATE ACCESS METHOD <name> TYPE <type>" */
>         else if (Matches("CREATE", "ACCESS", "METHOD", MatchAny,
> "TYPE", MatchAny))
>                 COMPLETE_WITH("HANDLER");

Right, thanks.
--
Michael