Below is the list of changes that have just been committed into a local
5.1 repository of iggy. When iggy does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2006-09-14 14:57:11-04:00, iggy@stripped +3 -0
Merge rolltop.ignatz42.dyndns.org:/mnt/storeage/bug21424/my50-bug21424
into rolltop.ignatz42.dyndns.org:/mnt/storeage/bug21424/my51-bug21424
MERGE: 1.1810.1697.141
client/mysqldump.c@stripped, 2006-09-14 14:57:07-04:00, iggy@stripped +0 -0
Auto merged
MERGE: 1.214.1.28
mysql-test/r/mysqldump.result@stripped, 2006-09-14 14:57:07-04:00, iggy@stripped +0 -0
Auto merged
MERGE: 1.83.1.31
mysql-test/t/mysqldump.test@stripped, 2006-09-14 14:57:08-04:00, iggy@stripped +0 -0
Auto merged
MERGE: 1.76.1.28
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: iggy
# Host: rolltop.ignatz42.dyndns.org
# Root: /mnt/storeage/bug21424/my51-bug21424/RESYNC
--- 1.248/client/mysqldump.c 2006-09-14 14:57:17 -04:00
+++ 1.249/client/mysqldump.c 2006-09-14 14:57:17 -04:00
@@ -86,7 +86,7 @@
static char *field_escape(char *to,const char *from,uint length);
static my_bool verbose= 0, opt_no_create_info= 0, opt_no_data= 0,
quick= 1, extended_insert= 1,
- lock_tables=1,ignore_errors=0,flush_logs=0,
+ lock_tables=1,ignore_errors=0,flush_logs=0,flush_privileges=0,
opt_drop=1,opt_keywords=0,opt_lock=1,opt_compress=0,
opt_delayed=0,create_options=1,opt_quoted=0,opt_databases=0,
opt_alldbs=0,opt_create_db=0,opt_lock_all_tables=0,
@@ -266,6 +266,12 @@
"--lock-all-tables or --master-data with --flush-logs",
(gptr*) &flush_logs, (gptr*) &flush_logs, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
0, 0},
+ {"flush-privileges", OPT_ESC, "Emit a FLUSH PRIVILEGES statement "
+ "after dumping the mysql database. This option should be used any "
+ "time the dump contains the mysql database and any other database "
+ "that depends on the data in the mysql database for proper restore. ",
+ (gptr*) &flush_privileges, (gptr*) &flush_privileges, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
+ 0, 0},
{"force", 'f', "Continue even if we get an sql-error.",
(gptr*) &ignore_errors, (gptr*) &ignore_errors, 0, GET_BOOL, NO_ARG,
0, 0, 0, 0, 0, 0},
@@ -3037,6 +3043,7 @@
char hash_key[2*NAME_LEN+2]; /* "db.tablename" */
char *afterdot;
+ int using_mysql_db= my_strcasecmp(&my_charset_latin1, database, "mysql");
afterdot= strmov(hash_key, database);
*afterdot++= '.';
@@ -3099,6 +3106,11 @@
}
if (lock_tables)
VOID(mysql_query_with_error_report(mysql, 0, "UNLOCK TABLES"));
+ if (flush_privileges && using_mysql_db == 0)
+ {
+ fprintf(md_result_file,"\n--\n-- Flush Grant Tables \n--\n");
+ fprintf(md_result_file,"\n/*! FLUSH PRIVILEGES */;\n");
+ }
return 0;
} /* dump_all_tables_in_db */
--- 1.125/mysql-test/r/mysqldump.result 2006-09-14 14:57:17 -04:00
+++ 1.126/mysql-test/r/mysqldump.result 2006-09-14 14:57:17 -04:00
@@ -2923,14 +2923,32 @@
create database mysqldump_myDB;
use mysqldump_myDB;
create user myDB_User;
-grant create view, select on mysqldump_myDB.* to myDB_User@localhost;
+grant create, create view, select, insert on mysqldump_myDB.* to myDB_User@localhost;
create table t1 (c1 int);
insert into t1 values (3);
use mysqldump_myDB;
+create table u1 (f1 int);
+insert into u1 values (4);
create view v1 (c1) as select * from t1;
use mysqldump_myDB;
drop view v1;
drop table t1;
+drop table u1;
+revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
+drop user myDB_User;
+drop database mysqldump_myDB;
+flush privileges;
+use mysqldump_myDB;
+select * from mysqldump_myDB.v1;
+c1
+3
+select * from mysqldump_myDB.u1;
+f1
+4
+use mysqldump_myDB;
+drop view v1;
+drop table t1;
+drop table u1;
revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
drop user myDB_User;
drop database mysqldump_myDB;
--- 1.118/mysql-test/t/mysqldump.test 2006-09-14 14:57:17 -04:00
+++ 1.119/mysql-test/t/mysqldump.test 2006-09-14 14:57:17 -04:00
@@ -1325,28 +1325,59 @@
# Bug #21527 mysqldump incorrectly tries to LOCK TABLES on the
# information_schema database.
#
+# Bug #21424 mysqldump failing to export/import views
+#
+
+# Do as root
connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
connection root;
create database mysqldump_myDB;
use mysqldump_myDB;
create user myDB_User;
-grant create view, select on mysqldump_myDB.* to myDB_User@localhost;
+grant create, create view, select, insert on mysqldump_myDB.* to myDB_User@localhost;
create table t1 (c1 int);
insert into t1 values (3);
+# Do as a user
connect (user1,localhost,myDB_User,,mysqldump_myDB,$MASTER_MYPORT,$MASTER_MYSOCK);
connection user1;
use mysqldump_myDB;
+create table u1 (f1 int);
+insert into u1 values (4);
create view v1 (c1) as select * from t1;
-# Backup should not fail.
---exec $MYSQL_DUMP --all-databases --add-drop-table > $MYSQLTEST_VARDIR/tmp/bug21527.sql
+# Backup should not fail for Bug #21527. Flush priviliges test begins.
+--exec $MYSQL_DUMP --skip-comments --add-drop-table --flush-privileges --ignore-table=mysql.general_log --ignore-table=mysql.slow_log --databases mysqldump_myDB mysql > $MYSQLTEST_VARDIR/tmp/bug21527.sql
# Clean up
connection root;
use mysqldump_myDB;
drop view v1;
drop table t1;
+drop table u1;
+revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
+drop user myDB_User;
+drop database mysqldump_myDB;
+flush privileges;
+
+# Bug #21424 continues from here.
+# Restore. Flush Privileges test ends.
+--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21527.sql;
+
+# Do as a user
+connection user1;
+use mysqldump_myDB;
+
+# Ultimate test for correct data.
+select * from mysqldump_myDB.v1;
+select * from mysqldump_myDB.u1;
+
+#Final cleanup.
+connection root;
+use mysqldump_myDB;
+drop view v1;
+drop table t1;
+drop table u1;
revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
drop user myDB_User;
drop database mysqldump_myDB;
| Thread |
|---|
| • bk commit into 5.1 tree (iggy:1.2322) | Ignacio Galarza | 14 Sep |