diff options
author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2018-07-30 17:03:19 -0400 |
---|---|---|
committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2018-07-30 18:43:30 -0400 |
commit | a0655ba68fb54a011b1c57901ad66764b1e5473f (patch) | |
tree | 320f7fe5ca8a5f0bfa6e2cec9603e11622690700 /src/backend/executor/nodeAppend.c | |
parent | 192d1bbf99699de76473184c57fff9ff4b4246f4 (diff) | |
download | postgresql-a0655ba68fb54a011b1c57901ad66764b1e5473f.tar.gz postgresql-a0655ba68fb54a011b1c57901ad66764b1e5473f.zip |
Verify range bounds to bms_add_range when necessary
Now that the bms_add_range boundary protections are gone, some
alternative ones are needed in a few places.
Author: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
Discussion: https://postgr.es/m/3437ccf8-a144-55ff-1e2f-fc16b437823b@lab.ntt.co.jp
Diffstat (limited to 'src/backend/executor/nodeAppend.c')
-rw-r--r-- | src/backend/executor/nodeAppend.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/backend/executor/nodeAppend.c b/src/backend/executor/nodeAppend.c index 5ce4fb43e1a..86a68d30201 100644 --- a/src/backend/executor/nodeAppend.c +++ b/src/backend/executor/nodeAppend.c @@ -171,6 +171,7 @@ ExecInitAppend(Append *node, EState *estate, int eflags) { /* We'll need to initialize all subplans */ nplans = list_length(node->appendplans); + Assert(nplans > 0); validsubplans = bms_add_range(NULL, 0, nplans - 1); } @@ -179,7 +180,10 @@ ExecInitAppend(Append *node, EState *estate, int eflags) * immediately, preventing later calls to ExecFindMatchingSubPlans. */ if (!prunestate->do_exec_prune) + { + Assert(nplans > 0); appendstate->as_valid_subplans = bms_add_range(NULL, 0, nplans - 1); + } } else { @@ -189,6 +193,7 @@ ExecInitAppend(Append *node, EState *estate, int eflags) * When run-time partition pruning is not enabled we can just mark all * subplans as valid; they must also all be initialized. */ + Assert(nplans > 0); appendstate->as_valid_subplans = validsubplans = bms_add_range(NULL, 0, nplans - 1); appendstate->as_prune_state = NULL; |