mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#16233: XML: ExtractValue() fails with special characters
ExtractValue didn't understand tag and attribute names consisting of "tricky" national letters (e.g. latin accenter letters). It happened because XPath lex parser recognized only basic latin letter a..z ad a part of an identifier. Fixed to recognize all letters by means of new "full ctype" which was added recently.
This commit is contained in:
@ -615,3 +615,26 @@ select extractValue('<e>1</e>','last()');
|
||||
ERROR HY000: XPATH syntax error: ''
|
||||
select extractValue('<e><a>1</a></e>','/e/');
|
||||
ERROR HY000: XPATH syntax error: ''
|
||||
set names utf8;
|
||||
select extractValue('<Ñ><r>r</r></Ñ>','/Ñ/r');
|
||||
extractValue('<Ñ><r>r</r></Ñ>','/Ñ/r')
|
||||
r
|
||||
select extractValue('<r><Ñ>Ñ</Ñ></r>','/r/Ñ');
|
||||
extractValue('<r><Ñ>Ñ</Ñ></r>','/r/Ñ')
|
||||
Ñ
|
||||
select extractValue('<Ñ r="r"/>','/Ñ/@r');
|
||||
extractValue('<Ñ r="r"/>','/Ñ/@r')
|
||||
r
|
||||
select extractValue('<r Ñ="Ñ"/>','/r/@Ñ');
|
||||
extractValue('<r Ñ="Ñ"/>','/r/@Ñ')
|
||||
Ñ
|
||||
DROP PROCEDURE IF EXISTS p2;
|
||||
CREATE PROCEDURE p2 ()
|
||||
BEGIN
|
||||
DECLARE p LONGTEXT CHARACTER SET UTF8 DEFAULT '<Ñ><r>A</r></Ñ>';
|
||||
SELECT EXTRACTVALUE(p,'/Ñ/r');
|
||||
END//
|
||||
CALL p2();
|
||||
EXTRACTVALUE(p,'/Ñ/r')
|
||||
A
|
||||
DROP PROCEDURE p2;
|
||||
|
Reference in New Issue
Block a user