summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/int2.out13
-rw-r--r--src/test/regress/expected/int4.out13
-rw-r--r--src/test/regress/expected/int8.out13
-rw-r--r--src/test/regress/sql/int2.sql4
-rw-r--r--src/test/regress/sql/int4.sql4
-rw-r--r--src/test/regress/sql/int8.sql4
6 files changed, 51 insertions, 0 deletions
diff --git a/src/test/regress/expected/int2.out b/src/test/regress/expected/int2.out
index 8fff981d0a..3bb26b3f48 100644
--- a/src/test/regress/expected/int2.out
+++ b/src/test/regress/expected/int2.out
@@ -242,3 +242,16 @@ SELECT '' AS five, i.f1, i.f1 / int4 '2' AS x FROM INT2_TBL i;
| -32767 | -16383
(5 rows)
+-- corner cases
+SELECT (1<<15-1)::int2::text;
+ text
+-------
+ 16384
+(1 row)
+
+SELECT (-1<<15)::int2::text;
+ text
+--------
+ -32768
+(1 row)
+
diff --git a/src/test/regress/expected/int4.out b/src/test/regress/expected/int4.out
index 3fadb7bbdb..42095c7844 100644
--- a/src/test/regress/expected/int4.out
+++ b/src/test/regress/expected/int4.out
@@ -329,3 +329,16 @@ SELECT (2 + 2) / 2 AS two;
2
(1 row)
+-- corner cases
+SELECT (1<<31-1)::int4::text;
+ text
+------------
+ 1073741824
+(1 row)
+
+SELECT (1<<31)::int4::text;
+ text
+-------------
+ -2147483648
+(1 row)
+
diff --git a/src/test/regress/expected/int8.out b/src/test/regress/expected/int8.out
index c8e2dad683..e156067e88 100644
--- a/src/test/regress/expected/int8.out
+++ b/src/test/regress/expected/int8.out
@@ -802,3 +802,16 @@ SELECT * FROM generate_series('+4567890123456789'::int8, '+4567890123456799'::in
4567890123456799
(6 rows)
+-- corner cases
+SELECT (1<<63-1)::int8::text;
+ text
+------------
+ 1073741824
+(1 row)
+
+SELECT (1<<63)::int8::text;
+ text
+-------------
+ -2147483648
+(1 row)
+
diff --git a/src/test/regress/sql/int2.sql b/src/test/regress/sql/int2.sql
index 20d31b6420..8bffe53b03 100644
--- a/src/test/regress/sql/int2.sql
+++ b/src/test/regress/sql/int2.sql
@@ -83,3 +83,7 @@ SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT2_TBL i;
SELECT '' AS five, i.f1, i.f1 / int2 '2' AS x FROM INT2_TBL i;
SELECT '' AS five, i.f1, i.f1 / int4 '2' AS x FROM INT2_TBL i;
+
+-- corner cases
+SELECT (1<<15-1)::int2::text;
+SELECT (-1<<15)::int2::text;
diff --git a/src/test/regress/sql/int4.sql b/src/test/regress/sql/int4.sql
index 5e84f64360..39bfec1b0d 100644
--- a/src/test/regress/sql/int4.sql
+++ b/src/test/regress/sql/int4.sql
@@ -123,3 +123,7 @@ SELECT 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 AS ten;
SELECT 2 + 2 / 2 AS three;
SELECT (2 + 2) / 2 AS two;
+
+-- corner cases
+SELECT (1<<31-1)::int4::text;
+SELECT (1<<31)::int4::text;
diff --git a/src/test/regress/sql/int8.sql b/src/test/regress/sql/int8.sql
index 648563c374..7fff03cd66 100644
--- a/src/test/regress/sql/int8.sql
+++ b/src/test/regress/sql/int8.sql
@@ -190,3 +190,7 @@ SELECT q1, q1 << 2 AS "shl", q1 >> 3 AS "shr" FROM INT8_TBL;
SELECT * FROM generate_series('+4567890123456789'::int8, '+4567890123456799'::int8);
SELECT * FROM generate_series('+4567890123456789'::int8, '+4567890123456799'::int8, 0);
SELECT * FROM generate_series('+4567890123456789'::int8, '+4567890123456799'::int8, 2);
+
+-- corner cases
+SELECT (1<<63-1)::int8::text;
+SELECT (1<<63)::int8::text;