~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
#======================================================================
2
#
3
# Trigger Tests 
4
# (test case numbering refer to requirement document TP v1.1) 
5
#======================================================================
6
7
--disable_abort_on_error
8
9
# General setup for Trigger tests
10
let $message= Testcase: 3.5:;
11
--source include/show_msg.inc
12
13
--disable_abort_on_error
14
15
	create User test_general@localhost;
16
	set password for test_general@localhost = password('PWD');
17
	revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
18
19
	create User test_super@localhost;
20
	set password for test_super@localhost = password('PWD');
21
	grant ALL on *.* to test_super@localhost with grant OPTION;
22
	--replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
23
	connect (con1_general,localhost,test_general,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
24
	--replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
25
	connect (con1_super,localhost,test_super,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
26
	connection default;
27
28
####################################
29
############ Section 3.5.4 #########
30
# Drop Trigger Checkes:            #
31
####################################
32
let $message= Testcase 3.5.4:;
33
--source include/show_msg.inc
34
35
	connection default;
36
	use test;
37
38
#Section 3.5.4.1
39
# Testcase: Ensure that the DROP TRIGGER statement cleanly drops its target trigger.
40
let $message= Testcase 3.5.4.1:;
41
--source include/show_msg.inc
42
43
	connection con1_super;
44
	create database db_drop;
45
	Use db_drop;
46
	eval create table t1 (f1 char(30)) engine=$engine_type;
47
	grant INSERT, SELECT on db_drop.t1 to test_general;
48
	Use db_drop;
49
	Create trigger trg1 BEFORE INSERT on t1 
50
		for each row set new.f1='Trigger 3.5.4.1';
51
	connection con1_general;
52
	Use db_drop;
53
	Insert into t1 values ('Insert error 3.5.4.1');
54
	Select * from t1 order by f1;
55
	connection con1_super;
56
	drop trigger trg1;
57
	select trigger_schema, trigger_name, event_object_table
58
		from information_schema.triggers order by trigger_name;
59
	connection con1_general;
60
	Insert into t1 values ('Insert no trigger 3.5.4.1');
61
	Select * from t1 order by f1;
62
63
#Cleanup
64
	--disable_warnings 
65
	connection con1_super;
66
        --disable_warnings
67
	--error 0,1360
68
	drop trigger trg1; 
69
	drop database if exists db_drop;
70
	revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
71
	--enable_warnings
72
73
#Section 3.5.4.2
74
# Test case: Ensure that DROP TRIGGER <trigger name> fails, with an appropriate error 
75
#            message, if the trigger name does not exist.
76
let $message= Testcase 3.5.4.2:;
77
--source include/show_msg.inc
78
79
	connection con1_super;
80
	create database db_drop2;
81
	Use db_drop2;
82
	--disable_warnings
83
	drop table if exists t1_432 ;
84
	--enable_warnings
85
	eval create table t1_432 (f1 char (30)) engine=$engine_type;
86
	--error 1360
87
	Drop trigger tr_does_not_exit;
88
#cleanup 
89
	--disable_warnings
90
	drop table if exists t1_432 ;
91
	drop database  if exists db_drop2;
92
	--enable_warnings
93
94
#Section 3.5.4.3
95
# Test case: Ensure that DROP TRIGGER <trigger name> fails, with an appropriate 
96
#            error message, if <trigger name> is not a qualified name.
97
let $message= Testcase 3.5.4.3:;
98
--source include/show_msg.inc
99
100
	connection con1_super;
101
	create database db_drop3;
102
	Use db_drop3;
103
	--disable_warnings
104
	drop table if exists t1_433 ;
105
	drop table if exists t1_433a ;
106
	--enable_warnings
107
	eval create table t1_433 (f1 char (30)) engine=$engine_type;
108
	eval create table t1_433a (f1a char (5)) engine=$engine_type;
109
110
	CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row 
111
		set new.f1 = 'Trigger 3.5.4.3';
112
113
# Using table 
114
	--error 1064
115
	Drop trigger t1.433.trg3;
116
117
# Using database.table 
118
	--error 1064
119
	Drop trigger db_drop3.t1.433.trg3;
120
121
# wrong database
122
	--error 1360
123
	Drop trigger mysql.trg3;
124
125
# database does not exist
126
	--error 1360
127
	Drop trigger tbx.trg3;
128
129
#cleanup 
130
	Drop trigger db_drop3.trg3;
131
	drop table if exists t1_433;
132
	drop table if exists t1_433a;
133
	drop database if exists db_drop3;
134
135
#Section 3.5.4.4
136
# Test case: Ensure that when a database is dropped, all triggers created within 
137
#            that database are also cleanly dropped.
138
let $message= Testcase 3.5.4.4:;
139
--source include/show_msg.inc
140
141
	connection con1_super;
142
	create database db_drop4;
143
	Use db_drop4;
144
	eval create table t1 (f1 char(30)) engine=$engine_type;
145
	grant INSERT, SELECT on db_drop4.t1 to test_general;
146
	Create trigger trg4 BEFORE INSERT on t1 
147
		for each row set new.f1='Trigger 3.5.4.4';
148
	connection con1_general;
149
	Use db_drop4;
150
	Insert into t1 values ('Insert 3.5.4.4');
151
	Select * from t1;
152
	connection con1_super;
153
	Drop database db_drop4;
154
	Show databases;
155
	select trigger_schema, trigger_name, event_object_table
156
		from information_schema.triggers
157
		where information_schema.triggers.trigger_name='trg4';
158
	create database db_drop4;
159
	Use db_drop4;
160
	eval create table t1 (f1 char(30)) engine=$engine_type;
161
	grant INSERT, SELECT on db_drop4.t1 to test_general;
162
	connection con1_general;
163
	Insert into t1 values ('2nd Insert 3.5.4.4');
164
	Select * from t1;
165
166
#Cleanup
167
	connection con1_super;
168
        --disable_warnings
169
	--error 1360
170
	drop trigger trg4; 
171
	drop database if exists db_drop4;
172
	--enable_warnings
173
	revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
174
175
#Section 3.5.4.5
176
# Test case: Ensure that when a table is dropped, all triggers for which it is the 
177
#            subject table are also cleanly dropped.
178
let $message= Testcase 3.5.4.5:;
179
--source include/show_msg.inc
180
181
	connection con1_super;
182
	create database db_drop5;
183
	Use db_drop5;
184
	eval create table t1 (f1 char(50)) engine=$engine_type;
185
	grant INSERT, SELECT on t1 to test_general;
186
	Create trigger trg5 BEFORE INSERT on t1 
187
		for each row set new.f1='Trigger 3.5.4.5';
188
	connection con1_general;
189
	Use db_drop5;
190
	Insert into t1 values ('Insert 3.5.4.5');
191
	Select * from t1;
192
	connection con1_super;
193
	Drop table t1;
194
	Show tables;
195
	select trigger_schema, trigger_name, event_object_table
196
		from information_schema.triggers
197
		where information_schema.triggers.trigger_name='trg5';
198
	eval create table t1 (f1 char(50)) engine=$engine_type;
199
	grant INSERT, SELECT on t1 to test_general;
200
	connection con1_general;
201
	Insert into t1 values ('2nd Insert 3.5.4.5');
202
	Select * from t1;
203
204
#Cleanup
205
	connection con1_super;
206
        --disable_warnings
207
	--error 1360
208
	drop trigger trg5; 
209
	drop database if exists db_drop5;
210
	--enable_warnings
211
	revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
212
213
214
##################################
215
######### Section 3.5.5 ##########
216
# Checks on the Subject Table    #
217
##################################
218
219
let $message= Testcase 3.5.5:;
220
--source include/show_msg.inc
221
222
	connection default;
223
	use test;
224
225
#Section 3.5.5.1
226
# Test case: Ensure that, if CREATE TRIGGER is executed with a non-existent 
227
#            subject table, the statement fails with an appropriate error message.
228
let $message= Testcase 3.5.5.1:;
229
--source include/show_msg.inc
230
231
	--error 1146
232
	Create trigger trg1 before INSERT on t100 for each row set new.f2=1000;
233
234
235
#Section 3.5.5.2
236
# Test case: Ensure that, if CREATE TRIGGER is executed with a temporary table 
237
#           as the subject table, the statement fails with an appropriate error message.
238
let $message= Testcase 3.5.5.2:;
239
--source include/show_msg.inc
240
	
241
	Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned);
242
	
243
	--error 1361
244
	Create trigger trg2 before INSERT 
245
		on t1_temp for each row set new.f2=9999;
246
247
#Cleanup
248
	--disable_warnings 
249
	drop table t1_temp;
250
	--enable_warnings
251
252
253
#Section 3.5.5.3
254
# Test case: Ensure that, if CREATE TRIGGER is executed with a view as the subject 
255
#            table, the statement fails with an appropriate error message.
256
let $message= Testcase 3.5.5.3:;
257
--source include/show_msg.inc
258
259
	Create view vw3 as select f118 from tb3;
260
	
261
# OBN Not sure why the server is returning error 1347
262
	--error 1347
263
	Create trigger trg3 before INSERT 
264
		on vw3 for each row set new.f118='s';
265
266
#Cleanup
267
	--disable_warnings 
268
	drop view vw3;
269
	--enable_warnings
270
271
272
#Section 3.5.5.4
273
# Test case: Ensure that, if CREATE TRIGGER is executed with a table that resides 
274
#            in a different database than in which the trigger will reside, the 
275
#            statement fails with an appropriate error message; that is, ensure that
276
#            the trigger and its subject table must reside in the same database.
277
let $message= Testcase 3.5.5.4:;
278
--source include/show_msg.inc
279
280
	connection con1_super;
281
	create database dbtest_one;
282
	create database dbtest_two;
283
	use dbtest_two;
284
	eval create table t2 (f1 char(15)) engine=$engine_type;
285
	use dbtest_one;
286
	--error 1435
287
	create trigger trg4 before INSERT
288
		on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4';
289
	grant INSERT, SELECT on dbtest_two.t2 to test_general;
290
	grant SELECT on dbtest_one.* to test_general;
291
	connection con1_general;
292
	use dbtest_two;
293
	Insert into t2 values ('1st Insert 3.5.5.4');
294
	Select * from t2;
295
	use dbtest_one;
296
	Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4');
297
	Select * from dbtest_two.t2 order by f1;
298
299
#Cleanup
300
	connection con1_super;
301
	--disable_warnings 
302
	revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
303
	DROP DATABASE if exists dbtest_one;
304
	drop database if EXISTS dbtest_two;
305
	--enable_warnings
306
307
#####################################
308
########### Section 3.5.6 ###########
309
# Check on the Trigger Action Time  #
310
#####################################
311
312
let $message= Testcase 3.5.6:;
313
--source include/show_msg.inc
314
315
	connection default;
316
	use test;
317
318
#Section 3.5.6.1
319
# Test case: Ensure that a trigger definition can specify a trigger action time of BEFORE. 
320
# See section 3.5.1.1
321
let $message= Testcase 3.5.6.1 (see Testcase 3.5.1.1);
322
--source include/show_msg.inc
323
324
#Section 3.5.6.2
325
# Test case: Ensure that a trigger definition can specify a trigger action time of AFTER.
326
# See section 3.5.1.1
327
let $message= Testcase 3.5.6.2 (see Testcase 3.5.1.1);
328
--source include/show_msg.inc
329
330
#Section 3.5.6.3
331
# Test case: Ensure that a trigger definition that specifies a trigger action 
332
#            time that is not either BEFORE or AFTER fails, with an appropriate 
333
#            error message, at CREATE TRIGGER time.
334
let $message= Testcase 3.5.6.3:;
335
--source include/show_msg.inc
336
337
	--error 1064
338
	Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25;
339
	--error 1064
340
	Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15;
341
342
#Cleanup 
343
# OBN - Although none of the above should have been created we should do a cleanup
344
#       since if they have been created, not dropping them will affect following
345
#       tests.
346
	--disable_warnings
347
	--error 0, 1360
348
	drop trigger tb3.trg3_1;
349
	--error 0, 1360
350
	drop trigger tb3.trg3_2;
351
	--enable_warnings
352
353
#Section 3.5.6.4
354
# Test case: Ensure that a trigger defined with a trigger action time of BEFORE 
355
#            always executes its triggered action immediately before the trigger event. 
356
# See section 3.5.1.1
357
let $message= Testcase 3.5.6.4 (see Testcase 3.5.1.1);
358
--source include/show_msg.inc
359
360
#Section 3.5.6.5
361
# Test case: Ensure that a trigger defined with a trigger action time of AFTER 
362
#            always executes its triggered action immediately after the trigger event.
363
let $message= Testcase 3.5.6.5 (see Testcase 3.5.1.1);
364
--source include/show_msg.inc
365
366
#############################
367
####### Section 3.5.7 #######
368
# Check on Trigger Event    #
369
#############################
370
371
#Section 3.5.7.1
372
#Test case: Ensure that a trigger definition can specify a trigger event of INSERT.
373
let $message= Testcase 3.5.7.1 (see Testcase 3.5.1.1);
374
--source include/show_msg.inc
375
	
376
#Section 3.5.7.2
377
# Test case: Ensure that a trigger definition can specify a trigger event of UPDATE.
378
let $message= Testcase 3.5.7.2 (see Testcase 3.5.1.1);
379
--source include/show_msg.inc
380
381
#Section 3.5.7.3
382
# Test case: Ensure that a trigger definition can specify a trigger event of DELETE.
383
let $message= Testcase 3.5.7.3 (see Testcase 3.5.1.1);
384
--source include/show_msg.inc
385
386
#Section 3.5.7.4
387
# Test case: Ensure that a trigger definition that specifies a trigger event that 
388
#            is not either INSERT, UPDATE or DELETE fails, with an appropriate error 
389
#            message, at CREATE TRIGGER time.
390
let $message= Testcase 3.5.7.4:;
391
--source include/show_msg.inc
392
393
	--error 1064
394
	Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5;
395
	--error 1064
396
	Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1;
397
398
#Cleanup 
399
# OBN - Although none of the above should have been created we should do a cleanup
400
#       since if they have been created, not dropping them will affect following
401
#       tests.
402
	--disable_warnings
403
	--error 0, 1360
404
	drop trigger tb3.trg4_1;
405
	--error 0, 1360
406
	drop trigger tb3.trg4_2;
407
	--enable_warnings
408
409
#Section 3.5.7.5 / 3.5.7.6 
410
# Test case: Ensure that it is not possible to create multiple BEFORE INSERT triggers 
411
#            on the same table, even if the triggers have different names / different
412
#            triggered actions.
413
let $message= Testcase 3.5.7.5 / 3.5.7.6:;
414
--source include/show_msg.inc
415
416
	Create trigger trg5_1 BEFORE INSERT 
417
		on tb3 for each row set new.f122='Trigger1 3.5.7.5/6';
418
419
	--error ER_NOT_SUPPORTED_YET 
420
	Create trigger trg5_2 BEFORE INSERT 
421
		on tb3 for each row set new.f122='Trigger2 3.5.7.5';
422
423
	Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5');
424
	Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
425
	update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6';
426
	Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
427
428
#Cleanup
429
	--disable_warnings 
430
	drop trigger trg5_1;
431
	--error 0, 1360
432
	drop trigger trg5_2;
433
	delete from tb3 where f121='Test 3.5.7.5/6';
434
	--enable_warnings
435
436
437
#Section 3.5.7.7 / 3.5.7.8 
438
# Test case: Ensure that it is not possible to create multiple AFTER INSERT triggers 
439
#            on the same table, even if the triggers have different names / different
440
#            triggered actions.
441
let $message= Testcase 3.5.7.7 / 3.5.7.8:;
442
--source include/show_msg.inc
443
	
444
	set @test_var='Before trig 3.5.7.7';
445
	Create trigger trg6_1 AFTER INSERT 
446
		on tb3 for each row set @test_var='Trigger1 3.5.7.7/8';
447
448
	--error ER_NOT_SUPPORTED_YET 
449
	Create trigger trg6_2 AFTER INSERT 
450
		on tb3 for each row set @test_var='Trigger2 3.5.7.7';
451
452
	select @test_var;
453
	Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7');
454
	Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
455
	select @test_var;
456
	update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8';
457
	Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
458
	select @test_var;
459
460
#Cleanup
461
	--disable_warnings 
462
	drop trigger trg6_1;
463
	--error 0, 1360
464
	drop trigger trg6_2;
465
	delete from tb3 where f121='Test 3.5.7.7/8';	
466
	--enable_warnings
467
468
469
#Section 3.5.7.9 / 3.5.7.10
470
# Test case: Ensure that it is not possible to create multiple BEFORE UPDATE triggers 
471
#            on the same table, even if the triggers have different names / different 
472
#            triggered actions.
473
let $message= Testcase 3.5.7.9/10:;
474
--source include/show_msg.inc
475
476
	Create trigger trg7_1 BEFORE UPDATE 
477
		on tb3 for each row set new.f122='Trigger1 3.5.7.9/10';
478
479
	--error ER_NOT_SUPPORTED_YET 
480
	Create trigger trg7_2 BEFORE UPDATE 
481
		on tb3 for each row set new.f122='Trigger2 3.5.7.9';
482
483
	Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9');
484
	Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
485
	update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10';
486
	Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
487
488
#Cleanup
489
	--disable_warnings 
490
	drop trigger trg7_1;
491
	--error 0, 1360
492
	drop trigger trg7_2;
493
	delete from tb3 where f121='Test 3.5.7.9/10';	
494
495
#Section 3.5.7.11 / 3.5.7.12
496
# Test case: Ensure that it is not possible to create multiple AFTER UPDATE triggers 
497
#            on the same table, even if the triggers have different names / different
498
#            triggered actions. 
499
let $message= Testcase 3.5.7.11/12:;
500
--source include/show_msg.inc
501
502
	set @test_var='Before trig 3.5.7.11';
503
	Create trigger trg8_1 AFTER UPDATE 
504
		on tb3 for each row set @test_var='Trigger 3.5.7.11/12';
505
506
	--error ER_NOT_SUPPORTED_YET 
507
	Create trigger trg8_2 AFTER UPDATE 
508
		on tb3 for each row set @test_var='Trigger2 3.5.7.11';
509
510
511
	select @test_var;
512
	Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12');
513
	select @test_var;
514
	Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
515
	update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12';
516
	Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
517
	select @test_var;
518
	delete from tb3 where f121='Test 3.5.7.11/12';
519
520
#Cleanup
521
	--disable_warnings 
522
	drop trigger trg8_1;
523
	--error 0, 1360
524
	drop trigger trg8_2;
525
	delete from tb3 where f121='Test 3.5.7.11/12';	
526
527
#Section 3.5.7.13 / 3.5.7.14
528
# Test case: Ensure that it is not possible to create multiple BEFORE DELETE triggers 
529
#            on the same table, even if the triggers have different names / different
530
#            triggered actions.
531
let $message= Testcase 3.5.7.13/14:;
532
--source include/show_msg.inc
533
534
	set @test_var=1;
535
	Create trigger trg9_1 BEFORE DELETE 
536
		on tb3 for each row set @test_var=@test_var+1;
537
538
	--error ER_NOT_SUPPORTED_YET
539
	Create trigger trg9_2 BEFORE DELETE 
540
		on tb3 for each row set @test_var=@test_var+10;
541
542
	select @test_var;
543
	Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13');
544
	Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
545
	select @test_var;
546
	delete from tb3 where f121='Test 3.5.7.13/14';	
547
	Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
548
	select @test_var;
549
	delete from tb3 where f121='Test 3.5.7.13/14';	
550
	select @test_var;
551
552
#Cleanup
553
	--disable_warnings 
554
	drop trigger trg9_1;
555
	--error 0, 1360
556
	drop trigger trg9_2;
557
	delete from tb3 where f121='Test 3.5.7.13/14';	
558
559
#Section 3.5.7.15 / 3.5.7.16
560
# Test case: Ensure that it is not possible to create multiple AFTER DELETE triggers 
561
#            on the same table, even if the triggers have different names / different 
562
#            triggered actions.
563
let $message= Testcase 3.5.7.15/16:;
564
--source include/show_msg.inc
565
	
566
	set @test_var=1;
567
	Create trigger trg_3_406010_1 AFTER DELETE 
568
		on tb3 for each row set @test_var=@test_var+5;
569
570
	--error ER_NOT_SUPPORTED_YET 
571
	Create trigger trg_3_406010_2 AFTER DELETE 
572
		on tb3 for each row set @test_var=@test_var+50;
573
574
	--error 1359 
575
	Create trigger trg_3_406010_1 AFTER INSERT 
576
		on tb3 for each row set @test_var=@test_var+1;
577
578
	select @test_var;
579
	Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16');
580
	Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
581
	select @test_var;
582
	delete from tb3 where f121='Test 3.5.7.15/16';	
583
	Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
584
	select @test_var;
585
	delete from tb3 where f121='Test 3.5.7.15/16';	
586
	select @test_var;
587
588
#Cleanup
589
	--disable_warnings 
590
	drop trigger trg_3_406010_1;
591
	--error 0, 1360
592
	drop trigger trg_3_406010_2;
593
	delete from tb3 where f121='Test 3.5.7.15/16';	
594
	--enable_warnings
595
596
597
#Section 3.5.7.17
598
# Test case: Ensure that it is possible to have a BEFORE INSERT, an AFTER INSERT, 
599
#            a BEFORE UPDATE, an AFTER UPDATE, a BEFORE DELETE, and an AFTER DELETE 
600
#            trigger on the same table; that is, ensure that every persistent base 
601
#            table may be the subject table for exactly six triggers
602
let $message= Testcase 3.5.7.17 (see Testcase 3.5.1.1);
603
--source include/show_msg.inc
604
605
606
# Cleanup section 3.5
607
	connection default;
608
	drop user test_general@localhost;
609
	drop user test_general;
610
	drop user test_super@localhost;
611