summaryrefslogtreecommitdiff
path: root/mysql-test/t/skip_grants.test
diff options
context:
space:
mode:
authorunknown <anozdrin@mysql.com>2006-03-10 14:40:15 +0300
committerunknown <anozdrin@mysql.com>2006-03-10 14:40:15 +0300
commitcf539a5ac0420bb15d9eed06998510be4bb46598 (patch)
tree4409b8f31e6e19dde59ed5021f897520893db43d /mysql-test/t/skip_grants.test
parent50c8c206fca3ea3b7ca6978ba1fe283f9777db4d (diff)
downloadmariadb-git-cf539a5ac0420bb15d9eed06998510be4bb46598.tar.gz
Additional fix for BUG#16777: Can not create trigger nor view
w/o definer if --skip-grant-tables specified. The previous patch does not allow to specify empty host name in DEFINER-clause explicitly. mysql-test/r/skip_grants.result: Updated the result file. mysql-test/r/view_grant.result: Updated the result file. mysql-test/t/skip_grants.test: Added test cases for BUG#16777; re-organized tests. mysql-test/t/view_grant.test: Updated after final fix of BUG#16777. sql/sql_parse.cc: The final part of fixing BUG#16777: allow empty host name in explicitly specified DEFINER-clause. sql/sql_show.cc: Quote an identifier if it is empty.
Diffstat (limited to 'mysql-test/t/skip_grants.test')
-rw-r--r--mysql-test/t/skip_grants.test88
1 files changed, 63 insertions, 25 deletions
diff --git a/mysql-test/t/skip_grants.test b/mysql-test/t/skip_grants.test
index 93e052d8c71..6dda97fcf8a 100644
--- a/mysql-test/t/skip_grants.test
+++ b/mysql-test/t/skip_grants.test
@@ -1,37 +1,18 @@
# This tests not performed with embedded server
-- source include/not_embedded.inc
---disable_warnings
-drop table if exists t1,v1;
-drop view if exists t1,v1;
-drop procedure if exists f1;
---enable_warnings
use test;
#
-# Test that we can create and drop procedure without warnings
-# see bug#9993
-#
-create procedure f1() select 1;
-drop procedure f1;
-
-#
-# BUG#13504: creation view with DEFINER clause if --skip-grant-tables
-#
-create table t1 (a int);
-create definer='user'@'host' sql security definer view v1 as select * from t1;
-drop view v1;
-drop table t1;
-
-# BUG#17595: DROP FUNCTION IF EXISTS f1 crashes server
-drop function if exists f1;
-
-#
# BUG#16777: Can not create trigger nor view w/o definer if --skip-grant-tables
# specified
#
-# Also, a test that we can create VIEW if privileges check switched off has
-# been moved here.
+# Also, the following test cases have been moved here:
+# - test that we can create VIEW if privileges check switched off has been
+# moved here;
+# - test that we can create and drop procedure without warnings (BUG#9993);
+# - BUG#17595: "DROP FUNCTION IF EXISTS" crashes server;
+# - BUG#13504: creation view with DEFINER clause if --skip-grant-tables
#
# Prepare.
@@ -40,33 +21,90 @@ drop function if exists f1;
DROP VIEW IF EXISTS v1;
DROP VIEW IF EXISTS v2;
+DROP VIEW IF EXISTS v3;
DROP TABLE IF EXISTS t1;
+DROP PROCEDURE IF EXISTS p1;
+DROP PROCEDURE IF EXISTS p2;
+DROP PROCEDURE IF EXISTS p3;
+
+DROP FUNCTION IF EXISTS f1;
+DROP FUNCTION IF EXISTS f2;
+DROP FUNCTION IF EXISTS f3;
+
--enable_warnings
# Test case.
CREATE TABLE t1(c INT);
+# - try to create with implicit definer (definer would be ''@'');
+
CREATE TRIGGER t1_bi BEFORE INSERT ON t1
FOR EACH ROW
SET @a = 1;
CREATE VIEW v1 AS SELECT * FROM t1;
+CREATE PROCEDURE p1()
+ SELECT 1;
+
+CREATE FUNCTION f1() RETURNS INT
+ RETURN 1;
+
+# - try to create with explicit definer;
+
CREATE DEFINER=a@b TRIGGER ti_ai AFTER INSERT ON t1
FOR EACH ROW
SET @b = 1;
CREATE DEFINER=a@b VIEW v2 AS SELECT * FROM t1;
+CREATE DEFINER=a@b PROCEDURE p2()
+ SELECT 2;
+
+CREATE DEFINER=a@b FUNCTION f2() RETURNS INT
+ RETURN 2;
+
+# - try to create with explicit definer with empty host;
+
+CREATE DEFINER=a@'' TRIGGER ti_bu BEFORE UPDATE ON t1
+ FOR EACH ROW
+ SET @c = 1;
+
+CREATE DEFINER=a@'' VIEW v3 AS SELECT * FROM t1;
+
+CREATE DEFINER=a@'' PROCEDURE p3()
+ SELECT 3;
+
+CREATE DEFINER=a@'' FUNCTION f3() RETURNS INT
+ RETURN 3;
+
+# - check that empty host name is treated correctly;
+
+SHOW CREATE VIEW v3;
+
+SHOW CREATE PROCEDURE p3;
+
+SHOW CREATE FUNCTION f3;
+
# Cleanup.
DROP TRIGGER t1_bi;
DROP TRIGGER ti_ai;
+DROP TRIGGER ti_bu;
DROP VIEW v1;
DROP VIEW v2;
+DROP VIEW v3;
DROP TABLE t1;
+
+DROP PROCEDURE p1;
+DROP PROCEDURE p2;
+DROP PROCEDURE p3;
+
+DROP FUNCTION f1;
+DROP FUNCTION f2;
+DROP FUNCTION f3;