diff options
author | unknown <bar@mysql.com/bar.myoffice.izhnet.ru> | 2007-10-09 13:53:39 +0500 |
---|---|---|
committer | unknown <bar@mysql.com/bar.myoffice.izhnet.ru> | 2007-10-09 13:53:39 +0500 |
commit | 4c21617d4a188de89833ceb0714de0c70fa963da (patch) | |
tree | 5e88ef872d6be0540ddc207add0053dfb0aedadf /mysql-test/r/func_regexp.result | |
parent | 0f0e0e1aafcc2d0d467ce5de560d7d6f7151d384 (diff) | |
download | mariadb-git-4c21617d4a188de89833ceb0714de0c70fa963da.tar.gz |
Bug#27287 extractvalue() (and updatexml()) extremely slow for large XML
Performance improvements made.
ExtractValue for large XML values is now much faster
(about 2000 times faster of 1Mb-long XML values).
sql/item_xmlfunc.cc:
Performance improvement for huge XML values:
1. Avoid reallocs - reserve extra memory:
using String::reserve() + String::q_append()
instead of String::append()
2. Parent is now not searched through the all previous
nodes in backward direction. Instead, we do the following:
- we introduce data->parent - a new member in MY_XML_USER_DATA
- when entering a new tag/attribute node, we remember offset
of the current node in data->parent
- when leaving a tag/attribute node, we change data->parent
to offset of the parent of the current node.
Diffstat (limited to 'mysql-test/r/func_regexp.result')
0 files changed, 0 insertions, 0 deletions