1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-18 23:03:28 +03:00
Files
mariadb/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result
unknown 004123892d Fix for
Bug#35335 funcs_1: Some tests fail within load_file during
                      pushbuild runs
   Solution: 1. Move files with input data used in load_file, 
                load data etc. 
                from suite/funcs_1/<whatever>
                to std_data
             2. Use for testsuite funcs_1 the server option
                --secure-file-priv=<MYSQLTEST_VARDIR>
             3. Outfiles have to be stored under MYSQLTEST_VARDIR 
+ changes according to WL#4304 Cleanup in funcs_1 tests
  - backport of fixes/improvements made in 5.1 to 5.0
    The differences between scripts in 5.0 and 5.1 cause
    much additional and annoying work during any upmerge.
  - replace error numbers with names
  - improved comments
  - improved formatting
  - Unify storage engine names so that result files for
    storage engine variants do not differ (some tests)
  - remove a script no more used (tests are done in other scripts)


BitKeeper/deleted/.del-triggers_master.test:
  Delete: mysql-test/suite/funcs_1/triggers/triggers_master.test
mysql-test/std_data/funcs_1/innodb_tb1.txt:
  Rename: mysql-test/suite/funcs_1/data/innodb_tb1.txt -> mysql-test/std_data/funcs_1/innodb_tb1.txt
mysql-test/std_data/funcs_1/innodb_tb2.txt:
  Rename: mysql-test/suite/funcs_1/data/innodb_tb2.txt -> mysql-test/std_data/funcs_1/innodb_tb2.txt
mysql-test/std_data/funcs_1/innodb_tb3.txt:
  Rename: mysql-test/suite/funcs_1/data/innodb_tb3.txt -> mysql-test/std_data/funcs_1/innodb_tb3.txt
mysql-test/std_data/funcs_1/innodb_tb4.txt:
  Rename: mysql-test/suite/funcs_1/data/innodb_tb4.txt -> mysql-test/std_data/funcs_1/innodb_tb4.txt
mysql-test/std_data/funcs_1/memory_tb1.txt:
  Rename: mysql-test/suite/funcs_1/data/memory_tb1.txt -> mysql-test/std_data/funcs_1/memory_tb1.txt
mysql-test/std_data/funcs_1/memory_tb2.txt:
  Rename: mysql-test/suite/funcs_1/data/memory_tb2.txt -> mysql-test/std_data/funcs_1/memory_tb2.txt
mysql-test/std_data/funcs_1/memory_tb3.txt:
  Rename: mysql-test/suite/funcs_1/data/memory_tb3.txt -> mysql-test/std_data/funcs_1/memory_tb3.txt
mysql-test/std_data/funcs_1/memory_tb4.txt:
  Rename: mysql-test/suite/funcs_1/data/memory_tb4.txt -> mysql-test/std_data/funcs_1/memory_tb4.txt
mysql-test/std_data/funcs_1/myisam_tb1.txt:
  Rename: mysql-test/suite/funcs_1/data/myisam_tb1.txt -> mysql-test/std_data/funcs_1/myisam_tb1.txt
mysql-test/std_data/funcs_1/myisam_tb2.txt:
  Rename: mysql-test/suite/funcs_1/data/myisam_tb2.txt -> mysql-test/std_data/funcs_1/myisam_tb2.txt
mysql-test/std_data/funcs_1/myisam_tb3.txt:
  Rename: mysql-test/suite/funcs_1/data/myisam_tb3.txt -> mysql-test/std_data/funcs_1/myisam_tb3.txt
mysql-test/std_data/funcs_1/myisam_tb4.txt:
  Rename: mysql-test/suite/funcs_1/data/myisam_tb4.txt -> mysql-test/std_data/funcs_1/myisam_tb4.txt
mysql-test/std_data/funcs_1/t3.txt:
  Rename: mysql-test/suite/funcs_1/data/t3.txt -> mysql-test/std_data/funcs_1/t3.txt
mysql-test/std_data/funcs_1/t4.txt:
  Rename: mysql-test/suite/funcs_1/data/t4.txt -> mysql-test/std_data/funcs_1/t4.txt
mysql-test/std_data/funcs_1/t7.txt:
  Rename: mysql-test/suite/funcs_1/data/t7.txt -> mysql-test/std_data/funcs_1/t7.txt
