List **res_colnames, List **res_colvars,
ParseNamespaceColumn *res_nscolumns);
static Node *transformJoinUsingClause(ParseState *pstate,
- RangeTblEntry *leftRTE, RangeTblEntry *rightRTE,
List *leftVars, List *rightVars);
static Node *transformJoinOnClause(ParseState *pstate, JoinExpr *j,
List *namespace);
*/
static Node *
transformJoinUsingClause(ParseState *pstate,
- RangeTblEntry *leftRTE, RangeTblEntry *rightRTE,
List *leftVars, List *rightVars)
{
Node *result;
A_Expr *e;
/* Require read access to the join variables */
- markVarForSelectPriv(pstate, lvar, leftRTE);
- markVarForSelectPriv(pstate, rvar, rightRTE);
+ markVarForSelectPriv(pstate, lvar);
+ markVarForSelectPriv(pstate, rvar);
/* Now create the lvar = rvar join condition */
e = makeSimpleA_Expr(AEXPR_OP, "=",
}
j->quals = transformJoinUsingClause(pstate,
- l_nsitem->p_rte,
- r_nsitem->p_rte,
l_usingvars,
r_usingvars);
}
result->location = location;
/* mark relation as requiring whole-row SELECT access */
- markVarForSelectPriv(pstate, result, nsitem->p_rte);
+ markVarForSelectPriv(pstate, result);
return (Node *) result;
}
var->location = location;
/* Require read access to the column */
- markVarForSelectPriv(pstate, var, rte);
+ markVarForSelectPriv(pstate, var);
return (Node *) var;
}
* markVarForSelectPriv
* Mark the RTE referenced by the Var as requiring SELECT privilege
* for the Var's column (the Var could be a whole-row Var, too)
- *
- * The rte argument is unused and will be removed later.
*/
void
-markVarForSelectPriv(ParseState *pstate, Var *var, RangeTblEntry *rte)
+markVarForSelectPriv(ParseState *pstate, Var *var)
{
Index lv;
te_list = lappend(te_list, te);
/* Require read access to each column */
- markVarForSelectPriv(pstate, varnode, rte);
+ markVarForSelectPriv(pstate, varnode);
}
Assert(name == NULL && var == NULL); /* lists not the same length? */
{
Var *var = (Var *) lfirst(l);
- markVarForSelectPriv(pstate, var, rte);
+ markVarForSelectPriv(pstate, var);
}
return vars;
int location);
extern Node *colNameToVar(ParseState *pstate, const char *colname, bool localonly,
int location);
-extern void markVarForSelectPriv(ParseState *pstate, Var *var,
- RangeTblEntry *rte);
+extern void markVarForSelectPriv(ParseState *pstate, Var *var);
extern Relation parserOpenTable(ParseState *pstate, const RangeVar *relation,
int lockmode);
extern ParseNamespaceItem *addRangeTableEntry(ParseState *pstate,