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:
@ -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
|
||||
#
|
||||
|
Reference in New Issue
Block a user