mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
Use the new List API function names throughout the backend, and disable the
list compatibility API by default. While doing this, I decided to keep the llast() macro around and introduce llast_int() and llast_oid() variants.
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/rewrite/rewriteDefine.c,v 1.95 2004/05/26 04:41:33 neilc Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/rewrite/rewriteDefine.c,v 1.96 2004/05/30 23:40:35 neilc Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -251,7 +251,7 @@ DefineQueryRewrite(RuleStmt *stmt)
|
||||
/*
|
||||
* So there cannot be INSTEAD NOTHING, ...
|
||||
*/
|
||||
if (length(action) == 0)
|
||||
if (list_length(action) == 0)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||
errmsg("INSTEAD NOTHING rules on SELECT are not implemented"),
|
||||
@@ -260,7 +260,7 @@ DefineQueryRewrite(RuleStmt *stmt)
|
||||
/*
|
||||
* ... there cannot be multiple actions, ...
|
||||
*/
|
||||
if (length(action) > 1)
|
||||
if (list_length(action) > 1)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||
errmsg("multiple actions for rules on SELECT are not implemented")));
|
||||
|
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/rewrite/rewriteHandler.c,v 1.137 2004/05/29 05:55:13 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/rewrite/rewriteHandler.c,v 1.138 2004/05/30 23:40:35 neilc Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -82,7 +82,7 @@ rewriteRuleAction(Query *parsetree,
|
||||
rule_qual = (Node *) copyObject(rule_qual);
|
||||
|
||||
current_varno = rt_index;
|
||||
rt_length = length(parsetree->rtable);
|
||||
rt_length = list_length(parsetree->rtable);
|
||||
new_varno = PRS2_NEW_VARNO + rt_length;
|
||||
|
||||
/*
|
||||
@@ -131,7 +131,7 @@ rewriteRuleAction(Query *parsetree,
|
||||
* that rule action's rtable is separate and shares no substructure
|
||||
* with the main rtable. Hence do a deep copy here.
|
||||
*/
|
||||
sub_action->rtable = nconc((List *) copyObject(parsetree->rtable),
|
||||
sub_action->rtable = list_concat((List *) copyObject(parsetree->rtable),
|
||||
sub_action->rtable);
|
||||
|
||||
/*
|
||||
@@ -174,7 +174,7 @@ rewriteRuleAction(Query *parsetree,
|
||||
errmsg("conditional UNION/INTERSECT/EXCEPT statements are not implemented")));
|
||||
|
||||
sub_action->jointree->fromlist =
|
||||
nconc(newjointree, sub_action->jointree->fromlist);
|
||||
list_concat(newjointree, sub_action->jointree->fromlist);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -249,8 +249,8 @@ adjustJoinTreeList(Query *parsetree, bool removert, int rt_index)
|
||||
if (IsA(rtr, RangeTblRef) &&
|
||||
rtr->rtindex == rt_index)
|
||||
{
|
||||
newjointree = lremove(rtr, newjointree);
|
||||
/* foreach is safe because we exit loop after lremove... */
|
||||
newjointree = list_delete_ptr(newjointree, rtr);
|
||||
/* foreach is safe because we exit loop after list_delete... */
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -616,7 +616,7 @@ ApplyRetrieveRule(Query *parsetree,
|
||||
RangeTblEntry *rte,
|
||||
*subrte;
|
||||
|
||||
if (length(rule->actions) != 1)
|
||||
if (list_length(rule->actions) != 1)
|
||||
elog(ERROR, "expected just one rule action");
|
||||
if (rule->qual != NULL)
|
||||
elog(ERROR, "cannot handle qualified ON SELECT rule");
|
||||
@@ -657,14 +657,14 @@ ApplyRetrieveRule(Query *parsetree,
|
||||
/*
|
||||
* FOR UPDATE of view?
|
||||
*/
|
||||
if (intMember(rt_index, parsetree->rowMarks))
|
||||
if (list_member_int(parsetree->rowMarks, rt_index))
|
||||
{
|
||||
/*
|
||||
* Remove the view from the list of rels that will actually be
|
||||
* marked FOR UPDATE by the executor. It will still be access-
|
||||
* checked for write access, though.
|
||||
*/
|
||||
parsetree->rowMarks = lremovei(rt_index, parsetree->rowMarks);
|
||||
parsetree->rowMarks = list_delete_int(parsetree->rowMarks, rt_index);
|
||||
|
||||
/*
|
||||
* Set up the view's referenced tables as if FOR UPDATE.
|
||||
@@ -702,8 +702,8 @@ markQueryForUpdate(Query *qry, bool skipOldNew)
|
||||
|
||||
if (rte->rtekind == RTE_RELATION)
|
||||
{
|
||||
if (!intMember(rti, qry->rowMarks))
|
||||
qry->rowMarks = lappendi(qry->rowMarks, rti);
|
||||
if (!list_member_int(qry->rowMarks, rti))
|
||||
qry->rowMarks = lappend_int(qry->rowMarks, rti);
|
||||
rte->requiredPerms |= ACL_SELECT_FOR_UPDATE;
|
||||
}
|
||||
else if (rte->rtekind == RTE_SUBQUERY)
|
||||
@@ -766,7 +766,7 @@ fireRIRrules(Query *parsetree, List *activeRIRs)
|
||||
* can get changed each time through...
|
||||
*/
|
||||
rt_index = 0;
|
||||
while (rt_index < length(parsetree->rtable))
|
||||
while (rt_index < list_length(parsetree->rtable))
|
||||
{
|
||||
RangeTblEntry *rte;
|
||||
Relation rel;
|
||||
@@ -825,7 +825,7 @@ fireRIRrules(Query *parsetree, List *activeRIRs)
|
||||
*/
|
||||
if (rt_index == parsetree->resultRelation)
|
||||
lockmode = NoLock;
|
||||
else if (intMember(rt_index, parsetree->rowMarks))
|
||||
else if (list_member_int(parsetree->rowMarks, rt_index))
|
||||
lockmode = RowShareLock;
|
||||
else
|
||||
lockmode = AccessShareLock;
|
||||
@@ -866,12 +866,12 @@ fireRIRrules(Query *parsetree, List *activeRIRs)
|
||||
{
|
||||
ListCell *l;
|
||||
|
||||
if (oidMember(RelationGetRelid(rel), activeRIRs))
|
||||
if (list_member_oid(activeRIRs, RelationGetRelid(rel)))
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
|
||||
errmsg("infinite recursion detected in rules for relation \"%s\"",
|
||||
RelationGetRelationName(rel))));
|
||||
activeRIRs = lconso(RelationGetRelid(rel), activeRIRs);
|
||||
activeRIRs = lcons_oid(RelationGetRelid(rel), activeRIRs);
|
||||
|
||||
foreach(l, locks)
|
||||
{
|
||||
@@ -1169,7 +1169,7 @@ RewriteQuery(Query *parsetree, List *rewrite_events)
|
||||
List *newstuff;
|
||||
|
||||
newstuff = RewriteQuery(pt, rewrite_events);
|
||||
rewritten = nconc(rewritten, newstuff);
|
||||
rewritten = list_concat(rewritten, newstuff);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/rewrite/rewriteManip.c,v 1.83 2004/05/26 04:41:33 neilc Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/rewrite/rewriteManip.c,v 1.84 2004/05/30 23:40:35 neilc Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -231,7 +231,7 @@ OffsetVarNodes(Node *node, int offset, int sublevels_up)
|
||||
if (qry->resultRelation)
|
||||
qry->resultRelation += offset;
|
||||
foreach(l, qry->rowMarks)
|
||||
lfirsti(l) += offset;
|
||||
lfirst_int(l) += offset;
|
||||
}
|
||||
query_tree_walker(qry, OffsetVarNodes_walker,
|
||||
(void *) &context, 0);
|
||||
@@ -373,8 +373,8 @@ ChangeVarNodes(Node *node, int rt_index, int new_index, int sublevels_up)
|
||||
qry->resultRelation = new_index;
|
||||
foreach(l, qry->rowMarks)
|
||||
{
|
||||
if (lfirsti(l) == rt_index)
|
||||
lfirsti(l) = new_index;
|
||||
if (lfirst_int(l) == rt_index)
|
||||
lfirst_int(l) = new_index;
|
||||
}
|
||||
}
|
||||
query_tree_walker(qry, ChangeVarNodes_walker,
|
||||
@@ -671,14 +671,14 @@ getInsertSelectQuery(Query *parsetree, Query ***subquery_ptr)
|
||||
* query. If they're not there, it must be an INSERT/SELECT in which
|
||||
* they've been pushed down to the SELECT.
|
||||
*/
|
||||
if (length(parsetree->rtable) >= 2 &&
|
||||
if (list_length(parsetree->rtable) >= 2 &&
|
||||
strcmp(rt_fetch(PRS2_OLD_VARNO, parsetree->rtable)->eref->aliasname,
|
||||
"*OLD*") == 0 &&
|
||||
strcmp(rt_fetch(PRS2_NEW_VARNO, parsetree->rtable)->eref->aliasname,
|
||||
"*NEW*") == 0)
|
||||
return parsetree;
|
||||
Assert(parsetree->jointree && IsA(parsetree->jointree, FromExpr));
|
||||
if (length(parsetree->jointree->fromlist) != 1)
|
||||
if (list_length(parsetree->jointree->fromlist) != 1)
|
||||
elog(ERROR, "expected to find SELECT subquery");
|
||||
rtr = (RangeTblRef *) linitial(parsetree->jointree->fromlist);
|
||||
Assert(IsA(rtr, RangeTblRef));
|
||||
@@ -687,7 +687,7 @@ getInsertSelectQuery(Query *parsetree, Query ***subquery_ptr)
|
||||
if (!(selectquery && IsA(selectquery, Query) &&
|
||||
selectquery->commandType == CMD_SELECT))
|
||||
elog(ERROR, "expected to find SELECT subquery");
|
||||
if (length(selectquery->rtable) >= 2 &&
|
||||
if (list_length(selectquery->rtable) >= 2 &&
|
||||
strcmp(rt_fetch(PRS2_OLD_VARNO, selectquery->rtable)->eref->aliasname,
|
||||
"*OLD*") == 0 &&
|
||||
strcmp(rt_fetch(PRS2_NEW_VARNO, selectquery->rtable)->eref->aliasname,
|
||||
@@ -933,7 +933,7 @@ ResolveNew_mutator(Node *node, ResolveNew_context *context)
|
||||
RangeTblEntry *rte = context->target_rte;
|
||||
RowExpr *rowexpr;
|
||||
List *fields = NIL;
|
||||
AttrNumber nfields = length(rte->eref->colnames);
|
||||
AttrNumber nfields = list_length(rte->eref->colnames);
|
||||
AttrNumber nf;
|
||||
|
||||
for (nf = 1; nf <= nfields; nf++)
|
||||
|
Reference in New Issue
Block a user