diff options
| author | Peter Eisentraut <peter_e@gmx.net> | 2006-12-21 16:05:16 +0000 |
|---|---|---|
| committer | Peter Eisentraut <peter_e@gmx.net> | 2006-12-21 16:05:16 +0000 |
| commit | 8c1de5fb0010ae712568f1706b737270c3609bd8 (patch) | |
| tree | bc328a654c41ea3eb1a9a27b76fd5215fb698608 /src/include/nodes | |
| parent | ed1e9cd501b4dc89a6a7e5cef702f2f6830ae829 (diff) | |
| download | postgresql-8c1de5fb0010ae712568f1706b737270c3609bd8.tar.gz | |
Initial SQL/XML support: xml data type and initial set of functions.
Diffstat (limited to 'src/include/nodes')
| -rw-r--r-- | src/include/nodes/execnodes.h | 18 | ||||
| -rw-r--r-- | src/include/nodes/nodes.h | 4 | ||||
| -rw-r--r-- | src/include/nodes/primnodes.h | 22 |
3 files changed, 41 insertions, 3 deletions
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index 273d5c3326..1db920aa0c 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.162 2006/12/04 02:06:55 tgl Exp $ + * $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.163 2006/12/21 16:05:16 petere Exp $ * *------------------------------------------------------------------------- */ @@ -724,6 +724,22 @@ typedef struct NullTestState } NullTestState; /* ---------------- + * XmlExprState node + * ---------------- + */ +typedef struct XmlExprState +{ + ExprState xprstate; + XmlExprOp op; + char *name; + List *named_args; + List *args; + Oid *named_args_tcache; + char **named_args_ncache; + Oid arg_typeout; +} XmlExprState; + +/* ---------------- * CoerceToDomainState node * ---------------- */ diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h index c7abfba91a..eb6ba18ada 100644 --- a/src/include/nodes/nodes.h +++ b/src/include/nodes/nodes.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/nodes.h,v 1.188 2006/09/28 20:51:42 tgl Exp $ + * $PostgreSQL: pgsql/src/include/nodes/nodes.h,v 1.189 2006/12/21 16:05:16 petere Exp $ * *------------------------------------------------------------------------- */ @@ -140,6 +140,7 @@ typedef enum NodeTag T_RangeTblRef, T_JoinExpr, T_FromExpr, + T_XmlExpr, /* * TAGS FOR EXPRESSION STATE NODES (execnodes.h) @@ -168,6 +169,7 @@ typedef enum NodeTag T_NullTestState, T_CoerceToDomainState, T_DomainConstraintState, + T_XmlExprState, /* * TAGS FOR PLANNER NODES (relation.h) diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h index 6c5e761275..9654181bc3 100644 --- a/src/include/nodes/primnodes.h +++ b/src/include/nodes/primnodes.h @@ -10,7 +10,7 @@ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/primnodes.h,v 1.118 2006/12/10 22:13:27 tgl Exp $ + * $PostgreSQL: pgsql/src/include/nodes/primnodes.h,v 1.119 2006/12/21 16:05:16 petere Exp $ * *------------------------------------------------------------------------- */ @@ -766,6 +766,26 @@ typedef struct BooleanTest } BooleanTest; /* + * XmlExpr - holder for SQL/XML functions XMLCONCAT, + * XMLELEMENT, XMLFOREST + */ +typedef enum XmlExprOp +{ + IS_XMLCONCAT, + IS_XMLELEMENT, + IS_XMLFOREST, +} XmlExprOp; + +typedef struct XmlExpr +{ + Expr xpr; + XmlExprOp op; /* xml expression type */ + char *name; /* element name */ + List *named_args; + List *args; +} XmlExpr; + +/* * CoerceToDomain * * CoerceToDomain represents the operation of coercing a value to a domain |
