|
|
|
@ -1245,6 +1245,8 @@ addRangeTableEntryForRelation(ParseState *pstate, |
|
|
|
|
RangeTblEntry *rte = makeNode(RangeTblEntry); |
|
|
|
|
char *refname = alias ? alias->aliasname : RelationGetRelationName(rel); |
|
|
|
|
|
|
|
|
|
Assert(pstate != NULL); |
|
|
|
|
|
|
|
|
|
rte->rtekind = RTE_RELATION; |
|
|
|
|
rte->alias = alias; |
|
|
|
|
rte->relid = RelationGetRelid(rel); |
|
|
|
@ -1276,8 +1278,7 @@ addRangeTableEntryForRelation(ParseState *pstate, |
|
|
|
|
* Add completed RTE to pstate's range table list, but not to join list |
|
|
|
|
* nor namespace --- caller must do that if appropriate. |
|
|
|
|
*/ |
|
|
|
|
if (pstate != NULL) |
|
|
|
|
pstate->p_rtable = lappend(pstate->p_rtable, rte); |
|
|
|
|
pstate->p_rtable = lappend(pstate->p_rtable, rte); |
|
|
|
|
|
|
|
|
|
return rte; |
|
|
|
|
} |
|
|
|
@ -1302,6 +1303,8 @@ addRangeTableEntryForSubquery(ParseState *pstate, |
|
|
|
|
int varattno; |
|
|
|
|
ListCell *tlistitem; |
|
|
|
|
|
|
|
|
|
Assert(pstate != NULL); |
|
|
|
|
|
|
|
|
|
rte->rtekind = RTE_SUBQUERY; |
|
|
|
|
rte->relid = InvalidOid; |
|
|
|
|
rte->subquery = subquery; |
|
|
|
@ -1354,8 +1357,7 @@ addRangeTableEntryForSubquery(ParseState *pstate, |
|
|
|
|
* Add completed RTE to pstate's range table list, but not to join list |
|
|
|
|
* nor namespace --- caller must do that if appropriate. |
|
|
|
|
*/ |
|
|
|
|
if (pstate != NULL) |
|
|
|
|
pstate->p_rtable = lappend(pstate->p_rtable, rte); |
|
|
|
|
pstate->p_rtable = lappend(pstate->p_rtable, rte); |
|
|
|
|
|
|
|
|
|
return rte; |
|
|
|
|
} |
|
|
|
@ -1391,6 +1393,8 @@ addRangeTableEntryForFunction(ParseState *pstate, |
|
|
|
|
int natts, |
|
|
|
|
totalatts; |
|
|
|
|
|
|
|
|
|
Assert(pstate != NULL); |
|
|
|
|
|
|
|
|
|
rte->rtekind = RTE_FUNCTION; |
|
|
|
|
rte->relid = InvalidOid; |
|
|
|
|
rte->subquery = NULL; |
|
|
|
@ -1608,8 +1612,7 @@ addRangeTableEntryForFunction(ParseState *pstate, |
|
|
|
|
* Add completed RTE to pstate's range table list, but not to join list |
|
|
|
|
* nor namespace --- caller must do that if appropriate. |
|
|
|
|
*/ |
|
|
|
|
if (pstate != NULL) |
|
|
|
|
pstate->p_rtable = lappend(pstate->p_rtable, rte); |
|
|
|
|
pstate->p_rtable = lappend(pstate->p_rtable, rte); |
|
|
|
|
|
|
|
|
|
return rte; |
|
|
|
|
} |
|
|
|
@ -1633,6 +1636,8 @@ addRangeTableEntryForValues(ParseState *pstate, |
|
|
|
|
int numaliases; |
|
|
|
|
int numcolumns; |
|
|
|
|
|
|
|
|
|
Assert(pstate != NULL); |
|
|
|
|
|
|
|
|
|
rte->rtekind = RTE_VALUES; |
|
|
|
|
rte->relid = InvalidOid; |
|
|
|
|
rte->subquery = NULL; |
|
|
|
@ -1680,8 +1685,7 @@ addRangeTableEntryForValues(ParseState *pstate, |
|
|
|
|
* Add completed RTE to pstate's range table list, but not to join list |
|
|
|
|
* nor namespace --- caller must do that if appropriate. |
|
|
|
|
*/ |
|
|
|
|
if (pstate != NULL) |
|
|
|
|
pstate->p_rtable = lappend(pstate->p_rtable, rte); |
|
|
|
|
pstate->p_rtable = lappend(pstate->p_rtable, rte); |
|
|
|
|
|
|
|
|
|
return rte; |
|
|
|
|
} |
|
|
|
@ -1703,6 +1707,8 @@ addRangeTableEntryForJoin(ParseState *pstate, |
|
|
|
|
Alias *eref; |
|
|
|
|
int numaliases; |
|
|
|
|
|
|
|
|
|
Assert(pstate != NULL); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Fail if join has too many columns --- we must be able to reference any |
|
|
|
|
* of the columns with an AttrNumber. |
|
|
|
@ -1748,8 +1754,7 @@ addRangeTableEntryForJoin(ParseState *pstate, |
|
|
|
|
* Add completed RTE to pstate's range table list, but not to join list |
|
|
|
|
* nor namespace --- caller must do that if appropriate. |
|
|
|
|
*/ |
|
|
|
|
if (pstate != NULL) |
|
|
|
|
pstate->p_rtable = lappend(pstate->p_rtable, rte); |
|
|
|
|
pstate->p_rtable = lappend(pstate->p_rtable, rte); |
|
|
|
|
|
|
|
|
|
return rte; |
|
|
|
|
} |
|
|
|
@ -1774,6 +1779,8 @@ addRangeTableEntryForCTE(ParseState *pstate, |
|
|
|
|
int varattno; |
|
|
|
|
ListCell *lc; |
|
|
|
|
|
|
|
|
|
Assert(pstate != NULL); |
|
|
|
|
|
|
|
|
|
rte->rtekind = RTE_CTE; |
|
|
|
|
rte->ctename = cte->ctename; |
|
|
|
|
rte->ctelevelsup = levelsup; |
|
|
|
@ -1848,8 +1855,7 @@ addRangeTableEntryForCTE(ParseState *pstate, |
|
|
|
|
* Add completed RTE to pstate's range table list, but not to join list |
|
|
|
|
* nor namespace --- caller must do that if appropriate. |
|
|
|
|
*/ |
|
|
|
|
if (pstate != NULL) |
|
|
|
|
pstate->p_rtable = lappend(pstate->p_rtable, rte); |
|
|
|
|
pstate->p_rtable = lappend(pstate->p_rtable, rte); |
|
|
|
|
|
|
|
|
|
return rte; |
|
|
|
|
} |
|
|
|
|