From 5f8bd7fe0f4ecc534b24f1e13276b7200ec14bd2 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 20 Mar 2006 14:57:34 +0400 Subject: Bug #18172 XML: Extractvalue() accepts mallformed XPath without a XPath syntax error item_xmlfunc.cc: Error message didn't happen because after a failing attempt to parse RelativeLocationPath, my_xpath_parse_AbsoluteLocationPath() returned success. Changeing logic a bit: - Try to parse EOF first, return success if true. - Then try to parse RelativeLocationPath(), return success if true. - Otherwise return failure. xml.result: Adding test case. Also, this change made it possible to generate an error message earlier in the case of another bad XPATH syntax. xml.test: Adding test case. sql/item_xmlfunc.cc: Bug #18172 XML: Extractvalue() accepts mallformed XPath without a XPath syntax error Error message didn't happen because after a failing attempt to parse RelativeLocationPath(), my_xpath_parse_AbsoluteLocationPath() returned with 1. Changeing logic a bit: check for EOF first. Then try to parse RelativeLocationPath(). If the latter fails, return failure. mysql-test/t/xml.test: Adding test case. mysql-test/r/xml.result: Adding test case. Also, this change makes error message to be generated earlier in the case of another bad XPATH syntax. --- mysql-test/t/xml.test | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'mysql-test/t/xml.test') diff --git a/mysql-test/t/xml.test b/mysql-test/t/xml.test index ae1c9cf3b6b..af3ec2d827e 100644 --- a/mysql-test/t/xml.test +++ b/mysql-test/t/xml.test @@ -286,3 +286,12 @@ select extractvalue('Jack' collate latin1_bin,'/a[contains(../a,"j")]'); select extractValue('1','position()'); --error 1105 select extractValue('1','last()'); + + +# +# Bug #18172 XML: Extractvalue() accepts mallformed +# XPath without a XPath syntax error +# +--error 1105 +select extractValue('1','/e/'); + -- cgit v1.2.1