blob: 448a571fa11c9f3e17f4f444214eebf61debcd41 (
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 1270
create procedure foo()
create procedure bar() set @x=3|
--error 1270
create procedure foo()
create function bar() returns double return 2.3|
# Already exists
--error 1271
create procedure proc1()
set @x = 42|
--error 1271
create function func1() returns int
return 42|
drop procedure proc1|
drop function func1|
# Does not exist
--error 1272
alter procedure foo|
--error 1272
alter function foo|
--error 1272
drop procedure foo|
--error 1272
drop function foo|
--error 1272
call foo()|
drop procedure if exists foo|
# LEAVE/ITERATE with no match
--error 1275
create procedure foo()
foo: loop
leave bar;
end loop|
--error 1275
create procedure foo()
foo: loop
iterate bar;
end loop|
# Redefining label
--error 1276
create procedure foo()
foo: loop
foo: loop
set @x=2;
end loop foo;
end loop foo|
# End label mismatch
--error 1277
create procedure foo()
foo: loop
set @x=2;
end loop bar|
# Referring to undef variable
--error 1278
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 1279
call foo()|
drop procedure foo|
# RETURN in FUNCTION only
--error 1280
create procedure foo()
return 42|
# Doesn't allow queries in FUNCTIONs (for now :-( )
--error 1281
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 1285
call p()|
--error 1285
call p(1, 2)|
--error 1285
select f()|
--error 1285
select f(1, 2)|
drop procedure p|
drop function f|
delimiter ;|
|