1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Bug#19745: mysqldump --xml produces invalid xml

The mysqldump command with both the --xml and --hex-blob options will output blob data encoded as hexBinary.  
The proper XML datatype is xs:hexBinary.  
The correct XML datatype is specified be setting the xsi_type attribute equal to xs:hexBinary for each encoded element.


client/mysqldump.c:
  Bug#19745: mysqldump --xml produces invalid xml
  - Moved hex-blob code to it's own function.
  - Rewrote print_xml_tag function to accept zero or more attribute/value
    pair(s) which are appended to a separate tag name.
  - --xml option respects the --hex-blob option by ouputting blob data in hex
    encoded format.  Each hex encoded field tag will also contain an xsi:type
    attribute with an xs:hexBinary value.
  - --extended-insert and --xml are mutually exclusive. Otherwise, the xml file
    will contain INSERT commands.
  - Minor comment cleanup.
mysql-test/r/mysqldump.result:
  Bug#19745: mysqldump --xml produces invalid xml
  -Added results.
mysql-test/t/mysqldump.test:
  Bug#19745: mysqldump --xml produces invalid xml
  -Added test.
This commit is contained in:
unknown
2006-10-18 18:43:51 -04:00
parent c317c2d224
commit 016a7d4c63
3 changed files with 135 additions and 36 deletions

View File

@ -3196,5 +3196,27 @@ UNLOCK TABLES;
DROP TABLE `t1`;
#
# Bug #19745: mysqldump --xml produces invalid xml
#
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (f1 int(10), data MEDIUMBLOB);
INSERT INTO t1 VALUES(1,0xff00fef0);
<?xml version="1.0"?>
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<database name="test">
<table_structure name="t1">
<field Field="f1" Type="int(10)" Null="YES" Key="" Extra="" />
<field Field="data" Type="mediumblob" Null="YES" Key="" Extra="" />
</table_structure>
<table_data name="t1">
<row>
<field name="f1">1</field>
<field name="data" xsi:type="xs:hexBinary">FF00FEF0</field>
</row>
</table_data>
</database>
</mysqldump>
DROP TABLE t1;
#
# End of 5.0 tests
#