blob: 01e05246d3ef0f4a4eeb0c14c05b0c8f90e40b7f (
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
#
# Stored PROCEDURE error tests
#
# Make sure we don't have any procedures left.
delete from mysql.proc;
delimiter |;
# This should give three syntax errors (sometimes crashed; bug #643)
# (Unfortunately, this is not a 100% test, on some platforms this
# passed despite the bug.)
--error 1064
create procedure syntaxerror(t int)|
--error 1064
create procedure syntaxerror(t int)|
--error 1064
create procedure syntaxerror(t int)|
# Check that we get the right error, i.e. UDF declaration parses correctly,
# but foo.so doesn't exist.
# QQ This generates an error message containing a misleading errno which
# might vary between systems (it usually doesn't have anything to do with
# the actual failing dlopen()).
#--error 1126
#create function foo returns real soname "foo.so"|
create procedure proc1()
set @x = 42|
create function func1() returns int
return 42|
# Can't create recursively
--error 1273
create procedure foo()
create procedure bar() set @x=3|
--error 1273
create procedure foo()
create function bar() returns double return 2.3|
# Already exists
--error 1274
create procedure proc1()
set @x = 42|
--error 1274
create function func1() returns int
return 42|
drop procedure proc1|
drop function func1|
# Does not exist
--error 1275
alter procedure foo|
--error 1275
alter function foo|
--error 1275
drop procedure foo|
--error 1275
drop function foo|
--error 1275
call foo()|
drop procedure if exists foo|
# LEAVE/ITERATE with no match
--error 1278
create procedure foo()
foo: loop
leave bar;
end loop|
--error 1278
create procedure foo()
foo: loop
iterate bar;
end loop|
# Redefining label
--error 1279
create procedure foo()
foo: loop
foo: loop
set @x=2;
end loop foo;
end loop foo|
# End label mismatch
--error 1280
create procedure foo()
foo: loop
set @x=2;
end loop bar|
# Referring to undef variable
--error 1281
create procedure foo(out x int)
begin
declare y int;
set x = y;
end|
# We require INTO in SELECTs for some older clients (as mysql and mysqltest,
# for now).
create procedure foo()
begin
select name from mysql.proc;
select type from mysql.proc;
end|
--error 1282
call foo()|
drop procedure foo|
# RETURN in FUNCTION only
--error 1283
create procedure foo()
return 42|
# Doesn't allow queries in FUNCTIONs (for now :-( )
--error 1284
create function foo() returns int
begin
declare x int;
select max(c) into x from test.t;
return x;
end|
# Wrong number of arguments
create procedure p(x int)
insert into test.t1 values (x)|
create function f(x int) returns int
return x+42|
--error 1288
call p()|
--error 1288
call p(1, 2)|
--error 1288
select f()|
--error 1288
select f(1, 2)|
drop procedure p|
drop function f|
delimiter ;|
|