Bug#36788 Multiple funcs_1 'trig' tests are failing on vanilla builds

Fix for this bug and additional improvements/fixes
In detail:
- Remove unicode attribute from several columns
  (unicode properties were nowhere needed/tested)
  of the table tb3
  -> The runnability of these tests depends no more on
     the availibility of some optional collations.
- Use a table tb3 with the same layout for all
  engines to be tested and unify the engine name
  within the protocols.
  -> <engine>_trig_<abc>.result have the same content
- Do not load data into tb3 if these rows have no
  impact on result sets
- Add tests for NDB (they exist already in 5.1)
- "--replace_result" at various places because
  NDB variants of tests failed with "random" row
  order in results
  This fixes a till now unknown weakness within the
  funcs_1 NDB tests existing in 5.1 and 6.0
- Fix the expected result of ndb_trig_1011ext
  which suffered from Bug 32656
  + disable this test
- funcs_1 could be executed with the mysql-test-run.pl
  option "--reorder", which saves some runtime by
  optimizing server restarts.
  Runtimes on tmpfs (one attempt only):
  with    reorder 132 seconds
  without reorder 183 seconds
- Adjust two "check" statements within func_misc.test
  which were incorrect (We had one run with result set
  difference though the server worked good.)
- minor fixes in comments
This commit is contained in:
Matthias Leich mleich@mysql.com 2008-06-02 21:57:11 +02:00
commit 1544026443
59 changed files with 3170 additions and 449 deletions

View file

@ -4,6 +4,9 @@
# (test case numbering refer to requirement document TP v1.1)
#======================================================================
USE test;
--source suite/funcs_1/include/tb3.inc
# OBM - ToDo
############
# 1. Performace
@ -52,6 +55,7 @@ use test;
select @test_before, @test_after;
Insert into tb3 (f121, f122, f142, f144, f134)
values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1);
--sorted_result
select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
select @test_before, @test_after;
@ -63,6 +67,7 @@ use test;
tb3.f142 = @test_before,
tb3.f144 = @test_after
where tb3.f121 = 'Test 3.5.1.1';
--sorted_result
select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
select @test_before, @test_after;
@ -71,9 +76,11 @@ use test;
values ('Test 3.5.1.1', 'Second Row', 5, 6, 2);
set @test_before = 0;
set @test_after = 0;
--sorted_result
select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
select @test_before, @test_after;
Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2;
--sorted_result
select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
select @test_before, @test_after;
@ -211,7 +218,8 @@ let $message= Testcase 3.5.1.7: - need to fix;
--source include/show_msg.inc
drop table if exists t1;
eval create table t1 (f1 int, f2 char(25),f3 int) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 int, f2 char(25),f3 int) engine = $engine_type;
CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1
for each row set new.f3 = '14';
CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
@ -261,6 +269,7 @@ let $message= Testcase 3.5.1.8:;
--enable_warnings
create database trig_db;
use trig_db;
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 integer) engine = $engine_type;
# Can't create a trigger in a different database
@ -324,7 +333,9 @@ let $message= Testcase 3.5.1.?:;
drop table if exists t1;
drop table if exists t2;
--enable_warnings
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 char(50), f2 integer) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t2 (f1 char(50), f2 integer) engine = $engine_type;
create trigger trig before insert on t1
@ -366,14 +377,17 @@ let $message= Testcase 3.5.1.11:;
create database trig_db2;
create database trig_db3;
use trig_db1;
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 char(50), f2 integer) engine = $engine_type;
create trigger trig before insert on t1
for each row set new.f1 ='trig1', @test_var1='trig1';
use trig_db2;
--replace_result $engine_type <engine_to_be_used>
eval create table t2 (f1 char(50), f2 integer) engine = $engine_type;
create trigger trig before insert on t2
for each row set new.f1 ='trig2', @test_var2='trig2';
use trig_db3;
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 char(50), f2 integer) engine = $engine_type;
create trigger trig before insert on t1
for each row set new.f1 ='trig3', @test_var3='trig3';
@ -425,7 +439,9 @@ let $message= Testcase 3.5.2.1/2/3:;
create database trig_db1;
create database trig_db2;
use trig_db1;
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 char(50), f2 integer) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table trig_db2.t1 (f1 char(50), f2 integer) engine = $engine_type;
create trigger trig1_b before insert on t1
for each row set @test_var1='trig1_b';
@ -445,3 +461,4 @@ let $message= Testcase 3.5.2.1/2/3:;
--disable_warnings
drop database trig_db1;
drop database trig_db2;
DROP TABLE test.tb3;