mysql-test/std_data/funcs_1/t9.txt:
  Rename: mysql-test/suite/funcs_1/data/t9.txt -> mysql-test/std_data/funcs_1/t9.txt
mysql-test/Makefile.am:
  Introduce installation of funcs_1 files in std_data.
mysql-test/mysql-test-run.pl:
  The tests within funcs_1 need a server started with
      --secure-file-priv=<MYSQLTEST_VARDIR>
  like the main regression tests.
mysql-test/suite/funcs_1/README.txt:
  Extended description
mysql-test/suite/funcs_1/datadict/datadict_bug_12777.inc:
  Cleanup
mysql-test/suite/funcs_1/datadict/datadict_load.inc:
  Cleanup
mysql-test/suite/funcs_1/include/innodb_tb1.inc:
  Adjustment to new storage place of infile.
mysql-test/suite/funcs_1/include/innodb_tb2.inc:
  Adjustment to new storage place of infile.
mysql-test/suite/funcs_1/include/innodb_tb3.inc:
  Adjustment to new storage place of infile.
mysql-test/suite/funcs_1/include/innodb_tb4.inc:
  Adjustment to new storage place of infile.
mysql-test/suite/funcs_1/include/memory_tb1.inc:
  Adjustment to new storage place of infile.
mysql-test/suite/funcs_1/include/memory_tb2.inc:
  Adjustment to new storage place of infile.
mysql-test/suite/funcs_1/include/memory_tb3.inc:
  Adjustment to new storage place of infile.
mysql-test/suite/funcs_1/include/memory_tb4.inc:
  Adjustment to new storage place of infile.
mysql-test/suite/funcs_1/include/myisam_tb1.inc:
  Adjustment to new storage place of infile.
mysql-test/suite/funcs_1/include/myisam_tb2.inc:
  Adjustment to new storage place of infile.
mysql-test/suite/funcs_1/include/myisam_tb3.inc:
  Adjustment to new storage place of infile.
mysql-test/suite/funcs_1/include/myisam_tb4.inc:
  Adjustment to new storage place of infile.
mysql-test/suite/funcs_1/include/sp_tb.inc:
  Adjustment to new storage place of infile.
mysql-test/suite/funcs_1/r/innodb_func_view.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_storedproc_02.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_storedproc_03.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_storedproc_06.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_storedproc_07.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_storedproc_08.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_storedproc_10.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_trig_0102.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_trig_03.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_trig_0407.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_trig_08.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_trig_09.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_trig_frkey.result:
  Updated results
mysql-test/suite/funcs_1/r/innodb_views.result:
  Updated results
mysql-test/suite/funcs_1/r/is_columns_innodb.result:
  Updated results
mysql-test/suite/funcs_1/r/is_columns_memory.result:
  Updated results
mysql-test/suite/funcs_1/r/is_columns_myisam.result:
  Updated results
mysql-test/suite/funcs_1/r/is_columns_ndb.result:
  Updated results
mysql-test/suite/funcs_1/r/is_tables_innodb.result:
  Updated results
mysql-test/suite/funcs_1/r/is_tables_memory.result:
  Updated results
mysql-test/suite/funcs_1/r/is_tables_myisam.result:
  Updated results
mysql-test/suite/funcs_1/r/is_tables_ndb.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_func_view.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_storedproc_02.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_storedproc_03.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_storedproc_06.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_storedproc_07.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_storedproc_08.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_storedproc_10.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_trig_0102.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_trig_03.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_trig_0407.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_trig_08.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_trig_09.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_trig_1011ext.result:
  Updated results
mysql-test/suite/funcs_1/r/memory_views.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_func_view.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_storedproc_02.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_storedproc_03.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_storedproc_06.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_storedproc_07.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_storedproc_08.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_storedproc_10.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_trig_0102.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_trig_03.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_trig_0407.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_trig_08.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_trig_09.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result:
  Updated results
mysql-test/suite/funcs_1/r/myisam_views.result:
  Updated results
mysql-test/suite/funcs_1/storedproc/cleanup_sp_tb.inc:
  "--echo" instead of SQL command.
mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc:
  Adjustment to new storage place of infile
  + correct formatting.
mysql-test/suite/funcs_1/storedproc/storedproc_02.inc:
  Backport from 5.1 + correct formatting.
mysql-test/suite/funcs_1/storedproc/storedproc_03.inc:
  Minor improvements + correct formatting.
mysql-test/suite/funcs_1/storedproc/storedproc_06.inc:
  Backport from 5.1 + correct formatting
