1################# mysql-test\t\sql_warnings_basic.test ########################
2#                                                                             #
3# Variable Name: sql_warnings                                                 #
4# Scope: SESSION                                                              #
5# Access Type: Dynamic                                                        #
6# Data Type: boolean                                                          #
7# Default Value:                                                              #
8# Valid Values:0,1                                                            #
9#                                                                             #
10#                                                                             #
11# Creation Date: 2008-02-07                                                   #
12# Author:  Rizwan                                                             #
13#                                                                             #
14# Description: Test Cases of Dynamic System Variable sql_warnings             #
15#              that checks the 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                                               #
23#                                                                             #
24###############################################################################
25
26--source include/load_sysvars.inc
27
28
29########################################################################
30#                    START OF sql_warnings TESTS                       #
31########################################################################
32
33
34##############################################################################
35#      Saving initial value of sql_warnings in a temporary variable          #
36##############################################################################
37
38SET @session_start_value = @@session.sql_warnings;
39SELECT @session_start_value;
40
41
42--echo '#--------------------FN_DYNVARS_166_01------------------------#'
43########################################################################
44#           Display the DEFAULT value of sql_warnings                  #
45########################################################################
46
47SET @@session.sql_warnings = 0;
48SET @@session.sql_warnings = DEFAULT;
49SELECT @@session.sql_warnings;
50
51SET @@session.sql_warnings = 1;
52SET @@session.sql_warnings = DEFAULT;
53SELECT @@session.sql_warnings;
54
55
56--echo '#---------------------FN_DYNVARS_166_02-------------------------#'
57#############################################################################
58#   Check if sql_warnings can be accessed with and without @@ sign          #
59#############################################################################
60
61SET sql_warnings = 1;
62SELECT @@sql_warnings;
63
64--Error ER_UNKNOWN_TABLE
65SELECT session.sql_warnings;
66
67--Error ER_UNKNOWN_TABLE
68SELECT local.sql_warnings;
69
70SET session sql_warnings = 0;
71SELECT @@session.sql_warnings;
72
73
74--echo '#--------------------FN_DYNVARS_166_03------------------------#'
75########################################################################
76#      change the value of sql_warnings to a valid value               #
77########################################################################
78
79SET @@session.sql_warnings = 0;
80SELECT @@session.sql_warnings;
81SET @@session.sql_warnings = 1;
82SELECT @@session.sql_warnings;
83
84
85--echo '#--------------------FN_DYNVARS_166_04-------------------------#'
86###########################################################################
87#       Change the value of sql_warnings to invalid value                 #
88###########################################################################
89
90--Error ER_WRONG_TYPE_FOR_VAR
91SET @@session.sql_warnings = 0.6;
92--Error ER_WRONG_VALUE_FOR_VAR
93SET @@session.sql_warnings = "T";
94--Error ER_WRONG_VALUE_FOR_VAR
95SET @@session.sql_warnings = "Y";
96--Error ER_WRONG_VALUE_FOR_VAR
97SET @@session.sql_warnings = TR�E;
98--Error ER_WRONG_VALUE_FOR_VAR
99SET @@session.sql_warnings = �N;
100--Error ER_WRONG_VALUE_FOR_VAR
101SET @@session.sql_warnings = OF;
102--Error ER_WRONG_VALUE_FOR_VAR
103SET @@session.sql_warnings = �FF;
104--Error ER_WRONG_VALUE_FOR_VAR
105SET @@session.sql_warnings = '�';
106--Error ER_WRONG_VALUE_FOR_VAR
107SET @@session.sql_warnings = NO;
108
109
110--echo '#-------------------FN_DYNVARS_166_05----------------------------#'
111###########################################################################
112#       Test if accessing global sql_warnings gives error                 #
113###########################################################################
114
115SET @@global.sql_warnings = 1-@@global.sql_warnings;
116SELECT @@global.sql_warnings;
117SET @@global.sql_warnings = 1-@@global.sql_warnings;
118SELECT @@global.sql_warnings;
119
120
121--echo '#----------------------FN_DYNVARS_166_06------------------------#'
122#########################################################################
123#     Check if the value in GLOBAL Table contains variable value        #
124#########################################################################
125
126SELECT count(VARIABLE_VALUE)
127FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
128WHERE VARIABLE_NAME='sql_warnings';
129
130
131--echo '#----------------------FN_DYNVARS_166_07------------------------#'
132#########################################################################
133#     Check if the value in GLOBAL Table matches value in variable      #
134#########################################################################
135
136SELECT IF(@@session.sql_warnings, "ON", "OFF") = VARIABLE_VALUE
137FROM INFORMATION_SCHEMA.SESSION_VARIABLES
138WHERE VARIABLE_NAME='sql_warnings';
139SELECT @@session.sql_warnings;
140SELECT VARIABLE_VALUE
141FROM INFORMATION_SCHEMA.SESSION_VARIABLES
142WHERE VARIABLE_NAME='sql_warnings';
143
144--echo '#---------------------FN_DYNVARS_166_08-------------------------#'
145###################################################################
146#        Check if ON and OFF values can be used on variable       #
147###################################################################
148
149SET @@session.sql_warnings = OFF;
150SELECT @@session.sql_warnings;
151SET @@session.sql_warnings = ON;
152SELECT @@session.sql_warnings;
153
154--echo '#---------------------FN_DYNVARS_166_09----------------------#'
155###################################################################
156#      Check if TRUE and FALSE values can be used on variable     #
157###################################################################
158
159SET @@session.sql_warnings = TRUE;
160SELECT @@session.sql_warnings;
161SET @@session.sql_warnings = FALSE;
162SELECT @@session.sql_warnings;
163
164##############################
165#   Restore initial value    #
166##############################
167
168SET @@session.sql_warnings = @session_start_value;
169SELECT @@session.sql_warnings;
170
171
172###############################################################
173#                    END OF sql_warnings TESTS                #
174###############################################################
175