diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2007-02-03 14:06:56 +0000 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2007-02-03 14:06:56 +0000 |
commit | ec020e1ceb94d0ceb3c0eee8c39cd197be7bb3cb (patch) | |
tree | 99f52eea439dd239d8e9a7f04f70f567b88ee798 /src/include/utils/xml.h | |
parent | 25dc46334b99f3161d931a608fb49f6eced42065 (diff) | |
download | postgresql-ec020e1ceb94d0ceb3c0eee8c39cd197be7bb3cb.tar.gz postgresql-ec020e1ceb94d0ceb3c0eee8c39cd197be7bb3cb.zip |
Implement XMLSERIALIZE for real. Analogously, make the xml to text cast
observe the xmloption.
Reorganize the representation of the XML option in the parse tree and the
API to make it easier to manage and understand.
Add regression tests for parsing back XML expressions.
Diffstat (limited to 'src/include/utils/xml.h')
-rw-r--r-- | src/include/utils/xml.h | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/include/utils/xml.h b/src/include/utils/xml.h index f5b33512cfd..f207917ea85 100644 --- a/src/include/utils/xml.h +++ b/src/include/utils/xml.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/utils/xml.h,v 1.13 2007/01/25 11:53:51 petere Exp $ + * $PostgreSQL: pgsql/src/include/utils/xml.h,v 1.14 2007/02/03 14:06:56 petere Exp $ * *------------------------------------------------------------------------- */ @@ -17,10 +17,12 @@ #include "fmgr.h" #include "nodes/execnodes.h" +#include "nodes/primnodes.h" typedef struct varlena xmltype; #define DatumGetXmlP(X) ((xmltype *) PG_DETOAST_DATUM(X)) +#define XmlPGetDatum(X) PointerGetDatum(X) #define PG_GETARG_XML_P(n) DatumGetXmlP(PG_GETARG_DATUM(n)) #define PG_RETURN_XML_P(x) PG_RETURN_POINTER(x) @@ -32,6 +34,7 @@ extern Datum xml_send(PG_FUNCTION_ARGS); extern Datum xmlcomment(PG_FUNCTION_ARGS); extern Datum xmlconcat2(PG_FUNCTION_ARGS); extern Datum texttoxml(PG_FUNCTION_ARGS); +extern Datum xmltotext(PG_FUNCTION_ARGS); extern Datum xmlvalidate(PG_FUNCTION_ARGS); typedef enum @@ -44,10 +47,11 @@ typedef enum extern xmltype *xmlconcat(List *args); extern xmltype *xmlelement(XmlExprState *xmlExpr, ExprContext *econtext); -extern xmltype *xmlparse(text *data, bool is_doc, bool preserve_whitespace); +extern xmltype *xmlparse(text *data, XmlOptionType xmloption, bool preserve_whitespace); extern xmltype *xmlpi(char *target, text *arg, bool arg_is_null, bool *result_is_null); extern xmltype *xmlroot(xmltype *data, text *version, int standalone); extern bool xml_is_document(xmltype *arg); +extern text *xmltotext_with_xmloption(xmltype *data, XmlOptionType xmloption_arg); extern char *map_sql_identifier_to_xml_name(char *ident, bool fully_escaped); extern char *map_xml_name_to_sql_identifier(char *name); @@ -61,12 +65,6 @@ typedef enum extern XmlBinaryType xmlbinary; -typedef enum -{ - XMLOPTION_DOCUMENT, - XMLOPTION_CONTENT -} XmlOptionType; - extern XmlOptionType xmloption; #endif /* XML_H */ |