mirror of
https://github.com/MariaDB/server.git
synced 2025-05-04 06:05:05 +03:00

testsuite funcs_1 1. Fix the following bugs Bug#30440 "datadict" tests (all engines) fail: Character sets depend on configuration Solution: Test variants charset_collation_* adjusted to different builds Bug#32603 "datadict" tests (all engines) fail in "community" tree: "PROFILING" table Solution: Excluding "PROFILING" table from queries Bug#33654 "slow log" is missing a line Solution: Unify the content of the fields TABLES.TABLE_ROWS and STATISTICS.CARDINALITY within result sets Bug#34532 Some funcs_1 tests do not clean up at end of testing Solution: DROP objects/reset global server variables modified during testing + let tests missing implementation end before loading of tables Bug#31421 funcs_1: ndb__datadict fails, discrepancy between scripts and expected results Solution: Cut <engine>__datadict tests into smaller tests + generate new results. Bug#33599 INFORMATION_SCHEMA.STATISTICS got a new column INDEX_COMMENT: tests fail (2) Generation of new results during post merge fix Bug#33600 CHARACTER_OCTET_LENGTH is now CHARACTER_MAXIMUM_LENGTH * 4 Generation of new results during post merge fix Bug#33631 Platform-specific replace of CHARACTER_MAXIMUM_LENGTH broken by 4-byte encoding Generation of new results during post merge fix + removal of platform-specific replace routine (no more needed) 2. Restructure the tests - Test not more than one INFORMATION_SCHEMA view per testscript - Separate tests of I_S view layout+functionality from content related to the all time existing databases "information_schema", "mysql" and "test" - Avoid storage engine related variants of tests which are not sensible to storage engines at all. 3. Reimplement or add some subtests + cleanup There is a some probability that even the reviewed changeset - does not fix all bugs from above or - contains new bugs which show up on some platforms <> Linux or on one of the various build types 4. The changeset contains fixes according to - one code review - minor bugs within testing code found after code review (accepted by reviewer) - problems found during tests with 5.0.56 in build environment
119 lines
3.5 KiB
PHP
119 lines
3.5 KiB
PHP
#### suite/funcs_1/storedproc/storedproc_07.inc
|
|
#
|
|
--source suite/funcs_1/storedproc/load_sp_tb.inc
|
|
|
|
# ==============================================================================
|
|
# (numbering from requirement document TP v1.0, Last updated: 25 Jan 2005 01:00)
|
|
#
|
|
# 3.1.7 SQL mode checks:
|
|
#
|
|
# 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.
|
|
# 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.
|
|
#
|
|
# ==============================================================================
|
|
let $message= Section 3.1.7 - SQL mode checks:;
|
|
--source include/show_msg80.inc
|
|
|
|
USE db_storedproc;
|
|
|
|
# ------------------------------------------------------------------------------
|
|
let $message= 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.;
|
|
--source include/show_msg80.inc
|
|
|
|
--disable_warnings
|
|
DROP PROCEDURE IF EXISTS sp1;
|
|
DROP TABLE IF EXISTS temp_tbl;
|
|
DROP TABLE IF EXISTS result;
|
|
--enable_warnings
|
|
|
|
CREATE TABLE temp_tbl (f1 tinyint);
|
|
CREATE TABLE result (f1 text(200), f2 char(20));
|
|
|
|
set @@sql_mode='traditional';
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
|
|
delimiter //;
|
|
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//
|
|
delimiter ;//
|
|
|
|
SHOW CREATE PROCEDURE sp1;
|
|
|
|
set @@sql_mode='';
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
|
|
CALL sp1();
|
|
SELECT * from result;
|
|
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
SELECT @@sql_mode;
|
|
|
|
# cleanup
|
|
SET @@sql_mode='TRADITIONAL';
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE temp_tbl;
|
|
DROP TABLE result;
|
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
let $message= 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.;
|
|
--source include/show_msg80.inc
|
|
|
|
--disable_warnings
|
|
DROP PROCEDURE IF EXISTS sp2;
|
|
--enable_warnings
|
|
|
|
--echo ... show initial value
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
|
|
delimiter //;
|
|
CREATE PROCEDURE sp2()
|
|
BEGIN
|
|
SET @@sql_mode='MAXDB';
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
END//
|
|
delimiter ;//
|
|
|
|
SHOW CREATE PROCEDURE sp2;
|
|
--echo ... show value prior calling procedure
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
|
|
--echo ... call procedure that changes sql_mode
|
|
CALL sp2();
|
|
|
|
--echo ... check whether old value is re-set
|
|
SHOW VARIABLES LIKE 'sql_mode';
|
|
|
|
# cleanup
|
|
DROP PROCEDURE sp2;
|
|
|
|
|
|
# ==============================================================================
|
|
# USE the same .inc to cleanup before and after the test
|
|
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
|
|
|
|
# ==============================================================================
|
|
let $message= . +++ END OF SCRIPT +++;
|
|
--source include/show_msg80.inc
|
|
# ==============================================================================
|