diff options
| author | Neil Conway <neilc@samurai.com> | 2004-01-07 18:43:36 +0000 |
|---|---|---|
| committer | Neil Conway <neilc@samurai.com> | 2004-01-07 18:43:36 +0000 |
| commit | afca5d50dc296580925b560fff0eb75bb48f0cbe (patch) | |
| tree | 4ed69580d3e35ce53b79ae9a6fd5115ebca11dd5 /src/include/nodes/pg_list.h | |
| parent | 7f5e12a84cfa57e3ae56145297d2971441a42a4c (diff) | |
| download | postgresql-afca5d50dc296580925b560fff0eb75bb48f0cbe.tar.gz | |
Cleanup: move the 'Value' node into a separate file, rather than putting
it in the same file as the 'List' node.
Diffstat (limited to 'src/include/nodes/pg_list.h')
| -rw-r--r-- | src/include/nodes/pg_list.h | 51 |
1 files changed, 2 insertions, 49 deletions
diff --git a/src/include/nodes/pg_list.h b/src/include/nodes/pg_list.h index e9d6db8699..31566a29c9 100644 --- a/src/include/nodes/pg_list.h +++ b/src/include/nodes/pg_list.h @@ -1,13 +1,13 @@ /*------------------------------------------------------------------------- * * pg_list.h - * POSTGRES generic list package + * interface for PostgreSQL generic linked list package * * * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/pg_list.h,v 1.42 2003/11/29 22:41:06 pgsql Exp $ + * $PostgreSQL: pgsql/src/include/nodes/pg_list.h,v 1.43 2004/01/07 18:43:36 neilc Exp $ * *------------------------------------------------------------------------- */ @@ -22,44 +22,6 @@ */ /*---------------------- - * Value node - * - * The same Value struct is used for five node types: T_Integer, - * T_Float, T_String, T_BitString, T_Null. - * - * Integral values are actually represented by a machine integer, - * but both floats and strings are represented as strings. - * Using T_Float as the node type simply indicates that - * the contents of the string look like a valid numeric literal. - * - * (Before Postgres 7.0, we used a double to represent T_Float, - * but that creates loss-of-precision problems when the value is - * ultimately destined to be converted to NUMERIC. Since Value nodes - * are only used in the parsing process, not for runtime data, it's - * better to use the more general representation.) - * - * Note that an integer-looking string will get lexed as T_Float if - * the value is too large to fit in a 'long'. - * - * Nulls, of course, don't need the value part at all. - *---------------------- - */ -typedef struct Value -{ - NodeTag type; /* tag appropriately (eg. T_String) */ - union ValUnion - { - long ival; /* machine integer */ - char *str; /* string */ - } val; -} Value; - -#define intVal(v) (((Value *)(v))->val.ival) -#define floatVal(v) atof(((Value *)(v))->val.str) -#define strVal(v) (((Value *)(v))->val.str) - - -/*---------------------- * List node * * We support three types of lists: @@ -150,15 +112,6 @@ typedef struct FastList #define makeFastList1(fl, x1) \ ( (fl)->head = (fl)->tail = makeList1(x1) ) - -/* - * function prototypes in nodes/list.c - */ -extern Value *makeInteger(long i); -extern Value *makeFloat(char *numericStr); -extern Value *makeString(char *str); -extern Value *makeBitString(char *str); - extern List *lcons(void *datum, List *list); extern List *lconsi(int datum, List *list); extern List *lconso(Oid datum, List *list); |
