diff options
| author | Peter Eisentraut <peter_e@gmx.net> | 2007-01-06 19:18:36 +0000 |
|---|---|---|
| committer | Peter Eisentraut <peter_e@gmx.net> | 2007-01-06 19:18:36 +0000 |
| commit | 19749fb0cf16dbb3a3e71b0c387edef907ea5d6b (patch) | |
| tree | 484482fde2fa35eb402ddf82af98be660be70715 /src/test | |
| parent | 063560bb8e1e3658df858266d593a0ee2d053423 (diff) | |
| download | postgresql-19749fb0cf16dbb3a3e71b0c387edef907ea5d6b.tar.gz | |
Replace xmlroot with a properly functioning version that parses the value,
sets the items, and serializes the value back (rather than adding an
arbitrary number of XML preambles as before).
The libxml memory management via palloc had to be disabled because it
crashes when libxml tries to access memory that was helpfully freed
earlier by PostgreSQL. This needs further thought.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/xml.out | 32 | ||||
| -rw-r--r-- | src/test/regress/expected/xml_1.out | 6 | ||||
| -rw-r--r-- | src/test/regress/sql/xml.sql | 3 |
3 files changed, 38 insertions, 3 deletions
diff --git a/src/test/regress/expected/xml.out b/src/test/regress/expected/xml.out index 1474465612..9ebef1404b 100644 --- a/src/test/regress/expected/xml.out +++ b/src/test/regress/expected/xml.out @@ -124,6 +124,30 @@ SELECT xmlpi(name foo, 'bar'); SELECT xmlpi(name foo, 'in?>valid'); ERROR: invalid XML processing instruction DETAIL: XML processing instruction cannot contain "?>". +SELECT xmlroot(xml '<foo/>', version no value, standalone no value); + xmlroot +----------------------- + <?xml version="1.0"?> + <foo/> + +(1 row) + +SELECT xmlroot(xml '<foo/>', version '2.0'); + xmlroot +----------------------- + <?xml version="2.0"?> + <foo/> + +(1 row) + +SELECT xmlroot(xmlroot(xml '<foo/>', version '1.0'), version '1.1', standalone no); + xmlroot +--------------------------------------- + <?xml version="1.1" standalone="no"?> + <foo/> + +(1 row) + SELECT xmlroot ( xmlelement ( name gazonk, @@ -139,9 +163,11 @@ SELECT xmlroot ( version '1.0', standalone yes ); - xmlroot ------------------------------------------------------------------------------------------- - <?xml version="1.0" standalone="yes"?><gazonk name="val" num="2"><qux>foo</qux></gazonk> + xmlroot +---------------------------------------------------- + <?xml version="1.0" standalone="yes"?> + <gazonk name="val" num="2"><qux>foo</qux></gazonk> + (1 row) SELECT xmlserialize(content data as character varying) FROM xmltest; diff --git a/src/test/regress/expected/xml_1.out b/src/test/regress/expected/xml_1.out index 259bccbf4b..662c0e236a 100644 --- a/src/test/regress/expected/xml_1.out +++ b/src/test/regress/expected/xml_1.out @@ -62,6 +62,12 @@ SELECT xmlpi(name foo, 'bar'); ERROR: no XML support in this installation SELECT xmlpi(name foo, 'in?>valid'); ERROR: no XML support in this installation +SELECT xmlroot(xml '<foo/>', version no value, standalone no value); +ERROR: no XML support in this installation +SELECT xmlroot(xml '<foo/>', version '2.0'); +ERROR: no XML support in this installation +SELECT xmlroot(xmlroot(xml '<foo/>', version '1.0'), version '1.1', standalone no); +ERROR: no XML support in this installation SELECT xmlroot ( xmlelement ( name gazonk, diff --git a/src/test/regress/sql/xml.sql b/src/test/regress/sql/xml.sql index 11db4905c7..cf96beab06 100644 --- a/src/test/regress/sql/xml.sql +++ b/src/test/regress/sql/xml.sql @@ -52,6 +52,9 @@ SELECT xmlpi(name xmlstuff); SELECT xmlpi(name foo, 'bar'); SELECT xmlpi(name foo, 'in?>valid'); +SELECT xmlroot(xml '<foo/>', version no value, standalone no value); +SELECT xmlroot(xml '<foo/>', version '2.0'); +SELECT xmlroot(xmlroot(xml '<foo/>', version '1.0'), version '1.1', standalone no); SELECT xmlroot ( xmlelement ( |
