diff options
author | unknown <bar@mysql.com> | 2006-12-27 18:14:28 +0400 |
---|---|---|
committer | unknown <bar@mysql.com> | 2006-12-27 18:14:28 +0400 |
commit | 38fd186721416536b0d61b816920005c8ac5a1f7 (patch) | |
tree | f484b0fb186a6aebe386231631f2225f603d578d /mysql-test/r/xml.result | |
parent | 61c7864ced276d8ac49860d9560cfb4d13120f59 (diff) | |
download | mariadb-git-38fd186721416536b0d61b816920005c8ac5a1f7.tar.gz |
Bug#24747 XPath error with the node name "Text"
mysql-test/r/xml.result:
Adding test case
mysql-test/t/xml.test:
Adding test case
sql/item_xmlfunc.cc:
Bug#24747 XPath error with the node name "Text"
Problem: keywords, nodetype names and axis names
didn't work in node name context.
Fix:
1. Changes in lexem scanner behaviour when an identifier has been read:
- search through axis names and return MY_XPATH_AXIS_xxx only
when identifier is followed by two semicolons. Don't check axis
names and return MY_XPATH_IDENT of not followed by two semicolons.
- search through nodetype names and return MY_XPATH_LEX_NODETYPE
only when identifier is followed by left parenthesis.
Don't check nodetype names and return MY_XPATH_LEX_IDENT when
not followed by parenthesis
2. Change in syntax analizer: QName scanner now accepts keywords
AND, OR, MOD, DIV as valid node names.
Diffstat (limited to 'mysql-test/r/xml.result')
-rw-r--r-- | mysql-test/r/xml.result | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/mysql-test/r/xml.result b/mysql-test/r/xml.result index bb7f84d0287..3991c97626a 100644 --- a/mysql-test/r/xml.result +++ b/mysql-test/r/xml.result @@ -809,3 +809,78 @@ ExtractValue(@xml, "/entry[(50<pt)]/id") select ExtractValue(@xml, "/entry[(50<=pt)]/id"); ExtractValue(@xml, "/entry[(50<=pt)]/id") pt50 +select ExtractValue('<a><b><Text>test</Text></b></a>','/a/b/Text'); +ExtractValue('<a><b><Text>test</Text></b></a>','/a/b/Text') +test +select ExtractValue('<a><b><comment>test</comment></b></a>','/a/b/comment'); +ExtractValue('<a><b><comment>test</comment></b></a>','/a/b/comment') +test +select ExtractValue('<a><b><node>test</node></b></a>','/a/b/node'); +ExtractValue('<a><b><node>test</node></b></a>','/a/b/node') +test +select ExtractValue('<a><b><processing-instruction>test</processing-instruction></b></a>','/a/b/processing-instruction'); +ExtractValue('<a><b><processing-instruction>test</processing-instruction></b></a>','/a/b/processing-instruction') +test +select ExtractValue('<a><and>test</and></a>', '/a/and'); +ExtractValue('<a><and>test</and></a>', '/a/and') +test +select ExtractValue('<a><or>test</or></a>', '/a/or'); +ExtractValue('<a><or>test</or></a>', '/a/or') +test +select ExtractValue('<a><mod>test</mod></a>', '/a/mod'); +ExtractValue('<a><mod>test</mod></a>', '/a/mod') +test +select ExtractValue('<a><div>test</div></a>', '/a/div'); +ExtractValue('<a><div>test</div></a>', '/a/div') +test +select ExtractValue('<a><and:and>test</and:and></a>', '/a/and:and'); +ExtractValue('<a><and:and>test</and:and></a>', '/a/and:and') +test +select ExtractValue('<a><or:or>test</or:or></a>', '/a/or:or'); +ExtractValue('<a><or:or>test</or:or></a>', '/a/or:or') +test +select ExtractValue('<a><mod:mod>test</mod:mod></a>', '/a/mod:mod'); +ExtractValue('<a><mod:mod>test</mod:mod></a>', '/a/mod:mod') +test +select ExtractValue('<a><div:div>test</div:div></a>', '/a/div:div'); +ExtractValue('<a><div:div>test</div:div></a>', '/a/div:div') +test +select ExtractValue('<a><ancestor>test</ancestor></a>', '/a/ancestor'); +ExtractValue('<a><ancestor>test</ancestor></a>', '/a/ancestor') +test +select ExtractValue('<a><ancestor-or-self>test</ancestor-or-self></a>', '/a/ancestor-or-self'); +ExtractValue('<a><ancestor-or-self>test</ancestor-or-self></a>', '/a/ancestor-or-self') +test +select ExtractValue('<a><attribute>test</attribute></a>', '/a/attribute'); +ExtractValue('<a><attribute>test</attribute></a>', '/a/attribute') +test +select ExtractValue('<a><child>test</child></a>', '/a/child'); +ExtractValue('<a><child>test</child></a>', '/a/child') +test +select ExtractValue('<a><descendant>test</descendant></a>', '/a/descendant'); +ExtractValue('<a><descendant>test</descendant></a>', '/a/descendant') +test +select ExtractValue('<a><descendant-or-self>test</descendant-or-self></a>', '/a/descendant-or-self'); +ExtractValue('<a><descendant-or-self>test</descendant-or-self></a>', '/a/descendant-or-self') +test +select ExtractValue('<a><following>test</following></a>', '/a/following'); +ExtractValue('<a><following>test</following></a>', '/a/following') +test +select ExtractValue('<a><following-sibling>test</following-sibling></a>', '/a/following-sibling'); +ExtractValue('<a><following-sibling>test</following-sibling></a>', '/a/following-sibling') +test +select ExtractValue('<a><namespace>test</namespace></a>', '/a/namespace'); +ExtractValue('<a><namespace>test</namespace></a>', '/a/namespace') +test +select ExtractValue('<a><parent>test</parent></a>', '/a/parent'); +ExtractValue('<a><parent>test</parent></a>', '/a/parent') +test +select ExtractValue('<a><preceding>test</preceding></a>', '/a/preceding'); +ExtractValue('<a><preceding>test</preceding></a>', '/a/preceding') +test +select ExtractValue('<a><preceding-sibling>test</preceding-sibling></a>', '/a/preceding-sibling'); +ExtractValue('<a><preceding-sibling>test</preceding-sibling></a>', '/a/preceding-sibling') +test +select ExtractValue('<a><self>test</self></a>', '/a/self'); +ExtractValue('<a><self>test</self></a>', '/a/self') +test |