mariadb/mysql-test/t/div_precision_increment_func.test
2008-04-17 15:51:17 +02:00

129 lines
4.9 KiB
Text

############## 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 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;
connection default;
eval SET @@global.div_precision_increment = $save_div_precision_increment;