1
0
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:
Neil Conway
2004-05-30 23:40:41 +00:00
parent ec0b1f2716
commit 72b6ad6313
83 changed files with 798 additions and 828 deletions

View File

@@ -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")));

View File

@@ -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);
}
}
}

View File

@@ -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++)