View file

@ -1,9 +1,13 @@
#### suite/funcs_1/triggers/triggers_03.inc
#======================================================================
#
# Trigger Tests
# (test case numbering refer to requirement document TP v1.1)
#======================================================================
USE test;
--source suite/funcs_1/include/tb3.inc
--disable_abort_on_error
###########################################
@ -20,6 +24,7 @@ let $message= Testcase 3.5.3:;
--enable_warnings
create database priv_db;
use priv_db;
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 char(20)) engine= $engine_type;
create User test_noprivs@localhost;
@ -569,7 +574,9 @@ let $message=Testcase: 3.5.3.x:;
drop table if exists t2;
--enable_warnings
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 int) engine= $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t2 (f2 int) engine= $engine_type;
revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
@ -656,3 +663,5 @@ let $message=Testcase: 3.5.3.x:;
drop user test_noprivs;
--enable_warnings
use test;
drop table tb3;

View file

@ -4,6 +4,9 @@
# (test case numbering refer to requirement document TP v1.1)
#======================================================================
USE test;
--source suite/funcs_1/include/tb3.inc
--disable_abort_on_error
# General setup for Trigger tests
@ -43,7 +46,8 @@ let $message= Testcase 3.5.4.1:;
connection con1_super;
create database db_drop;
Use db_drop;
eval create table t1 (f1 char(30)) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 char(30)) engine = $engine_type;
grant INSERT, SELECT on db_drop.t1 to test_general;
Use db_drop;
Create trigger trg1 BEFORE INSERT on t1
@ -82,7 +86,8 @@ let $message= Testcase 3.5.4.2:;
--disable_warnings
drop table if exists t1_432 ;
--enable_warnings
eval create table t1_432 (f1 char (30)) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t1_432 (f1 char (30)) engine = $engine_type;
--error ER_TRG_DOES_NOT_EXIST
Drop trigger tr_does_not_exit;
#cleanup
@ -104,8 +109,10 @@ let $message= Testcase 3.5.4.3:;
drop table if exists t1_433 ;
drop table if exists t1_433a ;
--enable_warnings
eval create table t1_433 (f1 char (30)) engine=$engine_type;
eval create table t1_433a (f1a char (5)) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t1_433 (f1 char (30)) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t1_433a (f1a char (5)) engine = $engine_type;
CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row
set new.f1 = 'Trigger 3.5.4.3';
@ -141,7 +148,8 @@ let $message= Testcase 3.5.4.4:;
connection con1_super;
create database db_drop4;
Use db_drop4;
eval create table t1 (f1 char(30)) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 char(30)) engine = $engine_type;
grant INSERT, SELECT on db_drop4.t1 to test_general;
Create trigger trg4 BEFORE INSERT on t1
for each row set new.f1='Trigger 3.5.4.4';
@ -157,7 +165,8 @@ let $message= Testcase 3.5.4.4:;
where information_schema.triggers.trigger_name='trg4';
create database db_drop4;
Use db_drop4;
eval create table t1 (f1 char(30)) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 char(30)) engine = $engine_type;
grant INSERT, SELECT on db_drop4.t1 to test_general;
connection con1_general;
Insert into t1 values ('2nd Insert 3.5.4.4');
@ -181,7 +190,8 @@ let $message= Testcase 3.5.4.5:;
connection con1_super;
create database db_drop5;
Use db_drop5;
eval create table t1 (f1 char(50)) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 char(50)) engine = $engine_type;
grant INSERT, SELECT on t1 to test_general;
Create trigger trg5 BEFORE INSERT on t1
for each row set new.f1='Trigger 3.5.4.5';
@ -195,7 +205,8 @@ let $message= Testcase 3.5.4.5:;
select trigger_schema, trigger_name, event_object_table
from information_schema.triggers
where information_schema.triggers.trigger_name='trg5';
eval create table t1 (f1 char(50)) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 char(50)) engine = $engine_type;
grant INSERT, SELECT on t1 to test_general;
connection con1_general;
Insert into t1 values ('2nd Insert 3.5.4.5');
@ -281,7 +292,8 @@ let $message= Testcase 3.5.5.4:;
create database dbtest_one;
create database dbtest_two;
use dbtest_two;
eval create table t2 (f1 char(15)) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t2 (f1 char(15)) engine = $engine_type;
use dbtest_one;
--error ER_TRG_IN_WRONG_SCHEMA
create trigger trg4 before INSERT
@ -609,3 +621,4 @@ let $message= Testcase 3.5.7.17 (see Testcase 3.5.1.1);
drop user test_general;
drop user test_super@localhost;
DROP TABLE test.tb3;