mysql-test/suite/funcs_1/storedproc/storedproc_10.inc:
  Backport from 5.1. + correct formatting
mysql-test/suite/funcs_1/t/innodb_trig_0407.test:
  Cleanup
mysql-test/suite/funcs_1/t/is_basics_mixed.test:
  Adjustment to new storage place of outfile.
mysql-test/suite/funcs_1/t/memory_storedproc_02.test:
  Cleanup
mysql-test/suite/funcs_1/t/memory_storedproc_03.test:
  Cleanup
mysql-test/suite/funcs_1/t/memory_storedproc_06.test:
  Cleanup
mysql-test/suite/funcs_1/t/memory_storedproc_07.test:
  Cleanup
mysql-test/suite/funcs_1/t/memory_storedproc_08.test:
  Cleanup
mysql-test/suite/funcs_1/t/memory_storedproc_10.test:
  Cleanup
mysql-test/suite/funcs_1/t/myisam_storedproc_02.test:
  Cleanup
mysql-test/suite/funcs_1/t/myisam_storedproc_03.test:
  Cleanup
mysql-test/suite/funcs_1/t/myisam_storedproc_06.test:
  Cleanup
mysql-test/suite/funcs_1/t/myisam_storedproc_07.test:
  Cleanup
mysql-test/suite/funcs_1/t/myisam_storedproc_08.test:
  Cleanup
mysql-test/suite/funcs_1/t/myisam_storedproc_10.test:
  Cleanup
mysql-test/suite/funcs_1/triggers/trig_frkey2.inc:
  Cleanup
mysql-test/suite/funcs_1/triggers/triggers_0102.inc:
  Cleanup
mysql-test/suite/funcs_1/triggers/triggers_03.inc:
  Backport from 5.1
mysql-test/suite/funcs_1/triggers/triggers_0407.inc:
  Backport from 5.1
mysql-test/suite/funcs_1/triggers/triggers_08.inc:
  Backport from 5.1
mysql-test/suite/funcs_1/triggers/triggers_09.inc:
  Backport from 5.1
mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc:
  Backport from 5.1
mysql-test/suite/funcs_1/views/func_view.inc:
  Backport from 5.1
mysql-test/suite/funcs_1/views/views_master.inc:
  Cleanup
mysql-test/std_data/funcs_1/load_file.txt:
  New BitKeeper file ``mysql-test/std_data/funcs_1/load_file.txt''
2008-03-31 19:48:02 +02:00

