mirror of
https://github.com/postgres/postgres.git
synced 2025-11-19 13:42:17 +03:00
Fix crash with pg_partition_root
Trying to call the function with the top-most parent of a partition tree was leading to a crash. In this case the correct result is to return the top-most parent itself. Reported-by: Álvaro Herrera Author: Michael Paquier Reviewed-by: Amit Langote Discussion: https://postgr.es/m/20190322032612.GA323@alvherre.pgsql
This commit is contained in:
@@ -189,8 +189,16 @@ pg_partition_root(PG_FUNCTION_ARGS)
|
||||
if (!check_rel_can_be_partition(relid))
|
||||
PG_RETURN_NULL();
|
||||
|
||||
/* Fetch the top-most parent */
|
||||
/* fetch the list of ancestors */
|
||||
ancestors = get_partition_ancestors(relid);
|
||||
|
||||
/*
|
||||
* If the input relation is already the top-most parent, just return
|
||||
* itself.
|
||||
*/
|
||||
if (ancestors == NIL)
|
||||
PG_RETURN_OID(relid);
|
||||
|
||||
rootrelid = llast_oid(ancestors);
|
||||
list_free(ancestors);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user