mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
This commit is contained in:
@ -469,7 +469,10 @@ static void write_header(FILE *sql_file, char *db_name)
|
||||
if (opt_xml)
|
||||
{
|
||||
fputs("<?xml version=\"1.0\"?>\n", sql_file);
|
||||
fputs("<mysqldump>\n", sql_file);
|
||||
fputs("<mysqldump ", sql_file);
|
||||
fputs("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"",
|
||||
sql_file);
|
||||
fputs(">\n", sql_file);
|
||||
check_io(sql_file);
|
||||
}
|
||||
else if (!opt_compact)
|
||||
@ -1075,6 +1078,40 @@ static void print_xml_tag1(FILE * xml_file, const char* sbeg,
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Print xml tag with for a field that is null
|
||||
|
||||
SYNOPSIS
|
||||
print_xml_null_tag()
|
||||
xml_file - output file
|
||||
sbeg - line beginning
|
||||
stag_atr - tag and attribute
|
||||
sval - value of attribute
|
||||
send - line ending
|
||||
|
||||
DESCRIPTION
|
||||
Print tag with one attribute to the xml_file. Format is:
|
||||
<stag_atr="sval" xsi:nil="true"/>
|
||||
NOTE
|
||||
sval MUST be a NULL terminated string.
|
||||
sval string will be qouted before output.
|
||||
*/
|
||||
|
||||
static void print_xml_null_tag(FILE * xml_file, const char* sbeg,
|
||||
const char* stag_atr, const char* sval,
|
||||
const char* send)
|
||||
{
|
||||
fputs(sbeg, xml_file);
|
||||
fputs("<", xml_file);
|
||||
fputs(stag_atr, xml_file);
|
||||
fputs("\"", xml_file);
|
||||
print_quoted_xml(xml_file, sval, strlen(sval));
|
||||
fputs("\" xsi:nil=\"true\" />", xml_file);
|
||||
fputs(send, xml_file);
|
||||
check_io(xml_file);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Print xml tag with many attributes.
|
||||
|
||||
@ -1935,7 +1972,14 @@ static void dump_table(uint numFields, char *table)
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* The field value is NULL */
|
||||
if (!opt_xml)
|
||||
fputs("NULL", md_result_file);
|
||||
else
|
||||
print_xml_null_tag(md_result_file, "\t\t", "field name=",
|
||||
field->name, "\n");
|
||||
}
|
||||
check_io(md_result_file);
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ drop view if exists v1, v2;
|
||||
CREATE TABLE t1(a int);
|
||||
INSERT INTO t1 VALUES (1), (2);
|
||||
<?xml version="1.0"?>
|
||||
<mysqldump>
|
||||
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<database name="test">
|
||||
<table_structure name="t1">
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
|
||||
@ -108,7 +108,7 @@ DROP TABLE t1;
|
||||
CREATE TABLE t1(a int, b text, c varchar(3));
|
||||
INSERT INTO t1 VALUES (1, "test", "tes"), (2, "TEST", "TES");
|
||||
<?xml version="1.0"?>
|
||||
<mysqldump>
|
||||
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<database name="test">
|
||||
<table_structure name="t1">
|
||||
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
|
||||
@ -133,7 +133,7 @@ DROP TABLE t1;
|
||||
CREATE TABLE t1 (`a"b"` char(2));
|
||||
INSERT INTO t1 VALUES ("1\""), ("\"2");
|
||||
<?xml version="1.0"?>
|
||||
<mysqldump>
|
||||
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<database name="test">
|
||||
<table_structure name="t1">
|
||||
<field Field="a"b"" Type="char(2)" Null="YES" Key="" Extra="" />
|
||||
@ -1580,3 +1580,59 @@ mysqldump: Got error: 1049: Unknown database 'mysqldump_test_d' when selecting t
|
||||
mysqldump: Got error: 1102: Incorrect database name 'mysqld\ump_test_db' when selecting the database
|
||||
drop table t1, t2, t3;
|
||||
drop database mysqldump_test_db;
|
||||
create table t1 (a int(10));
|
||||
create table t2 (pk int primary key auto_increment,
|
||||
a int(10), b varchar(30), c datetime, d blob, e text);
|
||||
insert into t1 values (NULL), (10), (20);
|
||||
insert into t2 (a, b) values (NULL, NULL),(10, NULL),(NULL, "twenty"),(30, "thirty");
|
||||
<?xml version="1.0"?>
|
||||
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<database name="test">
|
||||
<table_data name="t1">
|
||||
<row>
|
||||
<field name="a" xsi:nil="true" />
|
||||
</row>
|
||||
<row>
|
||||
<field name="a">10</field>
|
||||
</row>
|
||||
<row>
|
||||
<field name="a">20</field>
|
||||
</row>
|
||||
</table_data>
|
||||
<table_data name="t2">
|
||||
<row>
|
||||
<field name="pk">1</field>
|
||||
<field name="a" xsi:nil="true" />
|
||||
<field name="b" xsi:nil="true" />
|
||||
<field name="c" xsi:nil="true" />
|
||||
<field name="d" xsi:nil="true" />
|
||||
<field name="e" xsi:nil="true" />
|
||||
</row>
|
||||
<row>
|
||||
<field name="pk">2</field>
|
||||
<field name="a">10</field>
|
||||
<field name="b" xsi:nil="true" />
|
||||
<field name="c" xsi:nil="true" />
|
||||
<field name="d" xsi:nil="true" />
|
||||
<field name="e" xsi:nil="true" />
|
||||
</row>
|
||||
<row>
|
||||
<field name="pk">3</field>
|
||||
<field name="a" xsi:nil="true" />
|
||||
<field name="b">twenty</field>
|
||||
<field name="c" xsi:nil="true" />
|
||||
<field name="d" xsi:nil="true" />
|
||||
<field name="e" xsi:nil="true" />
|
||||
</row>
|
||||
<row>
|
||||
<field name="pk">4</field>
|
||||
<field name="a">30</field>
|
||||
<field name="b">thirty</field>
|
||||
<field name="c" xsi:nil="true" />
|
||||
<field name="d" xsi:nil="true" />
|
||||
<field name="e" xsi:nil="true" />
|
||||
</row>
|
||||
</table_data>
|
||||
</database>
|
||||
</mysqldump>
|
||||
drop table t1, t2;
|
||||
|
@ -565,7 +565,6 @@ INSERT INTO t1 VALUES (1),(2),(3);
|
||||
--exec $MYSQL_DUMP --add-drop-database --skip-comments --databases test
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
#
|
||||
# Bug #10213 mysqldump crashes when dumping VIEWs(on MacOS X)
|
||||
#
|
||||
@ -666,3 +665,16 @@ select '------ Testing with illegal database names ------' as test_sequence ;
|
||||
drop table t1, t2, t3;
|
||||
drop database mysqldump_test_db;
|
||||
|
||||
|
||||
#
|
||||
# Bug #9657 mysqldump xml ( -x ) does not format NULL fields correctly
|
||||
#
|
||||
|
||||
create table t1 (a int(10));
|
||||
create table t2 (pk int primary key auto_increment,
|
||||
a int(10), b varchar(30), c datetime, d blob, e text);
|
||||
insert into t1 values (NULL), (10), (20);
|
||||
insert into t2 (a, b) values (NULL, NULL),(10, NULL),(NULL, "twenty"),(30, "thirty");
|
||||
--exec $MYSQL_DUMP --skip-comments --xml --no-create-info test
|
||||
drop table t1, t2;
|
||||
|
||||
|
Reference in New Issue
Block a user