* Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.311 2004/08/29 05:06:44 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.312 2004/09/27 04:12:02 neilc Exp $
*
*-------------------------------------------------------------------------
*/
static void
applyColumnNames(List *dst, List *src)
{
- ListCell *dst_item = list_head(dst);
- ListCell *src_item = list_head(src);
+ ListCell *dst_item;
+ ListCell *src_item;
if (list_length(src) > list_length(dst))
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("CREATE TABLE AS specifies too many column names")));
- while (src_item != NULL && dst_item != NULL)
+ forboth(dst_item, dst, src_item, src)
{
TargetEntry *d = (TargetEntry *) lfirst(dst_item);
ColumnDef *s = (ColumnDef *) lfirst(src_item);
Assert(d->resdom && !d->resdom->resjunk);
-
d->resdom->resname = pstrdup(s->colname);
-
- dst_item = lnext(dst_item);
- src_item = lnext(src_item);
}
}
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/cache/catcache.c,v 1.116 2004/08/29 05:06:50 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/cache/catcache.c,v 1.117 2004/09/27 04:12:02 neilc Exp $
*
*-------------------------------------------------------------------------
*/
* worth fixing.
*/
ct->refcount++;
- ctlist = lcons(ct, ctlist);
+ ctlist = lappend(ctlist, ct);
nmembers++;
}
cl->cl_magic = CL_MAGIC;
cl->my_cache = cache;
- DLInitElem(&cl->cache_elem, (void *) cl);
+ DLInitElem(&cl->cache_elem, cl);
cl->refcount = 0; /* for the moment */
cl->dead = false;
cl->ordered = ordered;
cl->nkeys = nkeys;
cl->hash_value = lHashValue;
cl->n_members = nmembers;
- /* The list is backwards because we built it with lcons */
+
+ Assert(nmembers == list_length(ctlist));
ctlist_item = list_head(ctlist);
- for (i = nmembers; --i >= 0;)
+ for (i = 0; i < nmembers; i++)
{
cl->members[i] = ct = (CatCTup *) lfirst(ctlist_item);
Assert(ct->c_list == NULL);
* Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/nodes/pg_list.h,v 1.49 2004/08/29 05:06:57 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/pg_list.h,v 1.50 2004/09/27 04:12:03 neilc Exp $
*
*-------------------------------------------------------------------------
*/
* a convenience macro which loops through a list starting from a
* specified cell
*/
-#define for_each_cell(cell, l) \
- for ((cell) = (l); (cell) != NULL; (cell) = lnext(cell))
+#define for_each_cell(cell, initcell) \
+ for ((cell) = (initcell); (cell) != NULL; (cell) = lnext(cell))
/*
* forboth -