Commit 43b55ec4 authored by Alvaro Herrera's avatar Alvaro Herrera

Fix uninitialized memory bug

Have interested callers of find_inheritance_children set the
detached_exist value to false prior to calling it, so that that routine
only has to set it true in the rare cases where it is necessary.  Don't
touch it otherwise.

Per buildfarm member thorntail (which reported a UBSan failure here).
parent 84f15ccd
......@@ -53,7 +53,7 @@ typedef struct SeenRelsEntry
* against possible DROPs of child relations.
*
* If a partition's pg_inherits row is marked "detach pending",
* *detached_exist (if not null) is set true, otherwise it is set false.
* *detached_exist (if not null) is set true.
*
* If omit_detached is true and there is an active snapshot (not the same as
* the catalog snapshot used to scan pg_inherits!) and a pg_inherits tuple
......@@ -84,9 +84,6 @@ find_inheritance_children(Oid parentrelId, bool omit_detached,
if (!has_subclass(parentrelId))
return NIL;
if (detached_exist)
*detached_exist = false;
/*
* Scan pg_inherits and build a working array of subclass OIDs.
*/
......
......@@ -131,6 +131,7 @@ RelationBuildPartitionDesc(Relation rel, bool omit_detached)
* concurrently, whatever this function returns will be accurate as of
* some well-defined point in time.
*/
detached_exist = false;
inhoids = find_inheritance_children(RelationGetRelid(rel), omit_detached,
NoLock, &detached_exist);
nparts = list_length(inhoids);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment