~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/func_if.test

  • Committer: Monty Taylor
  • Date: 2008-08-04 19:37:18 UTC
  • mto: (261.2.2 codestyle)
  • mto: This revision was merged to the branch mainline in revision 262.
  • Revision ID: monty@inaugust.com-20080804193718-f0rz13uli4429ozb
Changed gettext_noop() to N_()

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#
2
 
# Init section
3
 
#
4
 
--disable_warnings
5
 
drop table if exists t1;
6
 
--enable_warnings
7
 
 
8
 
#
9
 
# Simple IF tests
10
 
#
11
 
 
12
 
select IF(0,"ERROR","this"),IF(1,"is","ERROR"),IF(NULL,"ERROR","a"),IF(1,2.0,3.0)+0 ;
13
 
 
14
 
#
15
 
# Test of IF and case-sensitiveness
16
 
#
17
 
CREATE TABLE t1 (st varchar(255) NOT NULL, u int NOT NULL) ENGINE=MyISAM;
18
 
INSERT INTO t1 VALUES ('a',1),('A',1),('aa',1),('AA',1),('a',1),('aaa',0),('BBB',0);
19
 
select if(1,st,st) s from t1 order by s;
20
 
select if(u=1,st,st) s from t1 order by s;
21
 
select if(u=1,binary st,st) s from t1 order by s;
22
 
select if(u=1,st,binary st) s from t1 where st like "%a%" order by s;
23
 
explain extended select if(u=1,st,binary st) s from t1 where st like "%a%" order by s;
24
 
 
25
 
#
26
 
# NULLIF test
27
 
#
28
 
select nullif(u, 1) from t1;
29
 
explain extended select nullif(u, 1) from t1;
30
 
drop table t1;
31
 
select nullif(1,'test');
32
 
 
33
 
#
34
 
# Bug 2629
35
 
#
36
 
select NULLIF(NULL,NULL), NULLIF(NULL,1), NULLIF(NULL,1.0), NULLIF(NULL,"test");
37
 
select NULLIF(1,NULL), NULLIF(1.0, NULL), NULLIF("test", NULL);
38
 
 
39
 
#
40
 
# Problem with IF()
41
 
#
42
 
 
43
 
create table t1 (num  double(12,2));
44
 
insert into t1 values (144.54);
45
 
select sum(if(num is null,0.00,num)) from t1;
46
 
drop table t1;
47
 
create table t1 (x int, y int);
48
 
insert into t1 values (0,6),(10,16),(20,26),(30,10),(40,46),(50,56);
49
 
select min(if(y -x > 5,y,NULL)), max(if(y - x > 5,y,NULL)) from t1;
50
 
drop table t1;
51
 
 
52
 
#
53
 
# BUG#3987
54
 
#
55
 
create table t1 (a int);
56
 
insert t1 values (1),(2);
57
 
select if(1>2,a,avg(a)) from t1;
58
 
drop table t1;
59
 
 
60
 
#
61
 
# Bug #5595  NULLIF() IS NULL returns false if NULLIF() returns NULL
62
 
#
63
 
SELECT NULLIF(5,5) IS NULL, NULLIF(5,5) IS NOT NULL;
64
 
 
65
 
#
66
 
# Bug #9669 Ordering on IF function with FROM_UNIXTIME function fails
67
 
#
68
 
CREATE TABLE `t1` (
69
 
  `id` int NOT NULL ,
70
 
  `date` int default NULL,
71
 
  `text` varchar(32) NOT NULL
72
 
);
73
 
INSERT INTO t1 VALUES (1,1110000000,'Day 1'),(2,1111000000,'Day 2'),(3,1112000000,'Day 3');
74
 
SELECT id, IF(date IS NULL, '-', FROM_UNIXTIME(date, '%d-%m-%Y')) AS date_ord, text FROM t1 ORDER BY date_ord ASC;
75
 
SELECT id, IF(date IS NULL, '-', FROM_UNIXTIME(date, '%d-%m-%Y')) AS date_ord, text FROM t1 ORDER BY date_ord DESC;
76
 
DROP TABLE t1;
77
 
 
78
 
 
79
 
#
80
 
# Test for bug #11142: evaluation of NULLIF when the first argument is NULL
81
 
#
82
 
 
83
 
CREATE TABLE t1 (a CHAR(10));
84
 
INSERT INTO t1 VALUES ('aaa'), (NULL), (''), ('bbb');
85
 
 
86
 
SELECT a, NULLIF(a,'') FROM t1;
87
 
SELECT a, NULLIF(a,'') FROM t1 WHERE NULLIF(a,'') IS NULL;
88
 
 
89
 
DROP TABLE t1;
90
 
 
91
 
# End of 4.1 tests
92
 
 
93
 
#
94
 
# Bug #16272 IF function with decimal args can produce wrong result
95
 
#
96
 
create table t1 (f1 int, f2 int);
97
 
insert into t1 values(1,1),(0,0);
98
 
select f1, f2, if(f1, 40.0, 5.00) from t1 group by f1 order by f2;
99
 
drop table t1;
100
 
 
101
 
#
102
 
# Bug#24532 (The return data type of IS TRUE is different from similar
103
 
# operations)
104
 
#
105
 
# IF(x,,) should be.
106
 
#
107
 
 
108
 
select if(0, 18446744073709551610, 18446744073709551610);
109
 
 
110