aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas G. Lockhart <lockhart@fourpalms.org>1998-12-04 15:36:51 +0000
committerThomas G. Lockhart <lockhart@fourpalms.org>1998-12-04 15:36:51 +0000
commit47e506fb8fe4dcbf1b70605de0b7fde7e0577c5a (patch)
tree1ba9dde2de9c5af2613fb0cfcb294aaa50a6e355 /src
parentbedd04a551c30350ebb8da2aa2596d16053b5d15 (diff)
downloadpostgresql-47e506fb8fe4dcbf1b70605de0b7fde7e0577c5a.tar.gz
postgresql-47e506fb8fe4dcbf1b70605de0b7fde7e0577c5a.zip
Include test for CASE expression.
Diffstat (limited to 'src')
-rw-r--r--src/test/regress/expected/case.out94
-rw-r--r--src/test/regress/sql/case.sql78
-rw-r--r--src/test/regress/sql/tests1
3 files changed, 173 insertions, 0 deletions
diff --git a/src/test/regress/expected/case.out b/src/test/regress/expected/case.out
new file mode 100644
index 00000000000..5c714616e9f
--- /dev/null
+++ b/src/test/regress/expected/case.out
@@ -0,0 +1,94 @@
+QUERY: SELECT '' AS "One",
+ CASE
+ WHEN 1 < 2 THEN 3
+ END AS "One only = 3";
+One|One only = 3
+---+------------
+ | 3
+(1 row)
+
+QUERY: SELECT '' AS "One",
+ CASE
+ WHEN 1 > 2 THEN 3
+ END AS "One only = Null";
+One|One only = Null
+---+---------------
+ |
+(1 row)
+
+QUERY: SELECT '' AS "One",
+ CASE
+ WHEN 1 < 2 THEN 3
+ ELSE 4
+ END AS "One with default = 3";
+One|One with default = 3
+---+--------------------
+ | 3
+(1 row)
+
+QUERY: SELECT '' AS "One",
+ CASE
+ WHEN 1 > 2 THEN 3
+ ELSE 4
+ END AS "One with default = 4";
+One|One with default = 4
+---+--------------------
+ | 4
+(1 row)
+
+QUERY: SELECT '' AS "One",
+ CASE
+ WHEN 1 > 2 THEN 3
+ WHEN 4 < 5 THEN 6
+ ELSE 7
+ END AS "Two with default = 6";
+One|Two with default = 6
+---+--------------------
+ | 6
+(1 row)
+
+QUERY: SELECT '' AS "Five",
+ CASE
+ WHEN f1 >= 0 THEN f1
+ END AS ">= 0 or Null"
+ FROM INT4_TBL;
+Five|>= 0 or Null
+----+------------
+ | 0
+ | 123456
+ |
+ | 2147483647
+ |
+(5 rows)
+
+QUERY: SELECT '' AS "Five",
+ CASE WHEN f1 >= 0 THEN (f1 - f1)
+ ELSE f1
+ END AS "Simplest Math"
+ FROM INT4_TBL;
+Five|Simplest Math
+----+-------------
+ | 0
+ | 0
+ | -123456
+ | 0
+ | -2147483647
+(5 rows)
+
+QUERY: SELECT '' AS "Five", f1 AS "Value",
+ CASE WHEN (f1 < 0) THEN 'small'
+ WHEN (f1 = 0) THEN 'zero'
+ WHEN (f1 = 1) THEN 'one'
+ WHEN (f1 = 2) THEN 'two'
+ ELSE 'big'
+ END AS "Category"
+ FROM INT4_TBL;
+Five| Value|Category
+----+-----------+--------
+ | 0|zero
+ | 123456|big
+ | -123456|small
+ | 2147483647|big
+ |-2147483647|small
+(5 rows)
+
diff --git a/src/test/regress/sql/case.sql b/src/test/regress/sql/case.sql
new file mode 100644
index 00000000000..6d4a6349b2f
--- /dev/null
+++ b/src/test/regress/sql/case.sql
@@ -0,0 +1,78 @@
+--
+-- case.sql
+--
+-- Test the case statement
+
+--
+-- Simplest examples without involving tables
+--
+
+SELECT '' AS "One",
+ CASE
+ WHEN 1 < 2 THEN 3
+ END AS "One only = 3";
+
+SELECT '' AS "One",
+ CASE
+ WHEN 1 > 2 THEN 3
+ END AS "One only = Null";
+
+SELECT '' AS "One",
+ CASE
+ WHEN 1 < 2 THEN 3
+ ELSE 4
+ END AS "One with default = 3";
+
+SELECT '' AS "One",
+ CASE
+ WHEN 1 > 2 THEN 3
+ ELSE 4
+ END AS "One with default = 4";
+
+SELECT '' AS "One",
+ CASE
+ WHEN 1 > 2 THEN 3
+ WHEN 4 < 5 THEN 6
+ ELSE 7
+ END AS "Two with default = 6";
+
+--
+-- Examples of targets involving tables
+--
+
+SELECT '' AS "Five",
+ CASE
+ WHEN f1 >= 0 THEN f1
+ END AS ">= 0 or Null"
+ FROM INT4_TBL;
+
+SELECT '' AS "Five",
+ CASE WHEN f1 >= 0 THEN (f1 - f1)
+ ELSE f1
+ END AS "Simplest Math"
+ FROM INT4_TBL;
+
+SELECT '' AS "Five", f1 AS "Value",
+ CASE WHEN (f1 < 0) THEN 'small'
+ WHEN (f1 = 0) THEN 'zero'
+ WHEN (f1 = 1) THEN 'one'
+ WHEN (f1 = 2) THEN 'two'
+ ELSE 'big'
+ END AS "Category"
+ FROM INT4_TBL;
+
+/*
+SELECT '' AS "Five",
+ CASE WHEN ((f1 < 0) or (i < 0)) THEN 'small'
+ WHEN ((f1 = 0) or (i = 0)) THEN 'zero'
+ WHEN ((f1 = 1) or (i = 1)) THEN 'one'
+ WHEN ((f1 = 2) or (i = 2)) THEN 'two'
+ ELSE 'big'
+ END AS "Category"
+ FROM INT4_TBL;
+*/
+
+--
+-- Examples of qualifications involving tables
+--
+
diff --git a/src/test/regress/sql/tests b/src/test/regress/sql/tests
index 1780d95be4a..3c3d30b9496 100644
--- a/src/test/regress/sql/tests
+++ b/src/test/regress/sql/tests
@@ -49,6 +49,7 @@ select_implicit
select_having
subselect
union
+case
aggregates
transactions
random