~ubuntu-branches/ubuntu/natty/mysql-5.1/natty-proposed

« back to all changes in this revision

Viewing changes to mysql-test/t/implicit_char_to_num_conversion.test

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-02-22 08:30:45 UTC
  • mfrom: (1.4.1)
  • Revision ID: package-import@ubuntu.com-20120222083045-2rd53r4bnyx7qus4
Tags: 5.1.61-0ubuntu0.11.04.1
* SECURITY UPDATE: Update to 5.1.61 to fix multiple security issues
  (LP: #937869)
  - http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html
  - CVE-2011-2262
  - CVE-2012-0075
  - CVE-2012-0112
  - CVE-2012-0113
  - CVE-2012-0114
  - CVE-2012-0115
  - CVE-2012-0116
  - CVE-2012-0117
  - CVE-2012-0118
  - CVE-2012-0119
  - CVE-2012-0120
  - CVE-2012-0484
  - CVE-2012-0485
  - CVE-2012-0486
  - CVE-2012-0487
  - CVE-2012-0488
  - CVE-2012-0489
  - CVE-2012-0490
  - CVE-2012-0491
  - CVE-2012-0492
  - CVE-2012-0493
  - CVE-2012-0494
  - CVE-2012-0495
  - CVE-2012-0496

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
########### implicit_char_to_num_conversion.test #######################
 
2
#                                                                      #
 
3
# This test aims at using string/char literal in comparison operators  #
 
4
# without explicit type-cast. This is a bug test for Bug#11766521      #
 
5
# - Incorrect result is returned if string/char literal is used with   #
 
6
# comparision operator and bit data type column. Test is extended to   #
 
7
# include numeric data type comparison with string/char literal        #
 
8
#                                                                      #
 
9
#                                                                      #
 
10
# Creation:                                                            #
 
11
# 2011-05-10 vfisrekar Implement this test as part of Bug#11766521     #
 
12
#                                                                      #
 
13
########################################################################
 
14
 
 
15
--disable_warnings
 
16
DROP TABLE IF EXISTS t5;
 
17
--enable_warnings
 
18
 
 
19
let $default_engine = `select @@SESSION.storage_engine`;
 
20
 
 
21
# Bug#11766521 - BIT Datatype comparison in where clause return incorrect
 
22
# result for '=' , '<=>' operators
 
23
--replace_result $default_engine <default_engine>
 
24
eval CREATE TABLE t5(c1  BIT(2) PRIMARY KEY) ENGINE = $default_engine;
 
25
INSERT INTO t5 VALUES (0), (1), (2);
 
26
SELECT HEX(c1) FROM t5 ORDER BY c1;
 
27
# Enable Following two select after Bug#11766521 fix
 
28
# SELECT HEX(c1) FROM t5 WHERE c1 = '1' ORDER BY c1;
 
29
# SELECT HEX(c1) FROM t5 WHERE c1 <=> '1' ORDER BY c1;
 
30
SELECT HEX(c1) FROM t5 WHERE c1 = b'1' ORDER BY c1;
 
31
SELECT HEX(c1) FROM t5 WHERE c1 <=> b'1' ORDER BY c1;
 
32
SELECT HEX(c1) FROM t5 WHERE c1 != b'1' ORDER BY c1;
 
33
SELECT HEX(c1) FROM t5 WHERE c1 >= '1' ORDER BY c1;
 
34
SELECT HEX(c1) FROM t5 WHERE c1 <= '1' ORDER BY c1;
 
35
SELECT HEX(c1) FROM t5 WHERE c1 < '1' ORDER BY c1;
 
36
SELECT HEX(c1) FROM t5 WHERE c1 > '0' ORDER BY c1;
 
37
DROP TABLE t5;
 
38
 
 
39
# FLOAT Data-type
 
40
--replace_result $default_engine <default_engine>
 
41
eval CREATE TABLE t5(c1 FLOAT(5,2) PRIMARY KEY) ENGINE = $default_engine;
 
42
INSERT INTO t5 VALUES (95.95), (-10.10), (1), (0);
 
43
SELECT c1 FROM t5 ORDER BY c1;
 
44
# Compare with string literal
 
45
# Following two queries does not return result may be due to Bug#11766521. 
 
46
# Enable them after Bug#11766521 fix.
 
47
# SELECT c1 FROM t5 WHERE c1 = '10.10' ORDER BY c1;
 
48
# SELECT c1 FROM t5 WHERE c2 <=> '11.11' ORDER BY c1;
 
49
SELECT c1 FROM t5 WHERE c1 >= '95' ORDER BY c1;
 
50
SELECT c1 FROM t5 WHERE c1 <= '10.10' ORDER BY c1;
 
51
SELECT c1 FROM t5 WHERE c1 != '1' ORDER BY c1;
 
52
SELECT c1 FROM t5 WHERE c1 < '1' ORDER BY c1;
 
53
SELECT c1 FROM t5 WHERE c1 > '0' ORDER BY c1;
 
54
DROP TABLE t5;
 
55
 
 
56
# TINYINT Datatype
 
57
--replace_result $default_engine <default_engine>
 
58
eval CREATE TABLE t5(c1 TINYINT PRIMARY KEY) ENGINE = $default_engine;
 
59
INSERT INTO t5 VALUES (95), (10),(11),(-8);
 
60
SELECT c1 FROM t5 ORDER BY c1;
 
61
# Compare with string literal
 
62
SELECT c1 FROM t5 WHERE c1 = '10' ORDER BY c1;
 
63
SELECT c1 FROM t5 WHERE c1 <=> '10' ORDER BY c1;
 
64
SELECT c1 FROM t5 WHERE c1 >= '95' ORDER BY c1;
 
65
SELECT c1 FROM t5 WHERE c1 <= '11' ORDER BY c1;
 
66
SELECT c1 FROM t5 WHERE c1 != '-8' ORDER BY c1;
 
67
SELECT c1 FROM t5 WHERE c1 < '11' ORDER BY c1;
 
68
SELECT c1 FROM t5 WHERE c1 > '10' ORDER BY c1;
 
69
DROP TABLE t5;
 
70
 
 
71
# SMALLINT Datatype
 
72
--replace_result $default_engine <default_engine>
 
73
eval CREATE TABLE t5(c1 SMALLINT PRIMARY KEY) ENGINE = $default_engine;
 
74
INSERT INTO t5 VALUES (395), (-200), (100), (111);
 
75
SELECT c1 FROM t5 ORDER BY c1;
 
76
# Compare with string literal
 
77
SELECT c1 FROM t5 WHERE c1 = '100' ORDER BY c1;
 
78
SELECT c1 FROM t5 WHERE c1 <=> '100' ORDER BY c1;
 
79
SELECT c1 FROM t5 WHERE c1 >= '395' ORDER BY c1;
 
80
SELECT c1 FROM t5 WHERE c1 <= '-200' ORDER BY c1;
 
81
SELECT c1 FROM t5 WHERE c1 != '100' ORDER BY c1;
 
82
SELECT c1 FROM t5 WHERE c1 < '111' ORDER BY c1;
 
83
SELECT c1 FROM t5 WHERE c1 > '111' ORDER BY c1;
 
84
DROP TABLE t5;
 
85
 
 
86
# MEDIUMINT Datatype
 
87
--replace_result $default_engine <default_engine>
 
88
eval CREATE TABLE t5(c1 MEDIUMINT PRIMARY KEY) ENGINE = $default_engine;
 
89
INSERT INTO t5 VALUES (-8388607), (311),(215),(88608);
 
90
SELECT c1 FROM t5 ORDER BY c1;
 
91
# Compare with string literal
 
92
SELECT c1 FROM t5 WHERE c1 = '311' ORDER BY c1;
 
93
SELECT c1 FROM t5 WHERE c1 <=> '311' ORDER BY c1;
 
94
SELECT c1 FROM t5 WHERE c1 >= '215' ORDER BY c1;
 
95
SELECT c1 FROM t5 WHERE c1 <= '88608' ORDER BY c1;
 
96
SELECT c1 FROM t5 WHERE c1 != '-8388607' ORDER BY c1;
 
97
SELECT c1 FROM t5 WHERE c1 < '215' ORDER BY c1;
 
98
SELECT c1 FROM t5 WHERE c1 > '215' ORDER BY c1;
 
99
DROP TABLE t5;
 
100
 
 
101
# INT Datatype
 
102
--replace_result $default_engine <default_engine>
 
103
eval CREATE TABLE t5(c1 INT PRIMARY KEY) ENGINE = $default_engine;
 
104
INSERT INTO t5 VALUES (-2147483647), (1011),(15),(9388607);
 
105
SELECT c1 FROM t5 ORDER BY c1;
 
106
# Compare with string literal
 
107
SELECT c1 FROM t5 WHERE c1 = '9388607' ORDER BY c1;
 
108
SELECT c1 FROM t5 WHERE c1 <=> '9388607' ORDER BY c1;
 
109
SELECT c1 FROM t5 WHERE c1 >= '15' ORDER BY c1;
 
110
SELECT c1 FROM t5 WHERE c1 <= '1011' ORDER BY c1;
 
111
SELECT c1 FROM t5 WHERE c1 != '-2147483647' ORDER BY c1;
 
112
SELECT c1 FROM t5 WHERE c1 < '15' ORDER BY c1;
 
113
SELECT c1 FROM t5 WHERE c1 > '15' ORDER BY c1;
 
114
DROP TABLE t5;
 
115
 
 
116
# BIGINT Data-type
 
117
--replace_result $default_engine <default_engine>
 
118
eval CREATE TABLE t5(c1 BIGINT PRIMARY KEY) ENGINE = $default_engine;
 
119
INSERT INTO t5 VALUES (-9223372036854775807), (12011),(500),(3372036854775808);
 
120
SELECT c1 FROM t5 ORDER BY c1;
 
121
# Compare with string literal
 
122
SELECT c1 FROM t5 WHERE c1 = '-9223372036854775807' ORDER BY c1;
 
123
SELECT c1 FROM t5 WHERE c1 <=> '-9223372036854775807' ORDER BY c1;
 
124
SELECT c1 FROM t5 WHERE c1 >= '12011' ORDER BY c1;
 
125
SELECT c1 FROM t5 WHERE c1 <= '500' ORDER BY c1;
 
126
SELECT c1 FROM t5 WHERE c1 != '3372036854775808' ORDER BY c1;
 
127
SELECT c1 FROM t5 WHERE c1 < '12011' ORDER BY c1;
 
128
SELECT c1 FROM t5 WHERE c1 > '12011' ORDER BY c1;
 
129
DROP TABLE t5;
 
130
 
 
131
# DOUBLE Datatype
 
132
--replace_result $default_engine <default_engine>
 
133
eval CREATE TABLE t5(c1 DOUBLE(5,2) PRIMARY KEY) ENGINE = $default_engine;
 
134
INSERT INTO t5 VALUES (95.95), (11.11),(5),(-908.92);
 
135
SELECT c1 FROM t5 ORDER BY c1;
 
136
# Compare with string literal
 
137
SELECT c1 FROM t5 WHERE c1 = '11.11' ORDER BY c1;
 
138
SELECT c1 FROM t5 WHERE c1 <=> '11.11' ORDER BY c1;
 
139
SELECT c1 FROM t5 WHERE c1 >= '5' ORDER BY c1;
 
140
SELECT c1 FROM t5 WHERE c1 <= '95.95' ORDER BY c1;
 
141
SELECT c1 FROM t5 WHERE c1 != '-908.92' ORDER BY c1;
 
142
SELECT c1 FROM t5 WHERE c1 < '95.95' ORDER BY c1;
 
143
SELECT c1 FROM t5 WHERE c1 > '-908.92' ORDER BY c1;
 
144
DROP TABLE t5;
 
145
 
 
146
# NUMERIC Datatype
 
147
--replace_result $default_engine <default_engine>
 
148
eval CREATE TABLE t5(c1 NUMERIC(5,2) PRIMARY KEY) ENGINE = $default_engine;
 
149
INSERT INTO t5 VALUES (95.95), (11.11),(5),(-908.92);
 
150
SELECT c1 FROM t5 ORDER BY c1;
 
151
# Compare with string literal
 
152
SELECT c1 FROM t5 WHERE c1 = '11.11' ORDER BY c1;
 
153
SELECT c1 FROM t5 WHERE c1 <=> '11.11' ORDER BY c1;
 
154
SELECT c1 FROM t5 WHERE c1 >= '5' ORDER BY c1;
 
155
SELECT c1 FROM t5 WHERE c1 <= '95.95' ORDER BY c1;
 
156
SELECT c1 FROM t5 WHERE c1 != '-908.92' ORDER BY c1;
 
157
SELECT c1 FROM t5 WHERE c1 < '95.95' ORDER BY c1;
 
158
SELECT c1 FROM t5 WHERE c1 > '-908.92' ORDER BY c1;
 
159
DROP TABLE t5;
 
160
 
 
161
# DECIMAL Datatype
 
162
--replace_result $default_engine <default_engine>
 
163
eval CREATE TABLE t5(c1 DECIMAL(5,2)  PRIMARY KEY) ENGINE = $default_engine;
 
164
INSERT INTO t5 VALUES (95.95), (11.11),(5),(-908.92);
 
165
SELECT c1 FROM t5 ORDER BY c1;
 
166
# Compare with string literal
 
167
SELECT c1 FROM t5 WHERE c1 = '11.11' ORDER BY c1;
 
168
SELECT c1 FROM t5 WHERE c1 <=> '11.11' ORDER BY c1;
 
169
SELECT c1 FROM t5 WHERE c1 >= '5' ORDER BY c1;
 
170
SELECT c1 FROM t5 WHERE c1 <= '95.95' ORDER BY c1;
 
171
SELECT c1 FROM t5 WHERE c1 != '-908.92' ORDER BY c1;
 
172
SELECT c1 FROM t5 WHERE c1 < '95.95' ORDER BY c1;
 
173
SELECT c1 FROM t5 WHERE c1 > '-908.92' ORDER BY c1;
 
174
DROP TABLE t5;