Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 47e506f

Browse files
author
Thomas G. Lockhart
committed
Include test for CASE expression.
1 parent bedd04a commit 47e506f

File tree

3 files changed

+173
-0
lines changed

3 files changed

+173
-0
lines changed

src/test/regress/expected/case.out

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
QUERY: SELECT '' AS "One",
2+
CASE
3+
WHEN 1 < 2 THEN 3
4+
END AS "One only = 3";
5+
One|One only = 3
6+
---+------------
7+
| 3
8+
(1 row)
9+
10+
QUERY: SELECT '' AS "One",
11+
CASE
12+
WHEN 1 > 2 THEN 3
13+
END AS "One only = Null";
14+
One|One only = Null
15+
---+---------------
16+
|
17+
(1 row)
18+
19+
QUERY: SELECT '' AS "One",
20+
CASE
21+
WHEN 1 < 2 THEN 3
22+
ELSE 4
23+
END AS "One with default = 3";
24+
One|One with default = 3
25+
---+--------------------
26+
| 3
27+
(1 row)
28+
29+
QUERY: SELECT '' AS "One",
30+
CASE
31+
WHEN 1 > 2 THEN 3
32+
ELSE 4
33+
END AS "One with default = 4";
34+
One|One with default = 4
35+
---+--------------------
36+
| 4
37+
(1 row)
38+
39+
QUERY: SELECT '' AS "One",
40+
CASE
41+
WHEN 1 > 2 THEN 3
42+
WHEN 4 < 5 THEN 6
43+
ELSE 7
44+
END AS "Two with default = 6";
45+
One|Two with default = 6
46+
---+--------------------
47+
| 6
48+
(1 row)
49+
50+
QUERY: SELECT '' AS "Five",
51+
CASE
52+
WHEN f1 >= 0 THEN f1
53+
END AS ">= 0 or Null"
54+
FROM INT4_TBL;
55+
Five|>= 0 or Null
56+
----+------------
57+
| 0
58+
| 123456
59+
|
60+
| 2147483647
61+
|
62+
(5 rows)
63+
64+
QUERY: SELECT '' AS "Five",
65+
CASE WHEN f1 >= 0 THEN (f1 - f1)
66+
ELSE f1
67+
END AS "Simplest Math"
68+
FROM INT4_TBL;
69+
Five|Simplest Math
70+
----+-------------
71+
| 0
72+
| 0
73+
| -123456
74+
| 0
75+
| -2147483647
76+
(5 rows)
77+
78+
QUERY: SELECT '' AS "Five", f1 AS "Value",
79+
CASE WHEN (f1 < 0) THEN 'small'
80+
WHEN (f1 = 0) THEN 'zero'
81+
WHEN (f1 = 1) THEN 'one'
82+
WHEN (f1 = 2) THEN 'two'
83+
ELSE 'big'
84+
END AS "Category"
85+
FROM INT4_TBL;
86+
Five| Value|Category
87+
----+-----------+--------
88+
| 0|zero
89+
| 123456|big
90+
| -123456|small
91+
| 2147483647|big
92+
|-2147483647|small
93+
(5 rows)
94+

src/test/regress/sql/case.sql

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
--
2+
-- case.sql
3+
--
4+
-- Test the case statement
5+
6+
--
7+
-- Simplest examples without involving tables
8+
--
9+
10+
SELECT '' AS "One",
11+
CASE
12+
WHEN 1 < 2 THEN 3
13+
END AS "One only = 3";
14+
15+
SELECT '' AS "One",
16+
CASE
17+
WHEN 1 > 2 THEN 3
18+
END AS "One only = Null";
19+
20+
SELECT '' AS "One",
21+
CASE
22+
WHEN 1 < 2 THEN 3
23+
ELSE 4
24+
END AS "One with default = 3";
25+
26+
SELECT '' AS "One",
27+
CASE
28+
WHEN 1 > 2 THEN 3
29+
ELSE 4
30+
END AS "One with default = 4";
31+
32+
SELECT '' AS "One",
33+
CASE
34+
WHEN 1 > 2 THEN 3
35+
WHEN 4 < 5 THEN 6
36+
ELSE 7
37+
END AS "Two with default = 6";
38+
39+
--
40+
-- Examples of targets involving tables
41+
--
42+
43+
SELECT '' AS "Five",
44+
CASE
45+
WHEN f1 >= 0 THEN f1
46+
END AS ">= 0 or Null"
47+
FROM INT4_TBL;
48+
49+
SELECT '' AS "Five",
50+
CASE WHEN f1 >= 0 THEN (f1 - f1)
51+
ELSE f1
52+
END AS "Simplest Math"
53+
FROM INT4_TBL;
54+
55+
SELECT '' AS "Five", f1 AS "Value",
56+
CASE WHEN (f1 < 0) THEN 'small'
57+
WHEN (f1 = 0) THEN 'zero'
58+
WHEN (f1 = 1) THEN 'one'
59+
WHEN (f1 = 2) THEN 'two'
60+
ELSE 'big'
61+
END AS "Category"
62+
FROM INT4_TBL;
63+
64+
/*
65+
SELECT '' AS "Five",
66+
CASE WHEN ((f1 < 0) or (i < 0)) THEN 'small'
67+
WHEN ((f1 = 0) or (i = 0)) THEN 'zero'
68+
WHEN ((f1 = 1) or (i = 1)) THEN 'one'
69+
WHEN ((f1 = 2) or (i = 2)) THEN 'two'
70+
ELSE 'big'
71+
END AS "Category"
72+
FROM INT4_TBL;
73+
*/
74+
75+
--
76+
-- Examples of qualifications involving tables
77+
--
78+

src/test/regress/sql/tests

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ select_implicit
4949
select_having
5050
subselect
5151
union
52+
case
5253
aggregates
5354
transactions
5455
random

0 commit comments

Comments
 (0)