aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2019-01-11 17:12:54 -0500
committerAndrew Dunstan <andrew@dunslane.net>2019-01-11 17:16:43 -0500
commit89d52b9a3e3fab3d6876c997370684a8b1c77f3b (patch)
tree4acfe698bb56050c1959a215120a07147539f475 /src/backend
parent05eb923eae46c1698088d555ae590a73d4fc7070 (diff)
downloadpostgresql-89d52b9a3e3fab3d6876c997370684a8b1c77f3b.tar.gz
postgresql-89d52b9a3e3fab3d6876c997370684a8b1c77f3b.zip
Free pre-modification HeapTuple in ALTER TABLE ... TYPE ...
This was an oversight in commit 3b174b1a3. Per offline gripe from Alvaro Herrera Backpatch to release 11.
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/commands/tablecmds.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 463894faeaa..71b2e3f1340 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -9747,6 +9747,7 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
Datum valuesAtt[Natts_pg_attribute];
bool nullsAtt[Natts_pg_attribute];
bool replacesAtt[Natts_pg_attribute];
+ HeapTuple newTup;
MemSet(valuesAtt, 0, sizeof(valuesAtt));
MemSet(nullsAtt, false, sizeof(nullsAtt));
@@ -9772,8 +9773,10 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
replacesAtt[Anum_pg_attribute_attmissingval - 1] = true;
nullsAtt[Anum_pg_attribute_attmissingval - 1] = false;
- heapTup = heap_modify_tuple(heapTup, RelationGetDescr(attrelation),
- valuesAtt, nullsAtt, replacesAtt);
+ newTup = heap_modify_tuple(heapTup, RelationGetDescr(attrelation),
+ valuesAtt, nullsAtt, replacesAtt);
+ heap_freetuple(heapTup);
+ heapTup = newTup;
attTup = (Form_pg_attribute) GETSTRUCT(heapTup);
}
}