]> granicus.if.org Git - postgresql/commit
Fix assorted syscache lookup sloppiness in partition-related code.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 28 Nov 2017 00:22:08 +0000 (19:22 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 28 Nov 2017 00:22:08 +0000 (19:22 -0500)
commitcb03fa33aeaea4775b9f3437a2240de4ac9cb630
tree788efd10169f8d6669b2f25caaad55dcb6f081a8
parent9a785ad573176b88a93563209980fbe80cd72163
Fix assorted syscache lookup sloppiness in partition-related code.

heap_drop_with_catalog and ATExecDetachPartition neglected to check for
SearchSysCache failures, as noted in bugs #14927 and #14928 from Pan Bian.
Such failures are pretty unlikely, since we should already have some sort
of lock on the rel at these points, but it's neither a good idea nor
per project style to omit a check for failure.

Also, StorePartitionKey contained a syscache lookup that it never did
anything with, including never releasing the result.  Presumably the
reason why we don't see refcount-leak complaints is that the lookup
always fails; but in any case it's pretty useless, so remove it.

All of these errors were evidently introduced by the relation
partitioning feature.  Back-patch to v10 where that came in.

Amit Langote and Tom Lane

Discussion: https://postgr.es/m/20171127090105.1463.3962@wrigleys.postgresql.org
Discussion: https://postgr.es/m/20171127091341.1468.72696@wrigleys.postgresql.org
src/backend/catalog/heap.c
src/backend/commands/tablecmds.c