]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Fix assignment to array of domain over composite.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 19 Oct 2021 17:54:46 +0000 (13:54 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 19 Oct 2021 17:54:46 +0000 (13:54 -0400)
commitae7b1dd5900156c3d58d88bf47532adcb27cca26
tree6e0ed14e5c1508085255c3683397ab311ba5206a
parent079ac0192b90e0f1d884c00dd3a3fca2cded50b2
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
src/backend/executor/execExpr.c
src/test/regress/expected/domain.out
src/test/regress/sql/domain.sql