summaryrefslogtreecommitdiffstats
path: root/mysql-test/main/init_connect.result
blob: 876a6a14b4e5f725f12401d262046a12585ec5e9 (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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
connect  con0,localhost,root,,;
connection con0;
select hex(@a);
hex(@a)
NULL
connect  con1,localhost,user_1,,"*NO-ONE*";
connection con1;
select hex(@a);
hex(@a)
610063
connection con0;
set global init_connect="set @a=2;set @b=3";
connect  con2,localhost,user_1,,"*NO-ONE*";
connection con2;
select @a, @b;
@a	@b
2	3
connection con0;
set GLOBAL init_connect=DEFAULT;
connect  con3,localhost,user_1,,"*NO-ONE*";
connection con3;
select @a;
@a
NULL
connection con0;
set global init_connect="drop table if exists t1; create table t1(a char(10));\
insert into t1 values ('\0');insert into t1 values('abc')";
create user 'user_1'@'localhost';
GRANT DROP,CREATE,SELECT,INSERT ON test.* TO 'user_1'@'localhost';
connect  con4,localhost,user_1,,test;
connection con4;
select hex(a) from t1;
hex(a)
00
616263
connection con0;
set GLOBAL init_connect="adsfsdfsdfs";
connect  con5,localhost,user_1,,test;
connection con5;
select @a;
ERROR 08S01: Aborted connection to db: 'test' user: 'user_1' host: 'localhost' (init_connect command failed)
select @a;
Got one of the listed errors
connection con0;
drop table t1;
disconnect con1;
disconnect con2;
disconnect con3;
disconnect con4;
disconnect con5;
drop user 'user_1'@'localhost';
End of 4.1 tests
create table t1 (x int);
insert into t1 values (3), (5), (7);
create table t2 (y int);
create user mysqltest1@localhost;
grant all privileges on test.* to mysqltest1@localhost;
set global init_connect="create procedure p1() select * from t1";
connect  con1,localhost,mysqltest1,,test;
connection con1;
call p1();
x
3
5
7
drop procedure p1;
connection con0;
disconnect con1;
set global init_connect="create procedure p1(x int)\
begin\
  select count(*) from t1;\
  select * from t1;\
  set @x = x;
end";
connect  con1,localhost,mysqltest1,,test;
connection con1;
call p1(42);
count(*)
3
x
3
5
7
select @x;
@x
42
connection con0;
disconnect con1;
set global init_connect="call p1(4711)";
connect  con1,localhost,mysqltest1,,test;
connection con1;
select @x;
@x
4711
connection con0;
disconnect con1;
set global init_connect="drop procedure if exists p1";
connect  con1,localhost,mysqltest1,,test;
connection con1;
call p1();
ERROR 42000: PROCEDURE test.p1 does not exist
connection con0;
disconnect con1;
create procedure p1(out sum int)
begin
declare n int default 0;
declare c cursor for select * from t1;
declare exit handler for not found
begin
close c;
set sum = n;
end;
open c;
loop
begin
declare x int;
fetch c into x;
if x > 3 then
set n = n + x;
end if;
end;
end loop;
end|
set global init_connect="call p1(@sum)";
connect  con1,localhost,mysqltest1,,test;
connection con1;
select @sum;
@sum
12
connection con0;
disconnect con1;
drop procedure p1;
create procedure p1(tbl char(10), v int)
begin
set @s = concat('insert into ', tbl, ' values (?)');
set @v = v;
prepare stmt1 from @s;
execute stmt1 using @v;
deallocate prepare stmt1;
end|
set global init_connect="call p1('t1', 11)";
connect  con1,localhost,mysqltest1,,test;
connection con1;
select * from t1;
x
3
5
7
11
connection con0;
disconnect con1;
drop procedure p1;
create function f1() returns int
begin
declare n int;
select count(*) into n from t1;
return n;
end|
set global init_connect="set @x = f1()";
connect  con1,localhost,mysqltest1,,test;
connection con1;
select @x;
@x
4
connection con0;
disconnect con1;
set global init_connect="create view v1 as select f1()";
connect  con1,localhost,mysqltest1,,test;
connection con1;
select * from v1;
f1()
4
connection con0;
disconnect con1;
set global init_connect="drop view v1";
connect  con1,localhost,mysqltest1,,test;
connection con1;
select * from v1;
ERROR 42S02: Table 'test.v1' doesn't exist
connection con0;
disconnect con1;
drop function f1;
create trigger trg1
after insert on t2
for each row
insert into t1 values (new.y);
set global init_connect="insert into t2 values (13), (17), (19)";
connect  con1,localhost,mysqltest1,,test;
connection con1;
select * from t1;
x
3
5
7
11
13
17
19
connection default;
disconnect con0;
disconnect con1;
drop trigger trg1;
set global init_connect="set @a='a\\0c'";
revoke all privileges, grant option from mysqltest1@localhost;
drop user mysqltest1@localhost;
drop table t1, t2;