pgsql: Fix assignment to array of domain over composite. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix assignment to array of domain over composite.
Date
Msg-id E1mctKI-0002c6-Kb@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix assignment to array of domain over composite.

An update such as "UPDATE ... SET fld[n].subfld = whatever"
failed if the array elements were domains rather than plain
composites.  That's because isAssignmentIndirectionExpr()
failed to cope with the CoerceToDomain node that would appear
in the expression tree in this case.  The result would typically
be a crash, and even if we accidentally didn't crash, we'd not
correctly preserve other fields of the same array element.

Per report from Onder Kalaci.  Back-patch to v11 where arrays of
domains came in.

Discussion: https://postgr.es/m/PH0PR21MB132823A46AA36F0685B7A29AD8BD9@PH0PR21MB1328.namprd21.prod.outlook.com

Branch
------
REL_12_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/ae7b1dd5900156c3d58d88bf47532adcb27cca26

Modified Files
--------------
src/backend/executor/execExpr.c      | 19 ++++++++++++++-----
src/test/regress/expected/domain.out | 24 ++++++++++++++++++++++++
src/test/regress/sql/domain.sql      | 17 +++++++++++++++++
3 files changed, 55 insertions(+), 5 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Remove bogus assertion in transformExpressionList().
Next
From: Daniel Gustafsson
Date:
Subject: pgsql: Refactor the sslfiles Makefile target for ease of use