diff options
author | unknown <bar@mysql.com> | 2006-04-17 14:40:25 +0500 |
---|---|---|
committer | unknown <bar@mysql.com> | 2006-04-17 14:40:25 +0500 |
commit | 3010775ed19b6fbbbc2837e5ed8b377266c5533a (patch) | |
tree | ad61da58fe13bee1f57a91497b08bc491cec4c3d /mysql-test/t/xml.test | |
parent | 3ef014862b0a8c374e10c6dd43bd90634bc1ba23 (diff) | |
download | mariadb-git-3010775ed19b6fbbbc2837e5ed8b377266c5533a.tar.gz |
Bug#18201: XML: ExtractValue works even if the xml
fragment is not well-formed xml
Problem:
- ExtractValue silently returned NULL if a wrong XML value is passed.
- In some cases "unexpected END-OF-INPUT" error was not detected, and
a non-NULL result could be returned for a bad XML value.
Fix:
- Adding warning messages, to make user aware why NULL was returned.
- Missing "unexpected END-OF-INPUT" error is reported now.
mysql-test/r/xml.result:
- Fixing XML systax error in old test
- Adding test cases.
mysql-test/t/xml.test:
- Fixing XML systax error in old test
- Adding test cases.
sql/item_xmlfunc.cc:
Produce warning in case of XML systax error,
instead of silentrly returning NULL.
strings/xml.c:
- Making error messages better looking and clearer:
It is important because now they're seen in SHOW WARNINGS
(previously they were used only for debugging purposes).
- Adding "unexpected END-OF-INPUT" error if after scanning
closing tag for the root element some input is left
(previously this error was ignored in a mistake).
Diffstat (limited to 'mysql-test/t/xml.test')
-rw-r--r-- | mysql-test/t/xml.test | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/mysql-test/t/xml.test b/mysql-test/t/xml.test index 8ed623883b6..af509a2f45e 100644 --- a/mysql-test/t/xml.test +++ b/mysql-test/t/xml.test @@ -53,7 +53,7 @@ SELECT extractValue(@xml,'/a//@x'); SELECT extractValue(@xml,'/a//@x[1]'); SELECT extractValue(@xml,'/a//@x[2]'); -SET @xml='<a><b>b1</b><b>b2</b><c><b>c1b1</b><b>c1b2</b></c><c><b>c2b1</c></b>/a>'; +SET @xml='<a><b>b1</b><b>b2</b><c><b>c1b1</b><b>c1b2</b></c><c><b>c2b1</c></b></a>'; SELECT extractValue(@xml,'//b[1]'); SELECT extractValue(@xml,'/descendant::b[1]'); @@ -285,6 +285,17 @@ select extractvalue('<a>Jack</a>' collate latin1_bin,'/a[contains(../a,"j")]'); select ExtractValue('<tag1><![CDATA[test]]></tag1>','/tag1'); # +# Bug#18201: XML: ExtractValue works even if the xml fragment +# is not well-formed xml +# +select extractValue('<a>a','/a'); +select extractValue('<a>a<','/a'); +select extractValue('<a>a</','/a'); +select extractValue('<a>a</a','/a'); +select extractValue('<a>a</a></b>','/a'); +select extractValue('<a b=>a</a>','/a'); + +# # Bug #18171 XML: ExtractValue: the XPath position() # function crashes the server! # |