mirror of https://github.com/citusdata/citus.git
permindex fixes
parent
780d8855de
commit
9785dd1a87
|
@ -278,6 +278,9 @@ WrapRteRelationIntoSubquery(RangeTblEntry *rteRelation, List *requiredAttributes
|
||||||
RangeTblEntry *newRangeTableEntry = copyObject(rteRelation);
|
RangeTblEntry *newRangeTableEntry = copyObject(rteRelation);
|
||||||
subquery->rtable = list_make1(newRangeTableEntry);
|
subquery->rtable = list_make1(newRangeTableEntry);
|
||||||
|
|
||||||
|
addRTEPermissionInfo(&subquery->rteperminfos, newRangeTableEntry);
|
||||||
|
|
||||||
|
|
||||||
/* set the FROM expression to the subquery */
|
/* set the FROM expression to the subquery */
|
||||||
newRangeTableRef = makeNode(RangeTblRef);
|
newRangeTableRef = makeNode(RangeTblRef);
|
||||||
newRangeTableRef->rtindex = SINGLE_RTE_INDEX;
|
newRangeTableRef->rtindex = SINGLE_RTE_INDEX;
|
||||||
|
|
|
@ -1736,7 +1736,7 @@ NodeContainsSubqueryReferencingOuterQuery(Node *node)
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
#include "parser/parse_relation.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ReplaceRTERelationWithRteSubquery replaces the input rte relation target entry
|
* ReplaceRTERelationWithRteSubquery replaces the input rte relation target entry
|
||||||
|
@ -1755,6 +1755,8 @@ ReplaceRTERelationWithRteSubquery(RangeTblEntry *rangeTableEntry,
|
||||||
RecursivePlanningContext *context)
|
RecursivePlanningContext *context)
|
||||||
{
|
{
|
||||||
Query *subquery = WrapRteRelationIntoSubquery(rangeTableEntry, requiredAttrNumbers);
|
Query *subquery = WrapRteRelationIntoSubquery(rangeTableEntry, requiredAttrNumbers);
|
||||||
|
|
||||||
|
|
||||||
List *outerQueryTargetList = CreateAllTargetListForRelation(rangeTableEntry->relid,
|
List *outerQueryTargetList = CreateAllTargetListForRelation(rangeTableEntry->relid,
|
||||||
requiredAttrNumbers);
|
requiredAttrNumbers);
|
||||||
|
|
||||||
|
@ -1851,6 +1853,9 @@ CreateOuterSubquery(RangeTblEntry *rangeTableEntry, List *outerSubqueryTargetLis
|
||||||
innerSubqueryRTE->eref->colnames = innerSubqueryColNames;
|
innerSubqueryRTE->eref->colnames = innerSubqueryColNames;
|
||||||
outerSubquery->rtable = list_make1(innerSubqueryRTE);
|
outerSubquery->rtable = list_make1(innerSubqueryRTE);
|
||||||
|
|
||||||
|
addRTEPermissionInfo(&outerSubquery->rteperminfos, innerSubqueryRTE);
|
||||||
|
|
||||||
|
|
||||||
/* set the FROM expression to the subquery */
|
/* set the FROM expression to the subquery */
|
||||||
RangeTblRef *newRangeTableRef = makeNode(RangeTblRef);
|
RangeTblRef *newRangeTableRef = makeNode(RangeTblRef);
|
||||||
newRangeTableRef->rtindex = 1;
|
newRangeTableRef->rtindex = 1;
|
||||||
|
@ -2396,6 +2401,9 @@ BuildReadIntermediateResultsQuery(List *targetEntryList, List *columnAliasList,
|
||||||
resultQuery->jointree = joinTree;
|
resultQuery->jointree = joinTree;
|
||||||
resultQuery->targetList = targetList;
|
resultQuery->targetList = targetList;
|
||||||
|
|
||||||
|
addRTEPermissionInfo(&resultQuery->rteperminfos, rangeTableEntry);
|
||||||
|
|
||||||
|
|
||||||
return resultQuery;
|
return resultQuery;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue