mirror of
https://github.com/postgres/postgres.git
synced 2025-06-22 02:52:08 +03:00
Add check for syscache lookup failure in update_relispartition().
Omitted in commit05b38c7e6
(though it looks like the original blame belongs to9e9befac4
). A failure is admittedly unlikely, but if it did happen, SIGSEGV is not the approved method of reporting it. Per Coverity. Back-patch to v11 where the broken code originated.
This commit is contained in:
@ -3451,10 +3451,11 @@ update_relispartition(Oid relationId, bool newval)
|
||||
|
||||
classRel = table_open(RelationRelationId, RowExclusiveLock);
|
||||
tup = SearchSysCacheCopy1(RELOID, ObjectIdGetDatum(relationId));
|
||||
if (!HeapTupleIsValid(tup))
|
||||
elog(ERROR, "cache lookup failed for relation %u", relationId);
|
||||
Assert(((Form_pg_class) GETSTRUCT(tup))->relispartition != newval);
|
||||
((Form_pg_class) GETSTRUCT(tup))->relispartition = newval;
|
||||
CatalogTupleUpdate(classRel, &tup->t_self, tup);
|
||||
heap_freetuple(tup);
|
||||
|
||||
table_close(classRel, RowExclusiveLock);
|
||||
}
|
||||
|
Reference in New Issue
Block a user