mirror of
https://github.com/MariaDB/server.git
synced 2025-07-18 23:03:28 +03:00
into five.local.lan:/work/merge/mysql-5.1-Bug Addditional manual fixes will be needed. BitKeeper/deleted/.del-triggers_master.test: Auto merged mysql-test/std_data/funcs_1/innodb_tb1.txt: Auto merged mysql-test/std_data/funcs_1/innodb_tb2.txt: Auto merged mysql-test/std_data/funcs_1/innodb_tb3.txt: Auto merged mysql-test/std_data/funcs_1/innodb_tb4.txt: Auto merged mysql-test/std_data/funcs_1/memory_tb1.txt: Auto merged mysql-test/std_data/funcs_1/memory_tb2.txt: Auto merged mysql-test/std_data/funcs_1/memory_tb3.txt: Auto merged mysql-test/std_data/funcs_1/memory_tb4.txt: Auto merged mysql-test/std_data/funcs_1/myisam_tb1.txt: Auto merged mysql-test/std_data/funcs_1/myisam_tb2.txt: Auto merged mysql-test/std_data/funcs_1/myisam_tb3.txt: Auto merged mysql-test/std_data/funcs_1/myisam_tb4.txt: Auto merged mysql-test/std_data/funcs_1/t3.txt: Auto merged mysql-test/std_data/funcs_1/t4.txt: Auto merged mysql-test/std_data/funcs_1/t7.txt: Auto merged mysql-test/std_data/funcs_1/t9.txt: Auto merged mysql-test/suite/funcs_1/README.txt: Auto merged mysql-test/suite/funcs_1/datadict/datadict_bug_12777.inc: Auto merged mysql-test/suite/funcs_1/include/innodb_tb1.inc: Auto merged mysql-test/suite/funcs_1/include/innodb_tb2.inc: Auto merged mysql-test/suite/funcs_1/include/innodb_tb3.inc: Auto merged mysql-test/suite/funcs_1/include/innodb_tb4.inc: Auto merged mysql-test/suite/funcs_1/include/memory_tb1.inc: Auto merged mysql-test/suite/funcs_1/include/memory_tb2.inc: Auto merged mysql-test/suite/funcs_1/include/memory_tb3.inc: Auto merged mysql-test/suite/funcs_1/include/memory_tb4.inc: Auto merged mysql-test/suite/funcs_1/include/myisam_tb1.inc: Auto merged mysql-test/suite/funcs_1/include/myisam_tb2.inc: Auto merged mysql-test/suite/funcs_1/include/myisam_tb3.inc: Auto merged mysql-test/suite/funcs_1/include/myisam_tb4.inc: Auto merged mysql-test/suite/funcs_1/include/sp_tb.inc: Auto merged mysql-test/suite/funcs_1/r/innodb_storedproc_02.result: Auto merged mysql-test/suite/funcs_1/r/innodb_storedproc_03.result: Auto merged mysql-test/suite/funcs_1/r/innodb_storedproc_06.result: Auto merged mysql-test/suite/funcs_1/r/innodb_storedproc_07.result: Auto merged mysql-test/suite/funcs_1/r/innodb_storedproc_08.result: Auto merged mysql-test/suite/funcs_1/r/innodb_storedproc_10.result: Auto merged mysql-test/suite/funcs_1/r/innodb_trig_0102.result: Auto merged mysql-test/suite/funcs_1/r/innodb_trig_0407.result: Auto merged mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result: Auto merged mysql-test/suite/funcs_1/r/innodb_trig_frkey.result: Auto merged mysql-test/suite/funcs_1/r/innodb_views.result: Auto merged mysql-test/suite/funcs_1/r/is_columns_innodb.result: Auto merged mysql-test/suite/funcs_1/r/is_columns_memory.result: Auto merged mysql-test/suite/funcs_1/r/is_columns_myisam.result: Auto merged mysql-test/suite/funcs_1/r/is_tables_ndb.result: Auto merged mysql-test/suite/funcs_1/r/memory_storedproc_02.result: Auto merged mysql-test/suite/funcs_1/r/memory_storedproc_03.result: Auto merged mysql-test/suite/funcs_1/r/memory_storedproc_06.result: Auto merged mysql-test/suite/funcs_1/r/memory_storedproc_07.result: Auto merged mysql-test/suite/funcs_1/r/memory_storedproc_08.result: Auto merged mysql-test/suite/funcs_1/r/memory_storedproc_10.result: Auto merged mysql-test/suite/funcs_1/r/memory_trig_0102.result: Auto merged mysql-test/suite/funcs_1/r/memory_trig_0407.result: Auto merged mysql-test/suite/funcs_1/r/memory_trig_1011ext.result: Auto merged mysql-test/suite/funcs_1/r/memory_views.result: Auto merged mysql-test/suite/funcs_1/r/myisam_storedproc_02.result: Auto merged mysql-test/suite/funcs_1/r/myisam_storedproc_03.result: Auto merged mysql-test/suite/funcs_1/r/myisam_storedproc_06.result: Auto merged mysql-test/suite/funcs_1/r/myisam_storedproc_07.result: Auto merged mysql-test/suite/funcs_1/r/myisam_storedproc_08.result: Auto merged mysql-test/suite/funcs_1/r/myisam_storedproc_10.result: Auto merged mysql-test/suite/funcs_1/r/myisam_trig_0102.result: Auto merged mysql-test/suite/funcs_1/r/myisam_trig_0407.result: Auto merged mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result: Auto merged mysql-test/suite/funcs_1/storedproc/cleanup_sp_tb.inc: Auto merged mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc: Auto merged mysql-test/suite/funcs_1/storedproc/storedproc_02.inc: Auto merged mysql-test/suite/funcs_1/storedproc/storedproc_03.inc: Auto merged mysql-test/suite/funcs_1/storedproc/storedproc_06.inc: Auto merged mysql-test/suite/funcs_1/storedproc/storedproc_10.inc: Auto merged mysql-test/suite/funcs_1/t/innodb_trig_0407.test: Auto merged mysql-test/suite/funcs_1/t/memory_storedproc_02.test: Auto merged mysql-test/suite/funcs_1/t/memory_storedproc_03.test: Auto merged mysql-test/suite/funcs_1/t/memory_storedproc_06.test: Auto merged mysql-test/suite/funcs_1/t/memory_storedproc_07.test: Auto merged mysql-test/suite/funcs_1/t/memory_storedproc_08.test: Auto merged mysql-test/suite/funcs_1/t/memory_storedproc_10.test: Auto merged mysql-test/suite/funcs_1/t/myisam_storedproc_02.test: Auto merged mysql-test/suite/funcs_1/t/myisam_storedproc_03.test: Auto merged mysql-test/suite/funcs_1/t/myisam_storedproc_06.test: Auto merged mysql-test/suite/funcs_1/t/myisam_storedproc_07.test: Auto merged mysql-test/suite/funcs_1/t/myisam_storedproc_08.test: Auto merged mysql-test/suite/funcs_1/t/myisam_storedproc_10.test: Auto merged mysql-test/suite/funcs_1/triggers/trig_frkey2.inc: Auto merged mysql-test/suite/funcs_1/triggers/triggers_0102.inc: Auto merged mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc: Auto merged mysql-test/suite/funcs_1/views/views_master.inc: Auto merged mysql-test/mysql-test-run.pl: ul ul
179 lines
7.8 KiB
Plaintext
179 lines
7.8 KiB
Plaintext
|
|
--source suite/funcs_1/storedproc/load_sp_tb.inc
|
|
--------------------------------------------------------------------------------
|
|
|
|
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
|
|
--------------------------------------------------------------------------------
|
|
DROP DATABASE IF EXISTS db_storedproc;
|
|
DROP DATABASE IF EXISTS db_storedproc_1;
|
|
CREATE DATABASE db_storedproc;
|
|
CREATE DATABASE db_storedproc_1;
|
|
USE db_storedproc;
|
|
create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
|
engine = <engine_to_be_tested>;
|
|
load data infile '<MYSQLTEST_VARDIR>/std_data_ln/funcs_1/t4.txt' into table t1;
|
|
create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
|
engine = <engine_to_be_tested>;
|
|
load data infile '<MYSQLTEST_VARDIR>/std_data_ln/funcs_1/t4.txt' into table t2;
|
|
create table t3(f1 char(20),f2 char(20),f3 integer) engine = <engine_to_be_tested>;
|
|
load data infile '<MYSQLTEST_VARDIR>/std_data_ln/funcs_1/t3.txt' into table t3;
|
|
create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
|
engine = <engine_to_be_tested>;
|
|
load data infile '<MYSQLTEST_VARDIR>/std_data_ln/funcs_1/t4.txt' into table t4;
|
|
USE db_storedproc_1;
|
|
create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
|
engine = <engine_to_be_tested>;
|
|
load data infile '<MYSQLTEST_VARDIR>/std_data_ln/funcs_1/t4.txt' into table t6;
|
|
USE db_storedproc;
|
|
create table t7 (f1 char(20), f2 char(25), f3 date, f4 int)
|
|
engine = <engine_to_be_tested>;
|
|
load data infile '<MYSQLTEST_VARDIR>/std_data_ln/funcs_1/t7.txt' into table t7;
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'f3' at row 1
|
|
Warning 1265 Data truncated for column 'f3' at row 2
|
|
Warning 1265 Data truncated for column 'f3' at row 3
|
|
Warning 1265 Data truncated for column 'f3' at row 4
|
|
Warning 1265 Data truncated for column 'f3' at row 5
|
|
Warning 1265 Data truncated for column 'f3' at row 6
|
|
Warning 1265 Data truncated for column 'f3' at row 7
|
|
Warning 1265 Data truncated for column 'f3' at row 8
|
|
Warning 1265 Data truncated for column 'f3' at row 9
|
|
Warning 1265 Data truncated for column 'f3' at row 10
|
|
create table t8 (f1 char(20), f2 char(25), f3 date, f4 int)
|
|
engine = <engine_to_be_tested>;
|
|
load data infile '<MYSQLTEST_VARDIR>/std_data_ln/funcs_1/t7.txt' into table t8;
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'f3' at row 1
|
|
Warning 1265 Data truncated for column 'f3' at row 2
|
|
Warning 1265 Data truncated for column 'f3' at row 3
|
|
Warning 1265 Data truncated for column 'f3' at row 4
|
|
Warning 1265 Data truncated for column 'f3' at row 5
|
|
Warning 1265 Data truncated for column 'f3' at row 6
|
|
Warning 1265 Data truncated for column 'f3' at row 7
|
|
Warning 1265 Data truncated for column 'f3' at row 8
|
|
Warning 1265 Data truncated for column 'f3' at row 9
|
|
Warning 1265 Data truncated for column 'f3' at row 10
|
|
create table t9(f1 int, f2 char(25), f3 int) engine = <engine_to_be_tested>;
|
|
load data infile '<MYSQLTEST_VARDIR>/std_data_ln/funcs_1/t9.txt' into table t9;
|
|
create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
|
engine = <engine_to_be_tested>;
|
|
load data infile '<MYSQLTEST_VARDIR>/std_data_ln/funcs_1/t4.txt' into table t10;
|
|
create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
|
engine = <engine_to_be_tested>;
|
|
load data infile '<MYSQLTEST_VARDIR>/std_data_ln/funcs_1/t4.txt' into table t11;
|
|
|
|
Section 3.1.7 - SQL mode checks:
|
|
--------------------------------------------------------------------------------
|
|
USE db_storedproc;
|
|
|
|
Testcase 3.1.7.1:
|
|
-----------------
|
|
Ensure that the sql_mode setting in effect at the time a stored procedure is
|
|
created is the same setting under which the stored procedure runs when it is
|
|
called/executed.
|
|
--------------------------------------------------------------------------------
|
|
DROP PROCEDURE IF EXISTS sp1;
|
|
DROP TABLE IF EXISTS temp_tbl;
|
|
DROP TABLE IF EXISTS result;
|
|
CREATE TABLE temp_tbl (f1 tinyint);
|
|
CREATE TABLE result (f1 text(200), f2 char(20));
|
|
set @@sql_mode='traditional';
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
Variable_name Value
|
|
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
declare a tinyint;
|
|
declare count_ int default 1;
|
|
declare continue handler for sqlstate '22003' set count_=1000;
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
SELECT @@sql_mode into @cur_val_sql_mode;
|
|
insert into temp_tbl values (1000);
|
|
if count_ = 1000 THEN
|
|
INSERT INTO result VALUES (@cur_val_sql_mode, 'value restored');
|
|
ELSE
|
|
INSERT INTO result VALUES (@cur_val_sql_mode, 'value not restored');
|
|
END if;
|
|
END//
|
|
SHOW CREATE PROCEDURE sp1;
|
|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
|
sp1 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
|
|
BEGIN
|
|
declare a tinyint;
|
|
declare count_ int default 1;
|
|
declare continue handler for sqlstate '22003' set count_=1000;
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
SELECT @@sql_mode into @cur_val_sql_mode;
|
|
insert into temp_tbl values (1000);
|
|
if count_ = 1000 THEN
|
|
INSERT INTO result VALUES (@cur_val_sql_mode, 'value restored');
|
|
ELSE
|
|
INSERT INTO result VALUES (@cur_val_sql_mode, 'value not restored');
|
|
END if;
|
|
END latin1 latin1_swedish_ci latin1_swedish_ci
|
|
set @@sql_mode='';
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
Variable_name Value
|
|
sql_mode
|
|
CALL sp1();
|
|
Variable_name Value
|
|
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
|
|
SELECT * from result;
|
|
f1 f2
|
|
STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER value restored
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
Variable_name Value
|
|
sql_mode
|
|
SELECT @@sql_mode;
|
|
@@sql_mode
|
|
|
|
SET @@sql_mode='TRADITIONAL';
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE temp_tbl;
|
|
DROP TABLE result;
|
|
|
|
Testcase 3.1.7.2:
|
|
-----------------
|
|
Ensure that if the sql_mode setting is changed when a stored procedure is run,
|
|
that the original setting is restored as soon as the stored procedure execution
|
|
is complete.
|
|
--------------------------------------------------------------------------------
|
|
DROP PROCEDURE IF EXISTS sp2;
|
|
... show initial value
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
Variable_name Value
|
|
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
|
|
CREATE PROCEDURE sp2()
|
|
BEGIN
|
|
SET @@sql_mode='MAXDB';
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
END//
|
|
SHOW CREATE PROCEDURE sp2;
|
|
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
|
sp2 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`()
|
|
BEGIN
|
|
SET @@sql_mode='MAXDB';
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
END latin1 latin1_swedish_ci latin1_swedish_ci
|
|
... show value prior calling procedure
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
Variable_name Value
|
|
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
|
|
... call procedure that changes sql_mode
|
|
CALL sp2();
|
|
Variable_name Value
|
|
sql_mode PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER
|
|
... check whether old value is re-set
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
Variable_name Value
|
|
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
|
|
DROP PROCEDURE sp2;
|
|
|
|
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
|
|
--------------------------------------------------------------------------------
|
|
DROP DATABASE IF EXISTS db_storedproc;
|
|
DROP DATABASE IF EXISTS db_storedproc_1;
|
|
|
|
. +++ END OF SCRIPT +++
|
|
--------------------------------------------------------------------------------
|