mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Bug#22823 gt and lt operators appear to be reversed in ExtractValue() command
Problem: "greater than" and "less than" XPath operators appeared to have been implemented in reverse. Fix: swap arguments to eq_func() and eq_func_reverse() to provide correct operation result. mysql-test/r/xml.result: Adding test case mysql-test/t/xml.test: Adding test case sql/item_xmlfunc.cc: Pass argumemtns to eq_func() and eq_func_reverse() in correct order: nodeset argument first, then scalar argument. Also, fixing eq_func_reverse() to do correct conversion, e.g: "scalar > nodeset" into "nodeset < scalar" instead of wrong "nodeset <= scalar" "scalar >= nodeset" into "nodeset <= scalar" instead of wrong "nodeset < scalar".
This commit is contained in:
@@ -736,3 +736,76 @@ test
|
||||
select extractValue('<x.-_:>test</x.-_:>','//*');
|
||||
extractValue('<x.-_:>test</x.-_:>','//*')
|
||||
test
|
||||
set @xml= "<entry><id>pt10</id><pt>10</pt></entry><entry><id>pt50</id><pt>50</pt></entry>";
|
||||
select ExtractValue(@xml, "/entry[(pt=10)]/id");
|
||||
ExtractValue(@xml, "/entry[(pt=10)]/id")
|
||||
pt10
|
||||
select ExtractValue(@xml, "/entry[(pt!=10)]/id");
|
||||
ExtractValue(@xml, "/entry[(pt!=10)]/id")
|
||||
pt50
|
||||
select ExtractValue(@xml, "/entry[(pt<10)]/id");
|
||||
ExtractValue(@xml, "/entry[(pt<10)]/id")
|
||||
|
||||
select ExtractValue(@xml, "/entry[(pt<=10)]/id");
|
||||
ExtractValue(@xml, "/entry[(pt<=10)]/id")
|
||||
pt10
|
||||
select ExtractValue(@xml, "/entry[(pt>10)]/id");
|
||||
ExtractValue(@xml, "/entry[(pt>10)]/id")
|
||||
pt50
|
||||
select ExtractValue(@xml, "/entry[(pt>=10)]/id");
|
||||
ExtractValue(@xml, "/entry[(pt>=10)]/id")
|
||||
pt10 pt50
|
||||
select ExtractValue(@xml, "/entry[(pt=50)]/id");
|
||||
ExtractValue(@xml, "/entry[(pt=50)]/id")
|
||||
pt50
|
||||
select ExtractValue(@xml, "/entry[(pt!=50)]/id");
|
||||
ExtractValue(@xml, "/entry[(pt!=50)]/id")
|
||||
pt10
|
||||
select ExtractValue(@xml, "/entry[(pt<50)]/id");
|
||||
ExtractValue(@xml, "/entry[(pt<50)]/id")
|
||||
pt10
|
||||
select ExtractValue(@xml, "/entry[(pt<=50)]/id");
|
||||
ExtractValue(@xml, "/entry[(pt<=50)]/id")
|
||||
pt10 pt50
|
||||
select ExtractValue(@xml, "/entry[(pt>50)]/id");
|
||||
ExtractValue(@xml, "/entry[(pt>50)]/id")
|
||||
|
||||
select ExtractValue(@xml, "/entry[(pt>=50)]/id");
|
||||
ExtractValue(@xml, "/entry[(pt>=50)]/id")
|
||||
pt50
|
||||
select ExtractValue(@xml, "/entry[(10=pt)]/id");
|
||||
ExtractValue(@xml, "/entry[(10=pt)]/id")
|
||||
pt10
|
||||
select ExtractValue(@xml, "/entry[(10!=pt)]/id");
|
||||
ExtractValue(@xml, "/entry[(10!=pt)]/id")
|
||||
pt50
|
||||
select ExtractValue(@xml, "/entry[(10>pt)]/id");
|
||||
ExtractValue(@xml, "/entry[(10>pt)]/id")
|
||||
|
||||
select ExtractValue(@xml, "/entry[(10>=pt)]/id");
|
||||
ExtractValue(@xml, "/entry[(10>=pt)]/id")
|
||||
pt10
|
||||
select ExtractValue(@xml, "/entry[(10<pt)]/id");
|
||||
ExtractValue(@xml, "/entry[(10<pt)]/id")
|
||||
pt50
|
||||
select ExtractValue(@xml, "/entry[(10<=pt)]/id");
|
||||
ExtractValue(@xml, "/entry[(10<=pt)]/id")
|
||||
pt10 pt50
|
||||
select ExtractValue(@xml, "/entry[(50=pt)]/id");
|
||||
ExtractValue(@xml, "/entry[(50=pt)]/id")
|
||||
pt50
|
||||
select ExtractValue(@xml, "/entry[(50!=pt)]/id");
|
||||
ExtractValue(@xml, "/entry[(50!=pt)]/id")
|
||||
pt10
|
||||
select ExtractValue(@xml, "/entry[(50>pt)]/id");
|
||||
ExtractValue(@xml, "/entry[(50>pt)]/id")
|
||||
pt10
|
||||
select ExtractValue(@xml, "/entry[(50>=pt)]/id");
|
||||
ExtractValue(@xml, "/entry[(50>=pt)]/id")
|
||||
pt10 pt50
|
||||
select ExtractValue(@xml, "/entry[(50<pt)]/id");
|
||||
ExtractValue(@xml, "/entry[(50<pt)]/id")
|
||||
|
||||
select ExtractValue(@xml, "/entry[(50<=pt)]/id");
|
||||
ExtractValue(@xml, "/entry[(50<=pt)]/id")
|
||||
pt50
|
||||
|
||||
Reference in New Issue
Block a user