diff options
Diffstat (limited to 'mysql-test/t/sql_select_limit_func.test')
-rw-r--r-- | mysql-test/t/sql_select_limit_func.test | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/mysql-test/t/sql_select_limit_func.test b/mysql-test/t/sql_select_limit_func.test new file mode 100644 index 00000000000..ed582949aa0 --- /dev/null +++ b/mysql-test/t/sql_select_limit_func.test @@ -0,0 +1,209 @@ +############# mysql-test\t\sql_select_limit_func.test ##################### +# # +# Variable Name: sql_select_limit # +# Scope: GLOBAL, SESSION # +# Access Type: Dynamic # +# Data Type: NUMERIC # +# Default Value: 4294967295 # +# Values: 1-4294967295 # +# # +# # +# Creation Date: 2008-02-25 # +# Author: Sharique Abdullah # +# # +# Description: Test Cases of Dynamic System Variable "sql_select_limit" # +# that checks behavior of this variable in the following ways# +# * Functionality based on different values # +# # +# Reference: http://dev.mysql.com/doc/refman/5.1/en/set-option.html # +# # +########################################################################### + +--echo ** Setup ** +--echo +# +# Setup +# + +SET @session_sql_select_limit = @@SESSION.sql_select_limit; +SET @global_sql_select_limit = @@GLOBAL.sql_select_limit; + +# +# Creating tables +# + +CREATE TEMPORARY TABLE t1(a int PRIMARY KEY, b varchar(20)); +CREATE TEMPORARY TABLE t2(a int PRIMARY KEY, b varchar(20)); +CREATE TEMPORARY TABLE t3(a int PRIMARY KEY, b varchar(20)); + +INSERT INTO t1 VALUES(1, 'val1'); +INSERT INTO t1 VALUES(2, 'val2'); +INSERT INTO t1 VALUES(3, 'val3'); +INSERT INTO t1 VALUES(4, 'val4'); +INSERT INTO t1 VALUES(5, 'val5'); +INSERT INTO t1 VALUES(6, 'val6'); +INSERT INTO t1 VALUES(7, 'val7'); +INSERT INTO t1 VALUES(8, 'val8'); +INSERT INTO t1 VALUES(9, 'val9'); + +INSERT INTO t2 VALUES(5, 'val5'); +INSERT INTO t2 VALUES(6, 'val6'); +INSERT INTO t2 VALUES(7, 'val7'); +INSERT INTO t2 VALUES(8, 'val8'); +INSERT INTO t2 VALUES(9, 'val9'); + + + +--echo '#-----------------------------FN_DYNVARS_165_01-----------------#' +--echo +--echo Value DEFAULT +--echo +# +# Value DEFAULT +# + +--enable_info + +SET SESSION sql_select_limit = DEFAULT; + +SELECT * FROM t1; +--echo Expecting affected rows: 9 + +SELECT * FROM t1 INNER JOIN t2 ON t1.a = t2.a; +--echo Expecting affected rows: 5 + + +--echo '#-----------------------------FN_DYNVARS_165_02---------------#' +# +# Small value +# + +SET SESSION sql_select_limit = 2; + +SELECT * FROM t1; +--echo Expecting affected rows: 2 + +SELECT * FROM t1 INNER JOIN t2 ON t1.a = t2.a; +--echo Expecting affected rows: 2 + +--echo '#-----------------------------FN_DYNVARS_165_03---------------#' +# +# Small value with LIMIT Clause +# + +SET SESSION sql_select_limit = 2; + +SELECT * FROM t1 LIMIT 4; +--echo Expecting affected rows: 4 + +SELECT * FROM t1 INNER JOIN t2 ON t1.a = t2.a LIMIT 3; +--echo Expecting affected rows: 3 + +--echo '#-----------------------------FN_DYNVARS_165_04----------------#' +# +# Small value with Store procedure +# + +SET SESSION sql_select_limit = 2; + +delimiter |; + +CREATE PROCEDURE TestProc() +BEGIN + SELECT * FROM t1; +END| +delimiter ;| + +call TestProc(); +--echo Expecting affected rows: 9 + +DROP PROCEDURE TestProc; + +delimiter |; + +CREATE PROCEDURE TestProc() +BEGIN + SELECT * FROM t1 INNER JOIN t2 ON t1.a = t2.a; +END| +delimiter ;| + +call TestProc(); +--echo Expecting affected rows: 5 + +DROP PROCEDURE TestProc; + +--echo '#-----------------------------FN_DYNVARS_165_05-----------------#' +# +# Small value with Non result producing SELECT statements +# + +SET SESSION sql_select_limit = 2; + +CREATE TEMPORARY TABLE t4(a int PRIMARY KEY, b varchar(20)) SELECT * FROM t2; +--echo Expecting Records: 5 + +INSERT INTO t3 SELECT * FROM t1; +--echo Expecting Records: 9 + +--echo '#-----------------------------FN_DYNVARS_165_06---------------------#' +# +# Session data integrity check & GLOBAL Value check +# +--disable_info + +SET GLOBAL sql_select_limit = 2; + +--echo ** Connecting con_int2 using root ** +connect (con_int1,localhost,root,,); + +--echo ** Connection con_int1 ** +connection con_int1; +SELECT @@SESSION.sql_select_limit; +--echo 2 Expected + +SET SESSION sql_select_limit = 10; + +--echo ** Connecting con_int2 using root ** +connect (con_int2,localhost,root,,); + +--echo ** Connection con_int2 ** +connection con_int2; +SELECT @@SESSION.sql_select_limit; +--echo 2 Expected + +SET SESSION sql_select_limit = 12; + +--echo ** Connection con_int2 ** +connection con_int2; +SELECT @@SESSION.sql_select_limit; +--echo 12 Expected + +--echo ** Connection con_int1 ** +connection con_int1; +SELECT @@SESSION.sql_select_limit; +--echo 10 Expected + +SELECT @@GLOBAL.sql_select_limit; +--echo 2 Expected + +--echo ** Connection default ** +connection default; + +--echo Disconnecting Connections con_int1, con_int2 +disconnect con_int1; +disconnect con_int2; + + +# +# Cleanup +# + +--disable_info + +SET @@SESSION.sql_select_limit = @session_sql_select_limit; +SET @@GLOBAL.sql_select_limit = @global_sql_select_limit; + +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; |