]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix targetRelation initializiation in prepsecurity
authorStephen Frost <sfrost@snowman.net>
Sun, 1 Mar 2015 20:27:06 +0000 (15:27 -0500)
committerStephen Frost <sfrost@snowman.net>
Sun, 1 Mar 2015 20:27:40 +0000 (15:27 -0500)
In 6f9bd50eabb0a4960e94c83dac8855771c9f340d, we modified
expand_security_quals() to tell expand_security_qual() about when the
current RTE was the targetRelation.  Unfortunately, that commit
initialized the targetRelation variable used outside of the loop over
the RTEs instead of at the start of it.

This patch moves the variable and the initialization of it into the
loop, where it should have been to begin with.

Pointed out by Dean Rasheed.

Back-patch to 9.4 as the original commit was.

src/backend/optimizer/prep/prepsecurity.c

index 5206f9c090549b6ceca4349cc2f488a13c60ceb8..c47b349fd403efa7c13fe80805459a8294c78b95 100644 (file)
@@ -63,7 +63,6 @@ expand_security_quals(PlannerInfo *root, List *tlist)
        Query      *parse = root->parse;
        int                     rt_index;
        ListCell   *cell;
-       bool            targetRelation = false;
 
        /*
         * Process each RTE in the rtable list.
@@ -74,7 +73,8 @@ expand_security_quals(PlannerInfo *root, List *tlist)
        rt_index = 0;
        foreach(cell, parse->rtable)
        {
-               RangeTblEntry *rte = (RangeTblEntry *) lfirst(cell);
+               bool                    targetRelation = false;
+               RangeTblEntry  *rte = (RangeTblEntry *) lfirst(cell);
 
                rt_index++;