Re: Re: proposal: schema variables

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Marcos Pegoraro <marcos(at)f10(dot)com(dot)br>
Cc: jian he <jian(dot)universality(at)gmail(dot)com>, Dmitry Dolgov <9erthalion6(at)gmail(dot)com>, Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, 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: Re: proposal: schema variables
Date: 2025-03-18 05:46:09
Message-ID: CAFj8pRArtw+Qqzk+Zf2NxjgO=paCBdc54eEma+MsVwtx3j7Atg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-performance

Hi

po 17. 3. 2025 v 21:53 odesílatel Marcos Pegoraro <marcos(at)f10(dot)com(dot)br>
napsal:

> Em seg., 17 de mar. de 2025 às 15:33, Pavel Stehule <
> pavel(dot)stehule(at)gmail(dot)com> escreveu:
>
>> I was asked for sending a reduced patchset
>>
>
> Would be good to explain what this reduced patchset is.
> Complete patch contains this and that
> Reduced patch contains only this.
>

Reduced patch contains:

* possibility to create and drop session variables (support for catalog
pg_variable and related operations)
* possibility to set the session variable (command LET) and possibility to
use session variable in the query
* access right support
* support for DISCARD command
* memory cleaning at transaction end when the variable is dropped
* warning when variable is shadowed by column
* introduction of variable's fences - syntax VARIABLE(varname)

Complete patch contains plus

* LET can be described by EXPLAIN
* LET can be prepared statement
* temporary session variables
* RESET at transaction end
* implementation of DEFAULT value for the variable
* implementation IMMUTABLE and NOT NULL clauses for the variable
* variable can be used as an argument of CALL statement (and doesn't block
simple evaluation in plpgsql)
* used variable doesn't block with parallel execution
* LET from plpgsql can use simple expression evaluation (performance
optimization for PL/pgSQL)
* variables doesn't block inlining SQL functions
* fix message "column doesn't exist" to "column or variable doesn't exist"
* support for transactional variables (content can be transactional)
* possibility to specify the name of restored variable for pg_restore

Regards

Pavel

>
> Regards
> Marcos
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Alena Rybakina 2025-03-18 05:57:40 Re: Vacuum statistics
Previous Message Fujii Masao 2025-03-18 05:34:52 Re: pg_recvlogical requires -d but not described on the documentation

Browse pgsql-performance by date

  From Date Subject
Next Message kimaidou 2025-03-18 07:48:53 Re: Bad perf when using DECLARE CURSOR on big table
Previous Message Motog Plus 2025-03-18 04:04:30 Background writer not active