############## 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 # # # ################################################################################ let $save_div_precision_increment = `SELECT @@global.div_precision_increment`; #SET @save_div_precision_increment = @@global.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 INT ); --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 ## 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 INT, income_tax FLOAT ); 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; 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; disconnect test_con1; disconnect test_con2; connection default; eval SET @@global.div_precision_increment = $save_div_precision_increment;