Commit 62a4848d authored by Jim Winstead's avatar Jim Winstead

Merge bug fixes

parents 8b6ca5bf 2a4e1220
...@@ -71,7 +71,7 @@ mysqldump_SOURCES= mysqldump.c \ ...@@ -71,7 +71,7 @@ mysqldump_SOURCES= mysqldump.c \
$(top_srcdir)/mysys/mf_getdate.c $(top_srcdir)/mysys/mf_getdate.c
mysqlimport_SOURCES= mysqlimport.c mysqlimport_SOURCES= mysqlimport.c
mysqlimport_CFLAGS= -DTHREAD -UUNDEF_THREADS_HACK
mysqlimport_LDADD = $(CXXLDFLAGS) $(CLIENT_THREAD_LIBS) \ mysqlimport_LDADD = $(CXXLDFLAGS) $(CLIENT_THREAD_LIBS) \
@CLIENT_EXTRA_LDFLAGS@ \ @CLIENT_EXTRA_LDFLAGS@ \
$(LIBMYSQLCLIENT_LA) \ $(LIBMYSQLCLIENT_LA) \
......
...@@ -17,10 +17,8 @@ ...@@ -17,10 +17,8 @@
TODO: print the catalog (some USE catalog.db ????). TODO: print the catalog (some USE catalog.db ????).
Standalone program to read a MySQL binary log (or relay log); Standalone program to read a MySQL binary log (or relay log).
can read files produced by 3.23, 4.x, 5.0 servers.
Can read binlogs from 3.23/4.x/5.0 and relay logs from 4.x/5.0.
Should be able to read any file of these categories, even with Should be able to read any file of these categories, even with
--start-position. --start-position.
An important fact: the Format_desc event of the log is at most the 3rd event An important fact: the Format_desc event of the log is at most the 3rd event
...@@ -988,10 +986,13 @@ static struct my_option my_long_options[] = ...@@ -988,10 +986,13 @@ static struct my_option my_long_options[] =
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
#endif #endif
{"base64-output", OPT_BASE64_OUTPUT_MODE, {"base64-output", OPT_BASE64_OUTPUT_MODE,
/* 'unspec' is not mentioned because it is just a placeholder. */
"Determine when the output statements should be base64-encoded BINLOG " "Determine when the output statements should be base64-encoded BINLOG "
"statements: 'never' disables it and works only for binlogs without " "statements: 'never' disables it and works only for binlogs without "
"row-based events; 'auto' is the default and prints base64 only when " "row-based events; 'auto' is the default and prints base64 only when "
"necessary (i.e., for row-based events and format description events); " "necessary (i.e., for row-based events and format description events); "
"'decode-rows' suppresses BINLOG statements for row events, but does "
"not exit as an error if a row event is found, unlike 'never'; "
"'always' prints base64 whenever possible. 'always' is for debugging " "'always' prints base64 whenever possible. 'always' is for debugging "
"only and should not be used in a production system. The default is " "only and should not be used in a production system. The default is "
"'auto'. --base64-output is a short form for --base64-output=always." "'auto'. --base64-output is a short form for --base64-output=always."
......
...@@ -3821,6 +3821,10 @@ static int dump_all_databases() ...@@ -3821,6 +3821,10 @@ static int dump_all_databases()
return 1; return 1;
while ((row= mysql_fetch_row(tableres))) while ((row= mysql_fetch_row(tableres)))
{ {
if (mysql_get_server_version(mysql) >= 50003 &&
!my_strcasecmp(&my_charset_latin1, row[0], "information_schema"))
continue;
if (dump_all_tables_in_db(row[0])) if (dump_all_tables_in_db(row[0]))
result=1; result=1;
} }
...@@ -3835,6 +3839,10 @@ static int dump_all_databases() ...@@ -3835,6 +3839,10 @@ static int dump_all_databases()
} }
while ((row= mysql_fetch_row(tableres))) while ((row= mysql_fetch_row(tableres)))
{ {
if (mysql_get_server_version(mysql) >= 50003 &&
!my_strcasecmp(&my_charset_latin1, row[0], "information_schema"))
continue;
if (dump_all_views_in_db(row[0])) if (dump_all_views_in_db(row[0]))
result=1; result=1;
} }
...@@ -3941,10 +3949,6 @@ int init_dumping_tables(char *qdatabase) ...@@ -3941,10 +3949,6 @@ int init_dumping_tables(char *qdatabase)
static int init_dumping(char *database, int init_func(char*)) static int init_dumping(char *database, int init_func(char*))
{ {
if (mysql_get_server_version(mysql) >= 50003 &&
!my_strcasecmp(&my_charset_latin1, database, "information_schema"))
return 1;
if (mysql_select_db(mysql, database)) if (mysql_select_db(mysql, database))
{ {
DB_error(mysql, "when selecting the database"); DB_error(mysql, "when selecting the database");
...@@ -4003,6 +4007,7 @@ static int dump_all_tables_in_db(char *database) ...@@ -4003,6 +4007,7 @@ static int dump_all_tables_in_db(char *database)
DBUG_RETURN(1); DBUG_RETURN(1);
if (opt_xml) if (opt_xml)
print_xml_tag(md_result_file, "", "\n", "database", "name=", database, NullS); print_xml_tag(md_result_file, "", "\n", "database", "name=", database, NullS);
if (lock_tables) if (lock_tables)
{ {
DYNAMIC_STRING query; DYNAMIC_STRING query;
...@@ -4236,7 +4241,10 @@ static int dump_selected_tables(char *db, char **table_names, int tables) ...@@ -4236,7 +4241,10 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
} }
end= pos; end= pos;
if (lock_tables) /* Can't LOCK TABLES in INFORMATION_SCHEMA, so don't try. */
if (lock_tables &&
!(mysql_get_server_version(mysql) >= 50003 &&
!my_strcasecmp(&my_charset_latin1, db, "information_schema")))
{ {
if (mysql_real_query(mysql, lock_tables_query.str, if (mysql_real_query(mysql, lock_tables_query.str,
lock_tables_query.length-1)) lock_tables_query.length-1))
......
...@@ -3563,9 +3563,6 @@ grant REPLICATION CLIENT on *.* to mysqltest_1@localhost; ...@@ -3563,9 +3563,6 @@ grant REPLICATION CLIENT on *.* to mysqltest_1@localhost;
drop table t1; drop table t1;
drop user mysqltest_1@localhost; drop user mysqltest_1@localhost;
# #
# Bug#21527 mysqldump incorrectly tries to LOCK TABLES on the
# information_schema database.
#
# Bug#21424 mysqldump failing to export/import views # Bug#21424 mysqldump failing to export/import views
# #
create database mysqldump_myDB; create database mysqldump_myDB;
...@@ -3605,6 +3602,39 @@ drop user myDB_User@localhost; ...@@ -3605,6 +3602,39 @@ drop user myDB_User@localhost;
drop database mysqldump_myDB; drop database mysqldump_myDB;
use test; use test;
# #
# Bug #21527 mysqldump incorrectly tries to LOCK TABLES on the
# information_schema database.
#
# Bug #33762: mysqldump can not dump INFORMATION_SCHEMA
#
DROP TABLE IF EXISTS `TABLES`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TEMPORARY TABLE `TABLES` (
`TABLE_CATALOG` varchar(512) DEFAULT NULL,
`TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
`TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
`TABLE_TYPE` varchar(64) NOT NULL DEFAULT '',
`ENGINE` varchar(64) DEFAULT NULL,
`VERSION` bigint(21) unsigned DEFAULT NULL,
`ROW_FORMAT` varchar(10) DEFAULT NULL,
`TABLE_ROWS` bigint(21) unsigned DEFAULT NULL,
`AVG_ROW_LENGTH` bigint(21) unsigned DEFAULT NULL,
`DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
`MAX_DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
`INDEX_LENGTH` bigint(21) unsigned DEFAULT NULL,
`DATA_FREE` bigint(21) unsigned DEFAULT NULL,
`AUTO_INCREMENT` bigint(21) unsigned DEFAULT NULL,
`CREATE_TIME` datetime DEFAULT NULL,
`UPDATE_TIME` datetime DEFAULT NULL,
`CHECK_TIME` datetime DEFAULT NULL,
`TABLE_COLLATION` varchar(32) DEFAULT NULL,
`CHECKSUM` bigint(21) unsigned DEFAULT NULL,
`CREATE_OPTIONS` varchar(255) DEFAULT NULL,
`TABLE_COMMENT` varchar(80) NOT NULL DEFAULT ''
) ENGINE=MEMORY DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
#
# Bug#19745 mysqldump --xml produces invalid xml # Bug#19745 mysqldump --xml produces invalid xml
# #
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
...@@ -4006,6 +4036,181 @@ UNLOCK TABLES; ...@@ -4006,6 +4036,181 @@ UNLOCK TABLES;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
DROP TABLE t1; DROP TABLE t1;
create table t1 (a text , b text);
create table t2 (a text , b text);
insert t1 values ("Duck, Duck", "goose");
insert t1 values ("Duck, Duck", "pidgeon");
insert t2 values ("We the people", "in order to perform");
insert t2 values ("a more perfect", "union");
select * from t1;
a b
Duck, Duck goose
Duck, Duck pidgeon
select * from t2;
a b
We the people in order to perform
a more perfect union
test.t1: Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
test.t2: Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
select * from t1;
a b
Duck, Duck goose
Duck, Duck pidgeon
Duck, Duck goose
Duck, Duck pidgeon
select * from t2;
a b
We the people in order to perform
a more perfect union
We the people in order to perform
a more perfect union
create table words(a varchar(255));
create table words2(b varchar(255));
select * from t1;
a b
Duck, Duck goose
Duck, Duck pidgeon
Duck, Duck goose
Duck, Duck pidgeon
Duck, Duck goose
Duck, Duck pidgeon
select * from t2;
a b
We the people in order to perform
a more perfect union
We the people in order to perform
a more perfect union
We the people in order to perform
a more perfect union
select * from words;
a
Aarhus
Aaron
Ababa
aback
abaft
abandon
abandoned
abandoning
abandonment
abandons
Aarhus
Aaron
Ababa
aback
abaft
abandon
abandoned
abandoning
abandonment
abandons
abase
abased
abasement
abasements
abases
abash
abashed
abashes
abashing
abasing
abate
abated
abatement
abatements
abater
abates
abating
Abba
abbe
abbey
abbeys
abbot
abbots
Abbott
abbreviate
abbreviated
abbreviates
abbreviating
abbreviation
abbreviations
Abby
abdomen
abdomens
abdominal
abduct
abducted
abduction
abductions
abductor
abductors
abducts
Abe
abed
Abel
Abelian
Abelson
Aberdeen
Abernathy
aberrant
aberration
select * from words2;
b
abase
abased
abasement
abasements
abases
abash
abashed
abashes
abashing
abasing
abate
abated
abatement
abatements
abater
abates
abating
Abba
abbe
abbey
abbeys
abbot
abbots
Abbott
abbreviate
abbreviated
abbreviates
abbreviating
abbreviation
abbreviations
Abby
abdomen
abdomens
abdominal
abduct
abducted
abduction
abductions
abductor
abductors
abducts
Abe
abed
Abel
Abelian
Abelson
Aberdeen
Abernathy
aberrant
aberration
drop table words;
mysql-import: Error: 1146, Table 'test.words' doesn't exist, when using table: words
drop table t1;
drop table t2;
drop table words2;
# #
# Bug#16853 mysqldump doesn't show events # Bug#16853 mysqldump doesn't show events
# #
......
...@@ -1394,9 +1394,6 @@ drop table t1; ...@@ -1394,9 +1394,6 @@ drop table t1;
drop user mysqltest_1@localhost; drop user mysqltest_1@localhost;
--echo #
--echo # Bug#21527 mysqldump incorrectly tries to LOCK TABLES on the
--echo # information_schema database.
--echo # --echo #
--echo # Bug#21424 mysqldump failing to export/import views --echo # Bug#21424 mysqldump failing to export/import views
--echo # --echo #
...@@ -1463,6 +1460,13 @@ disconnect root; ...@@ -1463,6 +1460,13 @@ disconnect root;
--remove_file $MYSQLTEST_VARDIR/tmp/bug21527.sql --remove_file $MYSQLTEST_VARDIR/tmp/bug21527.sql
use test; use test;
--echo #
--echo # Bug #21527 mysqldump incorrectly tries to LOCK TABLES on the
--echo # information_schema database.
--echo #
--echo # Bug #33762: mysqldump can not dump INFORMATION_SCHEMA
--echo #
--exec $MYSQL_DUMP --compact --opt -d information_schema TABLES
--echo # --echo #
--echo # Bug#19745 mysqldump --xml produces invalid xml --echo # Bug#19745 mysqldump --xml produces invalid xml
...@@ -1698,9 +1702,6 @@ DROP TABLE t1; ...@@ -1698,9 +1702,6 @@ DROP TABLE t1;
# Added for use-thread option # Added for use-thread option
# #
# THIS PART OF THE TEST IS DISABLED UNTIL Bug#32991 IS FIXED
if ($bug32991_fixed) {
create table t1 (a text , b text); create table t1 (a text , b text);
create table t2 (a text , b text); create table t2 (a text , b text);
insert t1 values ("Duck, Duck", "goose"); insert t1 values ("Duck, Duck", "goose");
...@@ -1738,8 +1739,6 @@ drop table t2; ...@@ -1738,8 +1739,6 @@ drop table t2;
drop table words2; drop table words2;
}
--echo # --echo #
--echo # Bug#16853 mysqldump doesn't show events --echo # Bug#16853 mysqldump doesn't show events
--echo # --echo #
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment