• Shishir Jaiswal's avatar
    Bug #16171518 - LOAD XML DOES NOT HANDLE EMPTY ELEMENTS · ee02650b
    Shishir Jaiswal authored
    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" .../>)
    ee02650b
sql_load.cc 59.3 KB