summaryrefslogtreecommitdiff
path: root/src/include/nodes
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2006-12-21 16:05:16 +0000
committerPeter Eisentraut <peter_e@gmx.net>2006-12-21 16:05:16 +0000
commit8c1de5fb0010ae712568f1706b737270c3609bd8 (patch)
treebc328a654c41ea3eb1a9a27b76fd5215fb698608 /src/include/nodes
parented1e9cd501b4dc89a6a7e5cef702f2f6830ae829 (diff)
downloadpostgresql-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.h18
-rw-r--r--src/include/nodes/nodes.h4
-rw-r--r--src/include/nodes/primnodes.h22
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