blob: 382417a6b1010f8d9f54fca08085fa522916e81d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
# Embedded server doesn't support external clients
--source include/not_embedded.inc
--source include/no_view_protocol.inc
# Don't run this test if $MYSQL_FIX_PRIVILEGE_TABLES isn't set
# to the location of mysql_fix_privilege_tables.sql
if (!$MYSQL_FIX_PRIVILEGE_TABLES)
{
skip Test need MYSQL_FIX_PRIVILEGE_TABLES;
}
#
# 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
set sql_mode="";
#
# 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"
# Determine the number of open sessions
--source include/count_sessions.inc
--exec $MYSQL --force mysql < $MYSQL_FIX_PRIVILEGE_TABLES > $MYSQLTEST_VARDIR/tmp/fix_priv_tables.log 2>&1
--remove_file $MYSQLTEST_VARDIR/tmp/fix_priv_tables.log
# Wait till the number of open sessions is <= the number before the run with $MYSQL
# = The session caused by mysql has finished its disconnect
--source include/wait_until_count_sessions.inc
-- 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
|