diff options
| author | Peter Eisentraut | 2014-09-09 15:34:52 +0000 |
|---|---|---|
| committer | Peter Eisentraut | 2014-09-09 15:34:52 +0000 |
| commit | 57b1085df55d092e2a728043ec607db8fdef2483 (patch) | |
| tree | 4709af218a0c32a4c748ca997accd4d64759c30d /src/test | |
| parent | f0051c1a142ecaff7828b87315c26c7acbf8e583 (diff) | |
Allow empty content in xml type
The xml type previously rejected "content" that is empty or consists
only of spaces. But the SQL/XML standard allows that, so change that.
The accepted values for XML "documents" are not changed.
Reviewed-by: Ali Akbar <the.apaan@gmail.com>
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/xml.out | 28 | ||||
| -rw-r--r-- | src/test/regress/expected/xml_1.out | 16 | ||||
| -rw-r--r-- | src/test/regress/sql/xml.sql | 4 |
3 files changed, 48 insertions, 0 deletions
diff --git a/src/test/regress/expected/xml.out b/src/test/regress/expected/xml.out index 382f9df509..6e6c673dac 100644 --- a/src/test/regress/expected/xml.out +++ b/src/test/regress/expected/xml.out @@ -194,6 +194,18 @@ SELECT xmlelement(name foo, xmlattributes('<>&"''' as funny, xml 'b<a/>r' as fun <foo funny="<>&"'" funnier="b<a/>r"/> (1 row) +SELECT xmlparse(content ''); + xmlparse +---------- + +(1 row) + +SELECT xmlparse(content ' '); + xmlparse +---------- + +(1 row) + SELECT xmlparse(content 'abc'); xmlparse ---------- @@ -251,6 +263,22 @@ SELECT xmlparse(content '<nosuchprefix:tag/>'); <nosuchprefix:tag/> (1 row) +SELECT xmlparse(document ''); +ERROR: invalid XML document +DETAIL: line 1: switching encoding : no input + +^ +line 1: Document is empty + +^ +line 1: Start tag expected, '<' not found + +^ +SELECT xmlparse(document ' '); +ERROR: invalid XML document +DETAIL: line 1: Start tag expected, '<' not found + + ^ SELECT xmlparse(document 'abc'); ERROR: invalid XML document DETAIL: line 1: Start tag expected, '<' not found diff --git a/src/test/regress/expected/xml_1.out b/src/test/regress/expected/xml_1.out index a34d1f41dd..b0e00671e8 100644 --- a/src/test/regress/expected/xml_1.out +++ b/src/test/regress/expected/xml_1.out @@ -164,6 +164,14 @@ SELECT xmlelement(name foo, xmlattributes('<>&"''' as funny, xml 'b<a/>r' as fun ERROR: unsupported XML feature DETAIL: This functionality requires the server to be built with libxml support. HINT: You need to rebuild PostgreSQL using --with-libxml. +SELECT xmlparse(content ''); +ERROR: unsupported XML feature +DETAIL: This functionality requires the server to be built with libxml support. +HINT: You need to rebuild PostgreSQL using --with-libxml. +SELECT xmlparse(content ' '); +ERROR: unsupported XML feature +DETAIL: This functionality requires the server to be built with libxml support. +HINT: You need to rebuild PostgreSQL using --with-libxml. SELECT xmlparse(content 'abc'); ERROR: unsupported XML feature DETAIL: This functionality requires the server to be built with libxml support. @@ -196,6 +204,14 @@ SELECT xmlparse(content '<nosuchprefix:tag/>'); ERROR: unsupported XML feature DETAIL: This functionality requires the server to be built with libxml support. HINT: You need to rebuild PostgreSQL using --with-libxml. +SELECT xmlparse(document ''); +ERROR: unsupported XML feature +DETAIL: This functionality requires the server to be built with libxml support. +HINT: You need to rebuild PostgreSQL using --with-libxml. +SELECT xmlparse(document ' '); +ERROR: unsupported XML feature +DETAIL: This functionality requires the server to be built with libxml support. +HINT: You need to rebuild PostgreSQL using --with-libxml. SELECT xmlparse(document 'abc'); ERROR: unsupported XML feature DETAIL: This functionality requires the server to be built with libxml support. diff --git a/src/test/regress/sql/xml.sql b/src/test/regress/sql/xml.sql index 90d4d67f04..922ab7a604 100644 --- a/src/test/regress/sql/xml.sql +++ b/src/test/regress/sql/xml.sql @@ -60,6 +60,8 @@ SELECT xmlelement(name foo, xmlattributes('infinity'::timestamp as bar)); SELECT xmlelement(name foo, xmlattributes('<>&"''' as funny, xml 'b<a/>r' as funnier)); +SELECT xmlparse(content ''); +SELECT xmlparse(content ' '); SELECT xmlparse(content 'abc'); SELECT xmlparse(content '<abc>x</abc>'); SELECT xmlparse(content '<invalidentity>&</invalidentity>'); @@ -69,6 +71,8 @@ SELECT xmlparse(content '<relativens xmlns=''relative''/>'); SELECT xmlparse(content '<twoerrors>&idontexist;</unbalanced>'); SELECT xmlparse(content '<nosuchprefix:tag/>'); +SELECT xmlparse(document ''); +SELECT xmlparse(document ' '); SELECT xmlparse(document 'abc'); SELECT xmlparse(document '<abc>x</abc>'); SELECT xmlparse(document '<invalidentity>&</abc>'); |
