*
*
* 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
#include "utils/elog.h"
#include "utils/palloc.h"
+/*
+ * makeList
+ *
+ * Take varargs, terminated by -1, and make a List
+ */
List *
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)
{
return l;
}
+/*
+ * lconsi
+ *
+ * Same as lcons, but for integer data
+ */
List *
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)
{
}
#endif
+/*
+ * makeInteger
+ */
Value *
makeInteger(long i)
{
return v;
}
+/*
+ * makeFloat
+ */
Value *
makeFloat(double d)
{
return v;
}
+/*
+ * makeString
+ */
Value *
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)
{
return lfirst(l);
}
+/*
+ * nthi
+ *
+ * Same as nthi, but for integers
+ */
int
nthi(int n, List *l)
{
return;
}
+/*
+ * length
+ *
+ * Get the length of l
+ */
int
length(List *l)
{
return i;
}
+/*
+ * freeList
+ *
+ * Free the List nodes of a list
+ */
void
freeList(List *list)
{
return result;
}
+/*
+ * LispRemove
+ */
List *
LispRemove(void *elem, List *list)
{
#endif
+/*
+ * set_difference
+ *
+ * Return l1 without the elements in l2.
+ */
List *
set_difference(List *l1, List *l2)
{
return result;
}
+/*
+ * set_differencei
+ *
+ * Same as set_difference, but for integers
+ */
List *
set_differencei(List *l1, List *l2)
{
*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
*/
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));
}
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;