diff options
Diffstat (limited to 'mysql-test/t/div_precision_increment_func.test')
-rw-r--r-- | mysql-test/t/div_precision_increment_func.test | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/mysql-test/t/div_precision_increment_func.test b/mysql-test/t/div_precision_increment_func.test new file mode 100644 index 00000000000..495273cf1a0 --- /dev/null +++ b/mysql-test/t/div_precision_increment_func.test @@ -0,0 +1,125 @@ +############## mysql-test\t\div_precision_increment_func.test ################# +# # +# Variable Name: div_precision_increment # +# Scope: GLOBAL & SESSION # +# Access Type: Dynamic # +# Data Type: Numeric # +# Default Value: 4 # +# Range: 0 - 30 # +# # +# # +# Creation Date: 2008-03-07 # +# Author: Salman Rawala # +# # +# Description: Test Cases of Dynamic System Variable "div_precision_increment" # +# that checks functionality of this variable # +# # +# Reference: http://dev.mysql.com/doc/refman/5.1/en/ # +# server-system-variables.html#option_mysqld_div_precision_increment # +# # +################################################################################ + + +--disable_warnings +drop table if exists t1; +--enable_warnings + +######################### +# Creating new table # +######################### + +--echo ## Creating new table ## +CREATE TABLE t1 +( +id INT NOT NULL auto_increment, +PRIMARY KEY (id), +name VARCHAR(30), +salary LONG +); + +--echo '#--------------------FN_DYNVARS_027_01-------------------------#' +#################################################################### +# Setting initial value of div_precision_increment to 1 +# to check whether it is working with columns or not. +#################################################################### + +--echo ## Setting initial session value of variable to 3 ## +SET @@session.div_precision_increment = 3; + +--echo ## Inserting some rows in table ## +INSERT into t1(name, salary) values('Record_1', 100011); +INSERT into t1(name, salary) values('Record_2', 501); +INSERT into t1(name, salary) values('Record_3', 210); + +SELECT name, salary, ((salary * 2.5)/1000) AS INCOME from t1; +--echo 'Bug#35374: div_precision is not working with table column' + +--echo ## Verifying variable's behavior with direct division ## +SELECT 1/7; + +--echo '#--------------------FN_DYNVARS_027_02-------------------------#' +#################################################################### +# Verifying div_precision_increment behavior by inserting rows +# to check whether it is working with columns or not. +#################################################################### + +--disable_warnings +drop table if exists t1; +--enable_warnings + +######################### +# Creating new table # +######################### + +--echo ## Creating new table ## +CREATE TABLE t1 +( +id INT NOT NULL auto_increment, +PRIMARY KEY (id), +name VARCHAR(30), +salary LONG, +income_tax FLOAT +); + +--echo ## Creating new connection test_con1 ## +connect (test_con1, localhost, root,,); +connection test_con1; + +--echo ## Setting global & session scope value of variable ## +SET @@global.div_precision_increment = 2; +SET @@session.div_precision_increment = 1; +SELECT @@global.div_precision_increment; +SELECT @@session.div_precision_increment; + +--echo ## Inserting some data and verifying behavior of variable ## +INSERT into t1(name, salary, income_tax) values('Record_1', 100011, 100011*2.5/1000); +INSERT into t1(name, salary, income_tax) values('Record_2', 501, 501*2.5/1000); +INSERT into t1(name, salary, income_tax) values('Record_3', 210, 210*2.5/1000); +SELECT * from t1; + +--echo ## Creating new connection ## +connect (test_con2, localhost, root,,); +connection test_con2; + +--echo ## Verifying session & global value of variable ## +SELECT @@global.div_precision_increment = 2; +SELECT @@session.div_precision_increment = 2; + +--echo ## Verifying behavior of variable by inserting some rows in table ## +INSERT into t1(name, salary, income_tax) values('Record_4', 100011, 100011*2.5/1000); +INSERT into t1(name, salary, income_tax) values('Record_5', 501, 501*2.5/1000); +INSERT into t1(name, salary, income_tax) values('Record_6', 210, 210*2.5/1000); +SELECT * from t1; + +--echo ## Dropping table t1 ## +drop table t1; + +--echo ## Disconnection both the connections ## +disconnect test_con1; +disconnect test_con2; + + + + + + |