Re: proposal: schema variables

Pavel Stehule <pavel.stehule@gmail.com>

From: Pavel Stehule <pavel.stehule@gmail.com>
To: Laurenz Albe <laurenz.albe@cybertec.at>
Cc: Erik Rijkers <er@xs4all.nl>, Michael Paquier <michael@paquier.xyz>, Amit Kapila <amit.kapila16@gmail.com>, DUVAL REMI <REMI.DUVAL@cheops.fr>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-11-13T15:06:37Z
Lists: pgsql-hackers, pgsql-performance

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Move WAL sequence code into its own file

  2. Add ExplainState argument to pg_plan_query() and planner().

  3. Don't include access/htup_details.h in executor/tuptable.h

  4. Refactor to avoid code duplication in transformPLAssignStmt.

  5. Avoid including commands/dbcommands.h in so many places

  6. Restrict psql meta-commands in plain-text dumps.

  7. Split func.sgml into more manageable pieces

  8. Fix squashing algorithm for query texts

  9. EXPLAIN: Always use two fractional digits for row counts.

  10. Preliminary refactoring of plpgsql expression construction.

  11. plpgsql: pure parser and reentrant scanner

  12. Add some sanity checks in executor for query ID reporting

  13. Fix misleading error message context

  14. Add macros for looping through a List without a ListCell.

st 13. 11. 2024 v 15:24 odesílatel Laurenz Albe <laurenz.albe@cybertec.at>
napsal:

> Thanks for the updated patch set.
>
> Here is my review of patch 0005:
>
> > --- a/src/backend/access/transam/xact.c
> > +++ b/src/backend/access/transam/xact.c
> > +#include "commands/session_variable.h"
>
> You probably forgot to move that to the patch for temporary variables.
> I did that.
>

+1


> > --- a/src/backend/commands/session_variable.c
> > +++ b/src/backend/commands/session_variable.c
> > @@ -83,6 +92,19 @@ static HTAB *sessionvars = NULL; /* hash table for
> session variables */
> >
> >  static MemoryContext SVariableMemoryContext = NULL;
> >
> > +/* true after accepted sinval message */
> > +static bool needs_validation = false;
> > +
> > +/*
> > + * The content of session variables is not removed immediately. When it
> > + * is possible we do this at the transaction end. But when the
> transaction failed,
> > + * we cannot do it, because we lost access to the system catalog. So we
> > + * try to do it in the next transaction before any get or set of any
> session
> > + * variable. We don't want to repeat this opening cleaning in
> transaction,
> > + * So we store the id of the transaction where opening validation was
> done.
> > + */
> > +static LocalTransactionId validated_lxid = InvalidLocalTransactionId;
>
> I have moved the reference to the transaction end to the temporary variable
> patch.
>

+1


> I have gone over the comments in patch 0005 and 0006.
> I hope I got everything right.  Attached is an updated patch set.
>

Thank you

Pavel


>
> Yours,
> Laurenz Albe
>