Re: proposal: schema variables
Pavel Stehule <pavel.stehule@gmail.com>
Attachments
- v20260305-0011-subtransaction-support-for-session-variables-DDL-CRE.patch (text/x-patch) patch v20260305-0011
- v20260305-0008-support-CREATE-IF-NOT-EXISTS-and-DROP-IF-EXISTS.patch (text/x-patch) patch v20260305-0008
- v20260305-0007-DISCARD-TEMP.patch (text/x-patch) patch v20260305-0007
- v20260305-0009-use-names-of-currently-used-temp-variables-for-tab-c.patch (text/x-patch) patch v20260305-0009
- v20260305-0010-transactional-DDL-CREATE-VARIABLE-DROP-VARIABLE.patch (text/x-patch) patch v20260305-0010
- v20260305-0006-LET-command-assign-a-result-of-expression-to-the-ses.patch (text/x-patch) patch v20260305-0006
- v20260305-0005-svariableReceiver.patch (text/x-patch) patch v20260305-0005
- v20260305-0004-fill-an-auxiliary-buffer-with-values-of-session-vari.patch (text/x-patch) patch v20260305-0004
- v20260305-0003-collect-session-variables-used-in-plan-and-assign-pa.patch (text/x-patch) patch v20260305-0003
- v20260305-0002-parsing-session-variable-fences.patch (text/x-patch) patch v20260305-0002
- v20260305-0001-CREATE-VARIABLE-DROP-VARIABLE.patch (text/x-patch) patch v20260305-0001
Hi st 4. 3. 2026 v 11:03 odesílatel Haritabh Gupta <haritabh1992@gmail.com> napsal: > 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? > please, check attached patch Regards Pavel > > --- > Haritabh Gupta > Supabase
Commits
-
Reduce LEFT JOIN to ANTI JOIN using NOT NULL constraints
- cf74558feb8f 19 (unreleased) cited
-
Move WAL sequence code into its own file
- a87987cafca6 19 (unreleased) cited
-
Add ExplainState argument to pg_plan_query() and planner().
- c83ac02ec730 19 (unreleased) cited
-
Don't include access/htup_details.h in executor/tuptable.h
- 1a8b5b11e48a 19 (unreleased) cited
-
Refactor to avoid code duplication in transformPLAssignStmt.
- b0fb2c6aa5a4 19 (unreleased) cited
-
Avoid including commands/dbcommands.h in so many places
- 325fc0ab14d1 19 (unreleased) cited
-
Restrict psql meta-commands in plain-text dumps.
- 71ea0d679543 19 (unreleased) cited
-
Split func.sgml into more manageable pieces
- 4e23c9ef65ac 19 (unreleased) cited
-
Fix squashing algorithm for query texts
- 0f65f3eec478 18.0 cited
-
EXPLAIN: Always use two fractional digits for row counts.
- 95dbd827f2ed 18.0 cited
-
Preliminary refactoring of plpgsql expression construction.
- a654af21ae52 18.0 cited
-
plpgsql: pure parser and reentrant scanner
- 7b27f5fd36cb 18.0 cited
-
Add some sanity checks in executor for query ID reporting
- 24f520594809 18.0 cited
-
Fix misleading error message context
- 4af123ad45bd 18.0 cited
-
Add macros for looping through a List without a ListCell.
- 14dd0f27d7cd 17.0 cited