View file

@ -4,6 +4,9 @@
# (test case numbering refer to requirement document TP v1.1)
#======================================================================
USE test;
--source suite/funcs_1/include/tb3.inc
# General setup for Trigger tests
let $message= Testcase: 3.5:;
--source include/show_msg.inc
@ -56,16 +59,19 @@ let $message= Testcase 3.5.8.3/4:;
grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general;
grant LOCK TABLES on db_test.* to test_general;
Use db_test;
--replace_result $engine_type <engine_to_be_used>
eval create table t1_i (
i120 char ascii not null DEFAULT b'101',
i136 smallint zerofill not null DEFAULT 999,
i144 int zerofill not null DEFAULT 99999,
i163 decimal (63,30)) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t1_u (
u120 char ascii not null DEFAULT b'101',
u136 smallint zerofill not null DEFAULT 999,
u144 int zerofill not null DEFAULT 99999,
u163 decimal (63,30)) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t1_d (
d120 char ascii not null DEFAULT b'101',
d136 smallint zerofill not null DEFAULT 999,
@ -549,4 +555,4 @@ let $message= Testcase 3.5.8.7;
drop user test_general;
drop user test_super@localhost;
DROP TABLE test.tb3;

View file

@ -4,6 +4,13 @@
# (test case numbering refer to requirement document TP v1.1)
#======================================================================
USE test;
--source suite/funcs_1/include/tb3.inc
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
eval
load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/memory_tb3.txt'
into table tb3;
#################################
####### Section 3.5.9 ###########
@ -313,4 +320,4 @@ let $message= Testcase 3.5.9.13:;
let $message= Testcase 3.5.9.14: (implied in previous tests);
--source include/show_msg.inc
DROP TABLE test.tb3;

View file

@ -4,6 +4,14 @@
# (test case numbering refer to requirement document TP v1.1)
#======================================================================
USE test;
--source suite/funcs_1/include/tb3.inc
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
eval
load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/memory_tb3.txt'
into table tb3;
--disable_abort_on_error
##############################################
@ -49,6 +57,7 @@ let $message= Testcase 3.5.10.1/2/3:;
Insert into vw11 (f122, f151) values ('Not in View', 3);
select f121, f122, f151, f163
from tb3 where f122 like 'Test 3.5.10.1/2/3%' order by f151;
--sorted_result
select f121, f122, f151, f163 from vw11;
select f121, f122, f151, f163
from tb3 where f122 like 'Not in View';
@ -57,6 +66,7 @@ let $message= Testcase 3.5.10.1/2/3:;
Update vw11 set f163=1;
select f121, f122, f151, f163 from tb3
where f122 like 'Test 3.5.10.1/2/3%' order by f151;
--sorted_result
select f121, f122, f151, f163 from vw11;
#Section 3.5.10.3
@ -65,6 +75,7 @@ let $message= Testcase 3.5.10.1/2/3:;
delete from vw11 where f151=1;
select f121, f122, f151, f163 from tb3
where f122 like 'Test 3.5.10.1/2/3%' order by f151;
--sorted_result
select f121, f122, f151, f163 from vw11;
Select @test_var as 'after delete';
@ -88,7 +99,8 @@ let $message= Testcase 3.5.10.1/2/3:;
let $message= Testcase 3.5.10.4:;
--source include/show_msg.inc
eval create table tb_load (f1 int, f2 char(25),f3 int) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table tb_load (f1 int, f2 char(25),f3 int) engine = $engine_type;
Create trigger trg4 before insert on tb_load
for each row set new.f3=-(new.f1 div 5), @counter= @counter+1;
@ -131,7 +143,8 @@ let $message= Testcase 3.5.10.6: (implemented in trig_frkey.test);
let $message= Testcase 3.5.10.extra:;
--source include/show_msg.inc
eval create table t1_sp (var136 tinyint, var151 decimal) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t1_sp (var136 tinyint, var151 decimal) engine = $engine_type;
create trigger trg before insert on t1_sp
for each row set @counter=@counter+1;
@ -203,12 +216,18 @@ let $message= Testcase y.y.y.2: Check for triggers starting triggers;
drop table if exists t3;
--enable_warnings
eval create table t1 (f1 integer) engine=$engine_type;
eval create table t2_1 (f1 integer) engine=$engine_type;
eval create table t2_2 (f1 integer) engine=$engine_type;
eval create table t2_3 (f1 integer) engine=$engine_type;
eval create table t2_4 (f1 integer) engine=$engine_type;
eval create table t3 (f1 integer) engine=$engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 integer) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t2_1 (f1 integer) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t2_2 (f1 integer) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t2_3 (f1 integer) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t2_4 (f1 integer) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t3 (f1 integer) engine = $engine_type;
insert into t1 values (1);
delimiter //;
@ -256,9 +275,13 @@ let $message= Testcase y.y.y.3: Circular trigger reference;
drop table if exists t3;
drop table if exists t4;
--enable_warnings
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 integer) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t2 (f2 integer) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t3 (f3 integer) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t4 (f4 integer) engine = $engine_type;
insert into t1 values (0);
@ -298,10 +321,11 @@ let $message= Testcase y.y.y.4: Recursive trigger/SP references;
--source include/show_msg.inc
set @sql_mode='traditional';
--replace_result $engine_type <engine_to_be_used>
eval create table t1_sp (
count integer,
var136 tinyint,
var151 decimal) engine=$engine_type;
var151 decimal) engine = $engine_type;
delimiter //;
create procedure trig_sp()
@ -353,7 +377,7 @@ set @sql_mode='traditional';
# Testcase: y.y.y.5:
# Checking rollback of nested trigger definitions
let $message= Testcase y.y.y.5: Roleback of nested trigger references;
let $message= Testcase y.y.y.5: Rollback of nested trigger references;
--source include/show_msg.inc
set @@sql_mode='traditional';
@ -364,10 +388,15 @@ let $message= Testcase y.y.y.5: Roleback of nested trigger references;
drop table if exists t3;
drop table if exists t4;
--enable_warnings
--replace_result $engine_type <engine_to_be_used>
eval create table t1 (f1 integer) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t2 (f2 integer) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t3 (f3 integer) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
eval create table t4 (f4 tinyint) engine = $engine_type;
--replace_result $engine_type <engine_to_be_used>
show create table t1;
insert into t1 values (1);
create trigger tr1 after insert on t1
@ -377,19 +406,18 @@ let $message= Testcase y.y.y.5: Roleback of nested trigger references;
create trigger tr3 after insert on t3
for each row insert into t4 (f4) values (new.f3+1000);
#lock tables t1 write, t2 write, t3 write, t4 write;
set autocommit=0;
start transaction;
# Bug#32656 NDB: Duplicate key error aborts transaction in handler.
# Doesn't talk back to SQL
--error ER_WARN_DATA_OUT_OF_RANGE
insert into t1 values (1);
commit;
select * from t1 order by f1;
select * from t2 order by f2;
select * from t3 order by f3;
#unlock tables;
#Cleanup
--disable_warnings
drop trigger tr1;
drop trigger tr2;
drop trigger tr3;
@ -397,5 +425,5 @@ let $message= Testcase y.y.y.5: Roleback of nested trigger references;
drop table t2;
drop table t3;
drop table t4;
--enable_warnings
DROP TABLE test.tb3;