From ceb233ed1105a0ac6022fc6a4558c2cfaf0d240b Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Mon, 22 Feb 1999 06:08:48 +0000 Subject: [PATCH] more cleanup --- src/backend/nodes/list.c | 77 ++++++++++++++++++++++++++- src/backend/optimizer/path/joinrels.c | 10 ++-- 2 files changed, 80 insertions(+), 7 deletions(-) diff --git a/src/backend/nodes/list.c b/src/backend/nodes/list.c index 4ac40a1c1d..6ab1c1910b 100644 --- a/src/backend/nodes/list.c +++ b/src/backend/nodes/list.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/list.c,v 1.18 1999/02/22 05:26:18 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/list.c,v 1.19 1999/02/22 06:08:47 momjian Exp $ * * NOTES * XXX a few of the following functions are duplicated to handle @@ -29,6 +29,11 @@ #include "utils/elog.h" #include "utils/palloc.h" +/* + * makeList + * + * Take varargs, terminated by -1, and make a List + */ List * makeList(void *elem,...) { @@ -57,6 +62,11 @@ makeList(void *elem,...) return retval; } +/* + * lcons + * + * Add obj to the front of list, or make a new list if 'list' is NIL + */ List * lcons(void *obj, List *list) { @@ -67,6 +77,11 @@ lcons(void *obj, List *list) return l; } +/* + * lconsi + * + * Same as lcons, but for integer data + */ List * lconsi(int datum, List *list) { @@ -77,18 +92,35 @@ lconsi(int datum, List *list) return l; } +/* + * lappend + * + * Add obj to the end of list, or make a new list if 'list' is NIL + * + * MORE EXPENSIVE THAN lcons + */ List * lappend(List *list, void *obj) { return nconc(list, lcons(obj, NIL)); } +/* + * lappendi + * + * Same as lappend, but for integers + */ List * lappendi(List *list, int datum) { return nconc(list, lconsi(datum, NIL)); } +/* + * nconc + * + * Concat l2 on to the end of l1 + */ List * nconc(List *l1, List *l2) { @@ -131,6 +163,9 @@ nreverse(List *list) } #endif +/* + * makeInteger + */ Value * makeInteger(long i) { @@ -141,6 +176,9 @@ makeInteger(long i) return v; } +/* + * makeFloat + */ Value * makeFloat(double d) { @@ -151,6 +189,9 @@ makeFloat(double d) return v; } +/* + * makeString + */ Value * makeString(char *str) { @@ -161,7 +202,11 @@ makeString(char *str) return v; } -/* n starts with 0 */ +/* + * nth + * + * Get the n'th element of the list. First element is 0th. + */ void * nth(int n, List *l) { @@ -174,6 +219,11 @@ nth(int n, List *l) return lfirst(l); } +/* + * nthi + * + * Same as nthi, but for integers + */ int nthi(int n, List *l) { @@ -200,6 +250,11 @@ set_nth(List *l, int n, void *elem) return; } +/* + * length + * + * Get the length of l + */ int length(List *l) { @@ -213,6 +268,11 @@ length(List *l) return i; } +/* + * freeList + * + * Free the List nodes of a list + */ void freeList(List *list) { @@ -415,6 +475,9 @@ lremove(void *elem, List *list) return result; } +/* + * LispRemove + */ List * LispRemove(void *elem, List *list) { @@ -466,6 +529,11 @@ intLispRemove(int elem, List *list) #endif +/* + * set_difference + * + * Return l1 without the elements in l2. + */ List * set_difference(List *l1, List *l2) { @@ -483,6 +551,11 @@ set_difference(List *l1, List *l2) return result; } +/* + * set_differencei + * + * Same as set_difference, but for integers + */ List * set_differencei(List *l1, List *l2) { diff --git a/src/backend/optimizer/path/joinrels.c b/src/backend/optimizer/path/joinrels.c index 208aacb205..a4e08ca649 100644 --- a/src/backend/optimizer/path/joinrels.c +++ b/src/backend/optimizer/path/joinrels.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.31 1999/02/22 05:26:20 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.32 1999/02/22 06:08:48 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -61,7 +61,7 @@ make_rels_by_joins(Query *root, List *old_rels) */ joined_rels = make_rels_by_clauseless_joins(old_rel, root->base_rel_list); - joined_rels = append(joined_rels, + joined_rels = nconc(joined_rels, make_rels_by_clauseless_joins(old_rel, old_rels)); } @@ -236,10 +236,10 @@ make_join_rel(RelOptInfo *outer_rel, RelOptInfo *inner_rel, JoinInfo *joininfo) joinrel->restrictinfo = joininfo->jinfo_restrictinfo; joinrel_joininfo_list = new_joininfo_list( - append(outer_rel->joininfo, - inner_rel->joininfo), + nconc(copyObject(outer_rel->joininfo), + copyObject(inner_rel->joininfo)), nconc(listCopy(outer_rel->relids), - listCopy(inner_rel->relids))); + listCopy(inner_rel->relids))); joinrel->joininfo = joinrel_joininfo_list;