Re: proposal: schema variables

Pavel Stehule <pavel.stehule@gmail.com>

From: Pavel Stehule <pavel.stehule@gmail.com>
To: jian he <jian.universality@gmail.com>
Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe <laurenz.albe@cybertec.at>, 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-12-20T12:53:20Z
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.

Attachments

Hi


----------------<<<>>>>-----------------------------
>> CREATE VARIABLE IF NOT EXISTS v2 AS comp;
>> grant update on variable v2 to alice;
>> set role alice;
>> LET v2.a  = 12; --acl permission error
>> LET v2.b = 12; --acl permission error
>> LET v2 = (11,12); --ok.
>>
>
>
>
>>
>> not sure this is the desired behavior, for composite type variables, you
>> are
>> allowed to change all the values, but you are not allowed to update the
>> field
>> value of the composite.  The following are normal table test update cases.
>>
>> create type comp as (a int, b  int);
>> create table t2(a comp);
>> insert into t2 select '(11,12)';
>> grant update (a ) on t2 to alice;
>> set role alice;
>> update t2 set a.a = 13; --ok
>> update t2 set a.b = 13; --ok
>> update t2 set a = '(11,13)'; --ok
>>
>
> I think this is a bug, but I need more time for investigation. For field
> update you need to read the content
> the variable, but you are missing SELECT right on the variable, and then
> the LET fails. Unfortunately
> this is done inside the executor, so it is harder to fix it.
>
>
I fixed this issue - the change is done in Patch 02

Reards

Pavel



>
>