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.
This commit is contained in:
unknown 2006-03-20 14:57:34 +04:00
commit 5f8bd7fe0f
3 changed files with 16 additions and 2 deletions

View file

@ -1561,10 +1561,13 @@ static int my_xpath_parse_AbsoluteLocationPath(MY_XPATH *xpath)
return my_xpath_parse_RelativeLocationPath(xpath);
}
if (my_xpath_parse_term(xpath, MY_XPATH_LEX_EOF))
return 1;
if (my_xpath_parse_RelativeLocationPath(xpath))
return 1;
return 1;
return 0;
}