aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2017-12-08 11:20:50 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2017-12-08 11:20:58 -0500
commitdd759b96ea8fa41b48541dd321c07d9a947f8de9 (patch)
tree618deaf831f511a878146eae9937aa46cd8ef4c6 /src/backend/utils/adt
parent2d2d06b7e27e3177d5bef0061801c75946871db3 (diff)
downloadpostgresql-dd759b96ea8fa41b48541dd321c07d9a947f8de9.tar.gz
postgresql-dd759b96ea8fa41b48541dd321c07d9a947f8de9.zip
In plpgsql, unify duplicate variables for record and row cases.
plpgsql's function exec_move_row() handles assignment of a composite source value to either a PLpgSQL_rec or PLpgSQL_row target variable. Oddly, rather than taking a single target argument which it could do run-time type detection on, it was coded to take two separate arguments (only one of which is allowed to be non-NULL). This choice had then back-propagated into storing two separate target variables in various plpgsql statement nodes, with lots of duplicative coding and awkward interface logic to support that. Simplify matters by folding those pairs down to single variables, distinguishing the two cases only where we must ... which turns out to be only in exec_move_row itself. This is purely refactoring and should not change any behavior. In passing, remove unused field PLpgSQL_stmt_open.returntype. Discussion: https://postgr.es/m/11787.1512713374@sss.pgh.pa.us
Diffstat (limited to 'src/backend/utils/adt')
0 files changed, 0 insertions, 0 deletions