1############## mysql-test\t\div_precision_increment_basic.test #################
2#                                                                              #
3# Variable Name: div_precision_increment                                       #
4# Scope: GLOBAL & SESSION                                                      #
5# Access Type: Dynamic                                                         #
6# Data Type: Numeric                                                           #
7# Default Value: 4                                                             #
8# Range: 0 - 30                                                                #
9#                                                                              #
10#                                                                              #
11# Creation Date: 2008-02-07                                                    #
12# Author:  Salman Rawala                                                       #
13#                                                                              #
14# Description: Test Cases of Dynamic System Variable "div_precision_increment" #
15#              that checks behavior of this variable in the following ways     #
16#              * Default Value                                                 #
17#              * Valid & Invalid values                                        #
18#              * Scope & Access method                                         #
19#              * Data Integrity                          .                     #
20#                                                                              #
21# Reference: http://dev.mysql.com/doc/refman/5.1/en/                           #
22#   server-system-variables.html#option_mysqld_div_precision_increment         #
23#                                                                              #
24################################################################################
25
26--source include/load_sysvars.inc
27
28#######################################################################
29#           START OF div_precision_increment TESTS                    #
30#######################################################################
31
32
33#############################################################
34#                 Save initial value                        #
35#############################################################
36
37SET @start_global_value = @@global.div_precision_increment;
38SELECT @start_global_value;
39SET @start_session_value = @@session.div_precision_increment;
40SELECT @start_session_value;
41
42--echo '#--------------------FN_DYNVARS_027_01-------------------------#'
43#######################################################################
44#     Display the DEFAULT value of div_precision_increment            #
45#######################################################################
46
47SET @@global.div_precision_increment = 100;
48SET @@global.div_precision_increment = DEFAULT;
49SELECT @@global.div_precision_increment;
50
51SET @@session.div_precision_increment = 200;
52SET @@session.div_precision_increment = DEFAULT;
53SELECT @@session.div_precision_increment;
54
55--echo '#--------------------FN_DYNVARS_027_02-------------------------#'
56#######################################################################
57#     Check the DEFAULT value of div_precision_increment              #
58#######################################################################
59
60SET @@global.div_precision_increment = @start_global_value;
61SELECT @@global.div_precision_increment = 4;
62
63SET @@session.div_precision_increment = @start_session_value;
64SELECT @@session.div_precision_increment = 4;
65
66--echo '#--------------------FN_DYNVARS_027_03-------------------------#'
67#################################################################################
68# Change the value of div_precision_increment to a valid value for GLOBAL Scope #
69#################################################################################
70
71SET @@global.div_precision_increment = 1;
72SELECT @@global.div_precision_increment;
73SET @@global.div_precision_increment = 0;
74SELECT @@global.div_precision_increment;
75SET @@global.div_precision_increment = 10;
76SELECT @@global.div_precision_increment;
77SET @@global.div_precision_increment = 30;
78SELECT @@global.div_precision_increment;
79
80
81--echo '#--------------------FN_DYNVARS_027_04-------------------------#'
82##################################################################################
83# Change the value of div_precision_increment to a valid value for SESSION Scope #
84##################################################################################
85
86SET @@session.div_precision_increment = 1;
87SELECT @@session.div_precision_increment;
88SET @@session.div_precision_increment = 0;
89SELECT @@session.div_precision_increment;
90SET @@session.div_precision_increment = 7;
91SELECT @@session.div_precision_increment;
92SET @@session.div_precision_increment = 30;
93SELECT @@session.div_precision_increment;
94
95
96--echo '#------------------FN_DYNVARS_027_05-----------------------#'
97###################################################################
98# Change the value of div_precision_increment to an invalid value #
99###################################################################
100
101SET @@global.div_precision_increment = 31;
102SELECT @@global.div_precision_increment;
103SET @@global.div_precision_increment = 40;
104SELECT @@global.div_precision_increment;
105SET @@global.div_precision_increment = -1024;
106SELECT @@global.div_precision_increment;
107SET @@global.div_precision_increment = 65536;
108SELECT @@global.div_precision_increment;
109SET @@session.div_precision_increment = 40;
110SELECT @@session.div_precision_increment;
111SET @@session.div_precision_increment = 31;
112SELECT @@session.div_precision_increment;
113SET @@session.div_precision_increment = -2;
114SELECT @@session.div_precision_increment;
115SET @@session.div_precision_increment = 65550;
116SELECT @@session.div_precision_increment;
117
118--Error ER_WRONG_TYPE_FOR_VAR
119SET @@global.div_precision_increment = 65530.30;
120SELECT @@global.div_precision_increment;
121--Error ER_WRONG_TYPE_FOR_VAR
122SET @@global.div_precision_increment = OFF;
123SELECT @@global.div_precision_increment;
124--Error ER_WRONG_TYPE_FOR_VAR
125SET @@session.div_precision_increment = ON;
126SELECT @@session.div_precision_increment;
127--Error ER_WRONG_TYPE_FOR_VAR
128SET @@session.div_precision_increment = 65530.30;
129SELECT @@session.div_precision_increment;
130
131
132--echo '#------------------FN_DYNVARS_027_06-----------------------#'
133####################################################################
134#   Check if the value in GLOBAL Table matches value in variable   #
135####################################################################
136
137SELECT @@global.div_precision_increment = VARIABLE_VALUE
138FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
139WHERE VARIABLE_NAME='div_precision_increment';
140
141--echo '#------------------FN_DYNVARS_027_07-----------------------#'
142####################################################################
143#  Check if the value in SESSION Table matches value in variable   #
144####################################################################
145
146SELECT @@session.div_precision_increment = VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='div_precision_increment';
147
148
149# FN_DYNVARS_027_07 - Check if TRUE and FALSE values can be used on variable
150SET @@global.div_precision_increment = TRUE;
151SELECT @@global.div_precision_increment;
152SET @@global.div_precision_increment = FALSE;
153SELECT @@global.div_precision_increment;
154
155
156--echo '#---------------------FN_DYNVARS_027_08----------------------#'
157####################################################################################
158#  Check if accessing variable with and without GLOBAL point to same variable      #
159####################################################################################
160
161SET @@global.div_precision_increment = 0;
162SELECT @@div_precision_increment = @@global.div_precision_increment;
163
164
165--echo '#---------------------FN_DYNVARS_027_09----------------------#'
166########################################################################################################
167#    Check if accessing variable with SESSION,LOCAL and without SCOPE points to same session variable  #
168########################################################################################################
169
170SET @@div_precision_increment = 1;
171SELECT @@div_precision_increment = @@local.div_precision_increment;
172SELECT @@local.div_precision_increment = @@session.div_precision_increment;
173
174
175--echo '#---------------------FN_DYNVARS_027_10----------------------#'
176##################################################################################
177#   Check if div_precision_increment can be accessed with and without @@ sign    #
178##################################################################################
179
180SET div_precision_increment = 1;
181SELECT @@div_precision_increment;
182--Error ER_PARSE_ERROR
183SET local.div_precision_increment = 1;
184--Error ER_UNKNOWN_TABLE
185SELECT local.div_precision_increment;
186--Error ER_PARSE_ERROR
187SET session.div_precision_increment = 1;
188--Error ER_UNKNOWN_TABLE
189SELECT session.div_precision_increment;
190--Error ER_BAD_FIELD_ERROR
191SELECT div_precision_increment = @@session.div_precision_increment;
192
193
194
195####################################
196#     Restore initial value        #
197####################################
198
199SET @@global.div_precision_increment = @start_global_value;
200SELECT @@global.div_precision_increment;
201SET @@session.div_precision_increment = @start_session_value;
202SELECT @@session.div_precision_increment;
203
204
205#######################################################
206#            END OF div_precision_increment TESTS     #
207#######################################################
208
209