Re: proposal: schema variables

From: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
To: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
Cc: Erik Rijkers <er(at)xs4all(dot)nl>, Michael Paquier <michael(at)paquier(dot)xyz>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, DUVAL REMI <REMI(dot)DUVAL(at)cheops(dot)fr>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: proposal: schema variables
Date: 2024-11-13 14:24:02
Message-ID: 8842f664d3b4c909d97fd56d374d899fac9a5b84.camel@cybertec.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-performance

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.

> --- 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.

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

Yours,
Laurenz Albe

Attachment Content-Type Size
v20241113-0001-Enhancing-catalog-for-support-session-vari.patch text/x-patch 130.0 KB
v20241113-0002-Storage-for-session-variables-and-SQL-inte.patch text/x-patch 145.2 KB
v20241113-0003-function-pg_session_variables-for-cleaning.patch text/x-patch 4.3 KB
v20241113-0004-DISCARD-VARIABLES.patch text/x-patch 9.6 KB
v20241113-0005-memory-cleaning-after-DROP-VARIABLE.patch text/x-patch 20.8 KB
v20241113-0006-plpgsql-tests.patch text/x-patch 16.9 KB
v20241113-0007-GUC-session_variables_ambiguity_warning.patch text/x-patch 13.9 KB
v20241113-0008-EXPLAIN-LET-support.patch text/x-patch 8.2 KB
v20241113-0009-PREPARE-LET-support.patch text/x-patch 7.4 KB
v20241113-0010-implementation-of-temporary-session-variab.patch text/x-patch 42.2 KB
v20241113-0011-Implementation-ON-TRANSACTION-END-RESET-cl.patch text/x-patch 14.6 KB
v20241113-0012-Implementation-of-DEFAULT-clause-default-e.patch text/x-patch 33.7 KB
v20241113-0013-Implementation-of-NOT-NULL-and-IMMUTABLE-c.patch text/x-patch 35.6 KB
v20241113-0014-allow-read-an-value-of-session-variable-di.patch text/x-patch 13.3 KB
v20241113-0015-allow-parallel-execution-queries-with-sess.patch text/x-patch 11.9 KB
v20241113-0016-plpgsql-implementation-for-LET-statement.patch text/x-patch 14.2 KB
v20241113-0017-expression-with-session-variables-can-be-i.patch text/x-patch 4.2 KB
v20241113-0018-this-patch-changes-error-message-column-do.patch text/x-patch 29.2 KB
v20241113-0019-transactional-variables.patch text/x-patch 39.2 KB
v20241113-0020-pg_restore-A-variable.patch text/x-patch 2.8 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2024-11-13 14:51:47 Re: Avoiding superfluous buffer locking during nbtree backwards scans
Previous Message Yugo NAGATA 2024-11-13 14:17:06 Re: Add reject_limit option to file_fdw

Browse pgsql-performance by date

  From Date Subject
Next Message Pavel Stehule 2024-11-13 15:06:37 Re: proposal: schema variables
Previous Message Achilleas Mantzios - cloud 2024-11-13 08:45:58 Re: tds_fdw : Severe performance degradation from postgresql 10.23 to 16.4