Re: proposal: schema variables - Mailing list pgsql-hackers

From Haritabh Gupta
Subject Re: proposal: schema variables
Date
Msg-id 177261853144.1094601.11795093672679754617.pgcf@coridan.postgresql.org
Whole thread Raw
In response to Re: proposal: schema variables  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: proposal: schema variables
Re: proposal: schema variables
List pgsql-hackers
Hi,

While reviewing I came across this behaviour and wanted to
check whether it's intended:

    CREATE TEMP VARIABLE y AS int;
    LET y = 42;

    BEGIN;
    SAVEPOINT s1;
    LET y = generate_series(1,2);  -- ERROR: too many rows
    ROLLBACK TO s1;
    SELECT VARIABLE(y);            -- returns 1, not 42

It looks like svariableReceiveSlot writes the first row to the
variable (pfree'ing the old datum) before the second row triggers the
error, so the old value is lost even though LET failed.

I understand variable values are intentionally non-transactional, but
is it expected that a failed LET has this side effect? 

---
Haritabh Gupta
Supabase

pgsql-hackers by date:

Previous
From: Nitin Motiani
Date:
Subject: Re: Adding pg_dump flag for parallel export to pipes
Next
From: shveta malik
Date:
Subject: Re: [PATCH] Support automatic sequence replication