Commit 0586acd0 authored by unknown's avatar unknown
Browse files

Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime

into  weblab.(none):/home/marcsql/TREE/mysql-5.1-18239


mysql-test/t/sp.test:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
parents 0b0a6952 418fd548
Loading
Loading
Loading
Loading
+116 −0
Original line number Diff line number Diff line
@@ -2178,6 +2178,7 @@ set @stamped_time=in_time;
set x=2;
end if;
end|
set time_zone='+03:00';
call bug3426(1000, @i)|
select @i, from_unixtime(@stamped_time, '%d-%m-%Y %h:%i:%s') as time|
@i	time
@@ -5627,4 +5628,119 @@ Called B
drop procedure proc_21462_a|
drop procedure proc_21462_b|
End of 5.0 tests
Begin of 5.1 tests
drop function if exists pi;
create function pi() returns varchar(50)
return "pie, my favorite desert.";
Warnings:
Note	1578	This function 'pi' has the same name as a native function.
SET @save_sql_mode=@@sql_mode;
SET SQL_MODE='IGNORE_SPACE';
select pi(), pi ();
pi()	pi ()
3.141593	3.141593
select test.pi(), test.pi ();
test.pi()	test.pi ()
pie, my favorite desert.	pie, my favorite desert.
Warnings:
Note	1578	This function 'pi' has the same name as a native function.
SET SQL_MODE='';
select pi(), pi ();
pi()	pi ()
3.141593	3.141593
select test.pi(), test.pi ();
test.pi()	test.pi ()
pie, my favorite desert.	pie, my favorite desert.
SET @@sql_mode=@save_sql_mode;
drop function pi;
drop function if exists test.database;
drop function if exists test.current_user;
drop function if exists test.md5;
create database nowhere;
use nowhere;
drop database nowhere;
SET @save_sql_mode=@@sql_mode;
SET SQL_MODE='IGNORE_SPACE';
select database(), database ();
database()	database ()
NULL	NULL
select current_user(), current_user ();
current_user()	current_user ()
root@localhost	root@localhost
select md5("aaa"), md5 ("aaa");
md5("aaa")	md5 ("aaa")
47bce5c74f589f4867dbd57e9ca9f808	47bce5c74f589f4867dbd57e9ca9f808
SET SQL_MODE='';
select database(), database ();
database()	database ()
NULL	NULL
select current_user(), current_user ();
current_user()	current_user ()
root@localhost	root@localhost
select md5("aaa"), md5 ("aaa");
md5("aaa")	md5 ("aaa")
47bce5c74f589f4867dbd57e9ca9f808	47bce5c74f589f4867dbd57e9ca9f808
use test;
create function `database`() returns varchar(50)
return "Stored function database";
Warnings:
Note	1578	This function 'database' has the same name as a native function.
create function `current_user`() returns varchar(50)
return "Stored function current_user";
Warnings:
Note	1578	This function 'current_user' has the same name as a native function.
create function md5(x varchar(50)) returns varchar(50)
return "Stored function md5";
Warnings:
Note	1578	This function 'md5' has the same name as a native function.
SET SQL_MODE='IGNORE_SPACE';
select database(), database ();
database()	database ()
test	test
select current_user(), current_user ();
current_user()	current_user ()
root@localhost	root@localhost
select md5("aaa"), md5 ("aaa");
md5("aaa")	md5 ("aaa")
47bce5c74f589f4867dbd57e9ca9f808	47bce5c74f589f4867dbd57e9ca9f808
select test.database(), test.database ();
test.database()	test.database ()
Stored function database	Stored function database
Warnings:
Note	1578	This function 'database' has the same name as a native function.
select test.current_user(), test.current_user ();
test.current_user()	test.current_user ()
Stored function current_user	Stored function current_user
Warnings:
Note	1578	This function 'current_user' has the same name as a native function.
select test.md5("aaa"), test.md5 ("aaa");
test.md5("aaa")	test.md5 ("aaa")
Stored function md5	Stored function md5
Warnings:
Note	1578	This function 'md5' has the same name as a native function.
SET SQL_MODE='';
select database(), database ();
database()	database ()
test	test
select current_user(), current_user ();
current_user()	current_user ()
root@localhost	root@localhost
select md5("aaa"), md5 ("aaa");
md5("aaa")	md5 ("aaa")
47bce5c74f589f4867dbd57e9ca9f808	47bce5c74f589f4867dbd57e9ca9f808
select test.database(), test.database ();
test.database()	test.database ()
Stored function database	Stored function database
select test.current_user(), test.current_user ();
test.current_user()	test.current_user ()
Stored function current_user	Stored function current_user
select test.md5("aaa"), test.md5 ("aaa");
test.md5("aaa")	test.md5 ("aaa")
Stored function md5	Stored function md5
SET @@sql_mode=@save_sql_mode;
drop function test.database;
drop function test.current_user;
drop function md5;
use test;
End of 5.1 tests
drop table t1,t2;
+33 −0
Original line number Diff line number Diff line
use test;
drop function if exists a;
drop function if exists x;
drop function if exists y;
create function a() returns int
return 1;
create function x() returns int
return 2;
Warnings:
Note	1578	This function 'x' has the same name as a native function.
create function y() returns int
return 3;
Warnings:
Note	1578	This function 'y' has the same name as a native function.
select a();
a()
1
select x();
ERROR 42000: Incorrect parameter count in the call to native function 'x'
select y();
ERROR 42000: Incorrect parameter count in the call to native function 'y'
select x(PointFromText("POINT(10 20)")), y(PointFromText("POINT(10 20)"));
x(PointFromText("POINT(10 20)"))	y(PointFromText("POINT(10 20)"))
10	20
select test.a(), test.x(), test.y();
test.a()	test.x()	test.y()
1	2	3
Warnings:
Note	1578	This function 'x' has the same name as a native function.
Note	1578	This function 'y' has the same name as a native function.
drop function a;
drop function x;
drop function y;
+16 −0
Original line number Diff line number Diff line
@@ -106,6 +106,22 @@ id select_type table type possible_keys key key_len ref rows Extra
1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	2	Using temporary; Using filesort
drop table t1;
End of 5.0 tests.
drop function if exists pi;
CREATE FUNCTION pi RETURNS STRING SONAME "should_not_parse.so";
ERROR HY000: This function 'pi' has the same name as a native function.
DROP FUNCTION IF EXISTS metaphon;
CREATE FUNCTION metaphon(a int) RETURNS int
return 0;
CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
ERROR HY000: Function 'metaphon' already exists
DROP FUNCTION metaphon;
CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
CREATE FUNCTION metaphon(a int) RETURNS int
return 0;
ERROR HY000: Function 'metaphon' already exists
CREATE FUNCTION test.metaphon(a int) RETURNS int
return 0;
ERROR HY000: Function 'metaphon' already exists
DROP FUNCTION metaphon;
DROP FUNCTION myfunc_double;
DROP FUNCTION myfunc_nonexist;
+106 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@
# Tests that uses 'goto' to into sp-goto.test (currently disabled)
# Tests that destroys system tables (e.g. mysql.proc) for error testing
#   go to sp-destruct.
# Tests that require --with-geometry go into sp_gis.test

