MDEV-15118 ExtractValue(xml,something_complex) does not work

Item_xml_str_func::fix_fields() used a local "String tmp" as a buffer
for args[1]->val_str(). "tmp" was freed at the end of fix_fields(),
while Items created during my_xpath_parse() still pointed to its fragments.

Adding a new member Item_xml_str_func::m_xpath_query and store the result
of args[1]->val_str() into it.
This commit is contained in:
Alexander Barkov 2018-01-30 11:07:35 +04:00
commit dae4fb0acb
4 changed files with 30 additions and 2 deletions

View file

@ -67,6 +67,7 @@ protected:
return parse(res, cache);
}
};
String m_xpath_query; // XPath query text
Item *nodeset_func;
XML xml;
bool get_xml(XML *xml, bool cache= false)