List:Commits« Previous MessageNext Message »
From:Alexander Nozdrin Date:March 10 2006 12:48pm
Subject:bk commit into 5.1 tree (anozdrin:1.2157)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of alik. When alik 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
  1.2157 06/03/10 14:48:18 anozdrin@stripped +7 -0
  Merge mysql.com:/home/alik/Documents/AllProgs/MySQL/devel/5.0-tree
  into  mysql.com:/home/alik/Documents/AllProgs/MySQL/devel/5.1-merged

  sql/sql_show.cc
    1.320 06/03/10 14:48:14 anozdrin@stripped +0 -1
    Auto merged

  sql/sql_parse.cc
    1.531 06/03/10 14:48:14 anozdrin@stripped +0 -1
    Auto merged

  mysql-test/t/view_grant.test
    1.14 06/03/10 14:48:13 anozdrin@stripped +0 -3
    Auto merged

  mysql-test/t/sp.test
    1.187 06/03/10 14:48:13 anozdrin@stripped +0 -0
    Auto merged

  mysql-test/t/skip_grants.test
    1.11 06/03/10 14:48:13 anozdrin@stripped +0 -0
    Auto merged

  mysql-test/r/view_grant.result
    1.16 06/03/10 14:48:13 anozdrin@stripped +0 -8
    Auto merged

  mysql-test/r/sp.result
    1.201 06/03/10 14:48:13 anozdrin@stripped +0 -0
    Auto merged

# 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:	anozdrin
# Host:	station.home
# Root:	/home/alik/Documents/AllProgs/MySQL/devel/5.1-merged/RESYNC

--- 1.319/sql/sql_show.cc	2006-03-09 21:00:42 +03:00
+++ 1.320/sql/sql_show.cc	2006-03-10 14:48:14 +03:00
@@ -766,6 +766,18 @@
 }
 
 
+/*
+  Quote the given identifier if needed and append it to the target string.
+  If the given identifier is empty, it will be quoted.
+
+  SYNOPSIS
+  append_identifier()
+  thd                   thread handler
+  packet                target string
+  name                  the identifier to be appended
+  name_length           length of the appending identifier
+*/
+
 void
 append_identifier(THD *thd, String *packet, const char *name, uint length)
 {
@@ -819,8 +831,11 @@
     length	length of name
 
   IMPLEMENTATION
-    If name is a keyword or includes a special character, then force
-    quoting.
+    Force quoting in the following cases:
+      - name is empty (for one, it is possible when we use this function for
+        quoting user and host names for DEFINER clause);
+      - name is a keyword;
+      - name includes a special character;
     Otherwise identifier is quoted only if the option OPTION_QUOTE_SHOW_CREATE
     is set.
 

--- 1.10/mysql-test/t/skip_grants.test	2006-03-09 20:37:52 +03:00
+++ 1.11/mysql-test/t/skip_grants.test	2006-03-10 14:48:13 +03:00
@@ -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 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;

--- 1.13/mysql-test/t/view_grant.test	2006-03-09 21:00:42 +03:00
+++ 1.14/mysql-test/t/view_grant.test	2006-03-10 14:48:13 +03:00
@@ -718,5 +718,3 @@
 show create view v2;
 drop view v1;
 drop view v2;
-
-

--- 1.200/mysql-test/r/sp.result	2006-03-09 21:06:06 +03:00
+++ 1.201/mysql-test/r/sp.result	2006-03-10 14:48:13 +03:00
@@ -4796,4 +4796,20 @@
 0
 drop table t3|
 drop procedure bug16887|
+create table t3 (f1 int, f2 varchar(3), primary key(f1)) engine=innodb|
+insert into t3 values (1,'aaa'),(2,'bbb'),(3,'ccc')|
+CREATE FUNCTION bug13575 ( p1 integer ) 
+returns varchar(3) 
+BEGIN 
+DECLARE v1 VARCHAR(10) DEFAULT null;
+SELECT f2 INTO v1 FROM t3 WHERE f1 = p1; 
+RETURN v1;
+END|
+select distinct f1, bug13575(f1) from t3 order by f1|
+f1	bug13575(f1)
+1	aaa
+2	bbb
+3	ccc
+drop function bug13575;
+drop table t3|
 drop table t1,t2;

--- 1.186/mysql-test/t/sp.test	2006-03-09 15:12:09 +03:00
+++ 1.187/mysql-test/t/sp.test	2006-03-10 14:48:13 +03:00
@@ -5635,6 +5635,22 @@
 drop table t3|
 drop procedure bug16887|
 
+#
+# Bug#13575 SP funcs in select with distinct/group and order by can
+#           produce bad data
+#
+create table t3 (f1 int, f2 varchar(3), primary key(f1)) engine=innodb|
+insert into t3 values (1,'aaa'),(2,'bbb'),(3,'ccc')|
+CREATE FUNCTION bug13575 ( p1 integer ) 
+returns varchar(3) 
+BEGIN 
+DECLARE v1 VARCHAR(10) DEFAULT null;
+SELECT f2 INTO v1 FROM t3 WHERE f1 = p1; 
+RETURN v1;
+END|
+select distinct f1, bug13575(f1) from t3 order by f1|
+drop function bug13575;
+drop table t3|
 
 #
 # BUG#NNNN: New bug synopsis
Thread
bk commit into 5.1 tree (anozdrin:1.2157)Alexander Nozdrin10 Mar