497 lines
15 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.3 - Syntax checks for the stored procedure-specific flow
control statements IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE:
--------------------------------------------------------------------------------
Testcase 3.1.3.7:
-----------------
Ensure that the IF statement acts correctly for all variants, including cases
where statements are nested.
--------------------------------------------------------------------------------
DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
DROP PROCEDURE IF EXISTS sp9;
CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
CREATE PROCEDURE sp9( action char(20), subaction char(20) )
BEGIN
if action = 'action' then
if subaction = 'subaction' then
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction' , 1);
else
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'none' , 2);
END if;
else
if subaction = 'subaction'
then
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction' , 3);
elseif subaction = 'subaction1'
then
BEGIN
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values ('none', 'subaction1', 4);
END;
else
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'none' , 5);
END if;
END if;
END//
CALL sp9( 'action', 'subaction' );
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=1;
f1 f2 f3
action subaction 1
CALL sp9( 'temp', 'subaction' );
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=3;
f1 f2 f3
none subaction 3
CALL sp9( 'temp', 'subaction1' );
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=4;
f1 f2 f3
none subaction1 4
CALL sp9( 'action', 'temp' );
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=2;
f1 f2 f3
action none 2
CALL sp9( 'temp', 'temp' );
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=5;
f1 f2 f3
none none 5
DROP PROCEDURE sp9;
DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
Testcase 3.1.3.8.:
------------------
Ensure that the CASE statement acts correctly for all variants, including cases
where statements are nested.
--------------------------------------------------------------------------------
drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
DROP PROCEDURE IF EXISTS sp10;
create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
CREATE PROCEDURE sp10( action char(20), subaction char(20) )
BEGIN
case action
when 'action' then
case
when subaction = 'subaction_1' then
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction_2' , 1);
when subaction = 'subaction_2' then
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction_2' , 2);
else
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'none' , 3);
END case;
else
case
when subaction = 'subaction_1' then
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction_1' , 4);
when subaction = 'subaction_2' then
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction_2' , 5);
else
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'none' , 6);
END case;
END case;
END//
CALL sp10( 'action', 'subaction_1' );
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
f1 f2 f3
action subaction_2 1
delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
CALL sp10( 'action', 'subaction_2' );
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
f1 f2 f3
action subaction_2 2
delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
CALL sp10( 'temp', 'subaction_1' );
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
f1 f2 f3
none subaction_1 4
delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
CALL sp10( 'temp', 'subaction_2' );
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
f1 f2 f3
none subaction_2 5
delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
CALL sp10( 'action', 'temp' );
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
f1 f2 f3
action none 3
delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
CALL sp10( 'temp', 'temp' );
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
f1 f2 f3
none none 6
DROP PROCEDURE sp10;
DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
Testcase 3.1.3.9 + 3.1.3.15:
----------------------------
09. Ensure that the LOOP statement acts correctly for all variants, including
. cases where statements are nested.
15. Ensure that the LEAVE statement acts correctly for all variants, including
. cases where statements are nested.
--------------------------------------------------------------------------------
DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
DROP PROCEDURE IF EXISTS sp11;
CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
CREATE PROCEDURE sp11( )
BEGIN
declare count1 integer default 1;
declare count2 integer default 1;
label1: loop
if count2 > 3 then leave label1;
END if;
set count1 = 1;
label2: loop
if count1 > 4 then leave label2;
END if;
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
set count1 = count1 + 1;
iterate label2;
END loop label2;
set count2 = count2 + 1;
iterate label1;
END loop label1;
END//
CALL sp11();
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
f1 f2 f3
xyz pqr 1
xyz pqr 2
xyz pqr 3
xyz pqr 4
xyz pqr 1
xyz pqr 2
xyz pqr 3
xyz pqr 4
xyz pqr 1
xyz pqr 2
xyz pqr 3
xyz pqr 4
DROP PROCEDURE sp11;
DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
Testcase 3.1.3.16:
------------------
Ensure that the ITERATE statement acts correctly for all variants, including
cases where statements are nested.
(tests for this testcase are also included in other testcases)
--------------------------------------------------------------------------------
DROP PROCEDURE IF EXISTS sp31316;
CREATE PROCEDURE sp31316( )
BEGIN
declare count1 integer default 1;
declare count2 integer default 1;
label1: loop
if count2 > 3 then leave label1;
END if;
set count1 = 1;
label2: loop
if count1 > 4 then leave label2;
END if;
insert into temp values( count1, count2);
set count1 = count1 + 1;
iterate label3;
END loop label2;
set count2 = count2 + 1;
iterate label1;
END loop label1;
END//
ERROR 42000: ITERATE with no matching label: label3
Testcase 3.1.3.18:
------------------
Ensure that the REPEAT statement acts correctly for all variants, including
cases where statements are nested.
--------------------------------------------------------------------------------
DROP PROCEDURE IF EXISTS sp17;
DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
CREATE PROCEDURE sp17( )
BEGIN
declare count1 integer default 1;
declare count2 integer default 1;
repeat
set count1 = count1 + 1;
set count2 = 1;
label1: repeat
set count2 = count2 + 1;
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
until count2 > 3
END repeat label1;
until count1 > 3
END repeat;
END//
CALL sp17();
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
f1 f2 f3
xyz pqr 2
xyz pqr 2
xyz pqr 2
xyz pqr 3
xyz pqr 3
xyz pqr 3
xyz pqr 4
xyz pqr 4
xyz pqr 4
DROP PROCEDURE sp17;
DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
Testcase 3.1.3.24:
------------------
Ensure that the WHILE statement acts correctly for all variants, including cases
where statements are nested.
--------------------------------------------------------------------------------
drop table IF EXISTS res_t21;
DROP PROCEDURE IF EXISTS sp21;
create table res_t21(name text(10), surname blob(20), age_averylongfieldname_averylongname_1234569 smallint);
insert into res_t21 values('ashwin', 'mokadam', 25);
CREATE PROCEDURE sp21( )
BEGIN
declare count1 integer default 0;
declare count2 integer default 0;
while count1 < 3 do
BEGIN
declare ithisissamevariablename int default 100;
SELECT ithisissamevariablename;
BEGIN
declare ithisissamevariablename int default 200;
SELECT ithisissamevariablename;
END;
set count2 = 0;
label1: while count2 < 3 do
BEGIN
declare count1 integer default 7;
set count2 = count2 + 1;
insert into res_t21 values( 'xyz' , 'pqr', count2);
label2: while count1 < 10 do
set count1 = count1 + 1;
insert into res_t21 values( 'xyz' , 'pqr', count1);
END while label2;
END;
END while label1;
set count1 = count1 + 1;
END;
END while;
END//
CALL sp21();
ithisissamevariablename
100
ithisissamevariablename
200
ithisissamevariablename
100
ithisissamevariablename
200
ithisissamevariablename
100
ithisissamevariablename
200
SELECT * from res_t21;
name surname age_averylongfieldname_averylongname_1234569
ashwin mokadam 25
xyz pqr 1
xyz pqr 8
xyz pqr 9
xyz pqr 10
xyz pqr 2
xyz pqr 8
xyz pqr 9
xyz pqr 10
xyz pqr 3
xyz pqr 8
xyz pqr 9
xyz pqr 10
xyz pqr 1
xyz pqr 8
xyz pqr 9
xyz pqr 10
xyz pqr 2
xyz pqr 8
xyz pqr 9
xyz pqr 10
xyz pqr 3
xyz pqr 8
xyz pqr 9
xyz pqr 10
xyz pqr 1
xyz pqr 8
xyz pqr 9
xyz pqr 10
xyz pqr 2
xyz pqr 8
xyz pqr 9
xyz pqr 10
xyz pqr 3
xyz pqr 8
xyz pqr 9
xyz pqr 10
DROP PROCEDURE sp21;
drop table res_t21;
Testcase 3.1.3.30:
------------------
Ensure that multiple cases of all possible combinations of the control flow
statements, nested within multiple compound statements within a stored
procedure, always act correctly and return the expected result.
--------------------------------------------------------------------------------
DROP TABLE IF EXISTS res_tbl;
DROP PROCEDURE IF EXISTS sp31330;
create table res_tbl (f1 int, f2 text, f3 blob, f4 date,
f5 set('one', 'two', 'three', 'four', 'five') default 'one');
CREATE PROCEDURE sp31330 (path int)
BEGIN
declare count int default 1;
declare var1 text;
declare var2 blob;
declare var3 date;
declare var4 set('one', 'two', 'three', 'four', 'five') DEFAULT 'five';
case
when path=1 then
set var3 = '2000-11-09';
set var1 = 'flowing through case 1';
label1: loop
if count > 5 then
if var4=1000 then
set var2 = 'exiting out of case 1 - invalid SET';
END if;
if var4='two' then
set var2 = 'exiting out of case 1';
END if;
insert into res_tbl values (1, var1, var2, var3, (count-2));
leave label1;
elseif count = 5 then
set count= count + 2;
set var4='two';
iterate label1;
else
set count= count + 1;
END if;
set var4='one';
END loop label1;
when path=2 then
set var3 = '1989-11-09';
set var1 = 'flowing through case 2';
set @count3=0;
label2: repeat
set count=count + 1;
set @count2=1;
while @count2 <= 5 do
set @count2 = @count2 + 1;
END while;
SELECT @count2;
set @count3=@count3 + @count2;
until count > 5
END repeat label2;
set var2 = 'exiting out of case 2';
set var4 = count-3;
SELECT @count3;
insert into res_tbl values (2, var1, var2, var3, var4);
ELSE BEGIN
set @error_opt='undefined path specified';
SELECT @error_opt;
END;
END case;
END//
CALL sp31330();
ERROR 42000: Incorrect number of arguments for PROCEDURE db_storedproc.sp31330; expected 1, got 0
CALL sp31330(1);
SELECT * from res_tbl;
f1 f2 f3 f4 f5
1 flowing through case 1 exiting out of case 1 2000-11-09 one,three
CALL sp31330(2);
@count2
6
@count2
6
@count2
6
@count2
6
@count2
6
@count3
30
SELECT * from res_tbl;
f1 f2 f3 f4 f5
1 flowing through case 1 exiting out of case 1 2000-11-09 one,three
2 flowing through case 2 exiting out of case 2 1989-11-09 one,two
CALL sp31330(4);
@error_opt
undefined path specified
DROP PROCEDURE sp31330;
drop table res_tbl;
--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 +++
--------------------------------------------------------------------------------