summaryrefslogtreecommitdiff
path: root/mysql-test/t/div_precision_increment_func.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/t/div_precision_increment_func.test')
-rw-r--r--mysql-test/t/div_precision_increment_func.test125
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;
+
+
+
+
+
+