mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
ee02650bac
DESCRIPTION =========== Inability of mysql LOAD XML command to handle empty XML tags i.e. <row><tag/></row>. Also the behaviour is wrong and (different than above) when there is a space in empty tag i.e. <row><tag /></row> ANALYSIS ======== In read_xml() the case where we encounter a close tag ('/') we're decreasing the 'level' blindly which is wrong. Actually when its an without-space-empty-tag (succeeding char is '>'), we need to skip the decrement. In other words whenever we hit a close tag ('/'), decrease the 'level' only when (i) It's not an (without space) empty tag i.e. <tag/> or, (ii) It is of format <row col="val" .../> FIX === The switch case for '/' is modified. We've removed the blind decrement of 'level'. We do it only when its not an without-space-empty-tag. Also we are setting 'in_tag' to false to let program know that we're done reading current tag (required in the case of format <row col="val" .../>)
12 lines
169 B
Text
12 lines
169 B
Text
<test_rows>
|
|
<row>
|
|
<col1>ABC</col1>
|
|
<col2>DEF</col2>
|
|
<col3 />
|
|
</row>
|
|
<row>
|
|
<col1>GHI</col1>
|
|
<col2 />
|
|
<col3>123</col3>
|
|
</row>
|
|
</test_rows>
|