use test;

@@ -2584,6 +2585,9 @@ begin
  end if;
end|

# so that from_unixtime() has a deterministic result
set time_zone='+03:00';

call bug3426(1000, @i)|
select @i, from_unixtime(@stamped_time, '%d-%m-%Y %h:%i:%s') as time|
call bug3426(NULL, @i)|
@@ -6585,6 +6589,108 @@ drop procedure proc_21462_b|

--echo End of 5.0 tests

--echo Begin of 5.1 tests

#
# BUG#18239: Possible to overload internal functions with stored functions
#

delimiter ;|

--disable_warnings
drop function if exists pi;
--enable_warnings

create function pi() returns varchar(50)
return "pie, my favorite desert.";

SET @save_sql_mode=@@sql_mode;

SET SQL_MODE='IGNORE_SPACE';

select pi(), pi ();
select test.pi(), test.pi ();

SET SQL_MODE='';

select pi(), pi ();
select test.pi(), test.pi ();

SET @@sql_mode=@save_sql_mode;

drop function pi;
# End of BUG#18239

#
# BUG#22619: Spaces considered harmful
#

--disable_warnings
drop function if exists test.database;
drop function if exists test.current_user;
drop function if exists test.md5;
--enable_warnings

create database nowhere;
use nowhere;
drop database nowhere;

SET @save_sql_mode=@@sql_mode;

SET SQL_MODE='IGNORE_SPACE';

select database(), database ();
select current_user(), current_user ();
select md5("aaa"), md5 ("aaa");

SET SQL_MODE='';

select database(), database ();
select current_user(), current_user ();
select md5("aaa"), md5 ("aaa");

use test;

create function `database`() returns varchar(50)
return "Stored function database";

create function `current_user`() returns varchar(50)
return "Stored function current_user";

create function md5(x varchar(50)) returns varchar(50)
return "Stored function md5";

SET SQL_MODE='IGNORE_SPACE';

select database(), database ();
select current_user(), current_user ();
select md5("aaa"), md5 ("aaa");

select test.database(), test.database ();
select test.current_user(), test.current_user ();
select test.md5("aaa"), test.md5 ("aaa");

SET SQL_MODE='';

select database(), database ();
select current_user(), current_user ();
select md5("aaa"), md5 ("aaa");

select test.database(), test.database ();
select test.current_user(), test.current_user ();
select test.md5("aaa"), test.md5 ("aaa");

SET @@sql_mode=@save_sql_mode;

drop function test.database;
drop function test.current_user;
drop function md5;

use test;
delimiter |;
# End of BUG#22619

--echo End of 5.1 tests

#
# BUG#NNNN: New bug synopsis
+35 −0
Original line number Diff line number Diff line
-- source include/have_geometry.inc

use test;

#
# BUG#21025: misleading error message when creating functions named 'x', or 'y'
#

--disable_warnings
drop function if exists a;
drop function if exists x;
drop function if exists y;
--enable_warnings

create function a() returns int
return 1;

create function x() returns int
return 2;

create function y() returns int
return 3;

select a();
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
select x();
--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
select y();
select x(PointFromText("POINT(10 20)")), y(PointFromText("POINT(10 20)"));
select test.a(), test.x(), test.y();

drop function a;
drop function x;
drop function y;
Loading