summaryrefslogtreecommitdiff
path: root/mysql-test/t/fix_priv_tables.test
diff options
context:
space:
mode:
authorunknown <msvensson@neptunus.(none)>2006-11-29 12:04:29 +0100
committerunknown <msvensson@neptunus.(none)>2006-11-29 12:04:29 +0100
commit2278d96215aabafe6d46e5be57561d0f1e80b5a9 (patch)
tree3764d3cb2844393bf04702d986c57ae9bab16603 /mysql-test/t/fix_priv_tables.test
parent139450341f3e41135e8fa92a6464ae0ec62341f8 (diff)
downloadmariadb-git-2278d96215aabafe6d46e5be57561d0f1e80b5a9.tar.gz
Bug#20589 Missing some table level privileges after upgrade
- The table_priv column of table_privs table was altered to a enum type with fewer enums causing the SHOW/CREATE VIEW grants to be truncated. - Improved comments and moved all declarations for table_privs, column_privs and proc_privs to one section for each table making it easy to see hat alterations are performed on each table - Reduced the number of ALTER's slightly, but as this is an upgrade script we need to take all possibilites into account. scripts/mysql_fix_privilege_tables.sql: Collect everything for tables_priv, columns_priv and procs_priv in one section for each table Remove duplicate ALTERS Remove the ALTERS that truncated "SHOW VIEW" and "CREATE VIEW" from the enum type for Table_priv. mysql-test/r/fix_priv_tables.result: New BitKeeper file ``mysql-test/r/fix_priv_tables.result'' mysql-test/r/fix_priv_tabs.result: New BitKeeper file ``mysql-test/r/fix_priv_tabs.result'' mysql-test/t/fix_priv_tables.test: New BitKeeper file ``mysql-test/t/fix_priv_tables.test''
Diffstat (limited to 'mysql-test/t/fix_priv_tables.test')
-rw-r--r--mysql-test/t/fix_priv_tables.test66
1 files changed, 66 insertions, 0 deletions
diff --git a/mysql-test/t/fix_priv_tables.test b/mysql-test/t/fix_priv_tables.test
new file mode 100644
index 00000000000..3a91f41dfcc
--- /dev/null
+++ b/mysql-test/t/fix_priv_tables.test
@@ -0,0 +1,66 @@
+# Embedded server doesn't support external clients
+--source include/not_embedded.inc
+
+#
+# This is the test for mysql_fix_privilege_tables
+# It checks that a system tables from mysql 4.1.23
+# can be upgraded to current system table format
+#
+# Note: If this test fails, don't be confused about the errors reported
+# by mysql-test-run This shows warnings generated by
+# mysql_fix_system_tables which should be ignored.
+# Instead, concentrate on the errors in r/system_mysql_db.reject
+
+--disable_warnings
+drop table if exists t1,t1aa,t2aa;
+--enable_warnings
+
+#
+# Bug #20589 Missing some table level privileges after upgrade
+#
+# Add some grants that should survive the "upgrade"
+
+--disable_warnings
+DROP DATABASE IF EXISTS testdb;
+--enable_warnings
+CREATE DATABASE testdb;
+CREATE TABLE testdb.t1 (
+ c1 INT,
+ c3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
+
+CREATE VIEW testdb.v1 AS
+ SELECT * FROM testdb.t1;
+
+GRANT CREATE VIEW, SHOW VIEW ON testdb.v1 TO 'show_view_tbl'@'localhost';
+SHOW GRANTS FOR 'show_view_tbl'@'localhost';
+echo;
+
+# Some extra GRANTS for more complete test
+GRANT SELECT(c1) on testdb.v1 to 'select_only_c1'@localhost;
+SHOW GRANTS FOR 'select_only_c1'@'localhost';
+echo;
+
+-- disable_result_log
+-- disable_query_log
+
+# Run the mysql_fix_privilege_tables.sql using "mysql --force"
+--exec $MYSQL --force mysql < $MYSQL_FIX_PRIVILEGE_TABLES > $MYSQLTEST_VARDIR/log/fix_priv_tables.log 2>&1
+
+-- enable_query_log
+-- enable_result_log
+
+echo "after fix privs";
+
+SHOW GRANTS FOR 'show_view_tbl'@'localhost';
+echo;
+SHOW GRANTS FOR 'select_only_c1'@'localhost';
+echo;
+
+DROP USER 'show_view_tbl'@'localhost';
+DROP USER 'select_only_c1'@'localhost';
+
+DROP VIEW testdb.v1;
+DROP TABLE testdb.t1;
+DROP DATABASE testdb;
+
+# End of 4.1 tests