aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/errors.out41
-rw-r--r--src/test/regress/expected/float4-exp-three-digits.out2
-rw-r--r--src/test/regress/expected/float4.out2
-rw-r--r--src/test/regress/expected/float8-exp-three-digits.out2
-rw-r--r--src/test/regress/expected/float8-fp-exception.out2
-rw-r--r--src/test/regress/expected/float8-small-is-zero.out2
-rw-r--r--src/test/regress/expected/float8.out2
-rw-r--r--src/test/regress/sql/errors.sql42
8 files changed, 72 insertions, 23 deletions
diff --git a/src/test/regress/expected/errors.out b/src/test/regress/expected/errors.out
index 698ccc85654..6c386292176 100644
--- a/src/test/regress/expected/errors.out
+++ b/src/test/regress/expected/errors.out
@@ -18,7 +18,7 @@ select 1;
-- notify pg_class
--
--
--- RETRIEVE
+-- SELECT
-- missing relation name
select;
@@ -54,7 +54,7 @@ ERROR: parser: parse error at or near ";" at character 12
delete from nonesuch;
ERROR: Relation "nonesuch" does not exist
--
--- DESTROY
+-- DROP
-- missing relation name (this had better not wildcard!)
drop table;
@@ -63,7 +63,7 @@ ERROR: parser: parse error at or near ";" at character 11
drop table nonesuch;
ERROR: table "nonesuch" does not exist
--
--- RENAME
+-- ALTER TABLE
-- relation renaming
-- missing relation name
@@ -104,7 +104,7 @@ WARNING: ROLLBACK: no transaction in progress
end;
WARNING: COMMIT: no transaction in progress
--
--- DEFINE AGGREGATE
+-- CREATE AGGREGATE
-- sfunc/finalfunc type disagreement
create aggregate newavg2 (sfunc = int4pl,
basetype = int4,
@@ -118,7 +118,7 @@ create aggregate newcnt1 (sfunc = int4inc,
initcond = '0');
ERROR: Define: "basetype" unspecified
--
--- REMOVE INDEX
+-- DROP INDEX
-- missing index name
drop index;
@@ -130,7 +130,7 @@ ERROR: parser: parse error at or near "314159" at character 12
drop index nonesuch;
ERROR: index "nonesuch" does not exist
--
--- REMOVE AGGREGATE
+-- DROP AGGREGATE
-- missing aggregate name
drop aggregate;
@@ -151,7 +151,7 @@ ERROR: RemoveAggregate: aggregate nonesuch(integer) does not exist
drop aggregate newcnt (float4);
ERROR: RemoveAggregate: aggregate newcnt(real) does not exist
--
--- REMOVE FUNCTION
+-- DROP FUNCTION
-- missing function name
drop function ();
@@ -163,7 +163,7 @@ ERROR: parser: parse error at or near "314159" at character 15
drop function nonesuch();
ERROR: RemoveFunction: function nonesuch() does not exist
--
--- REMOVE TYPE
+-- DROP TYPE
-- missing type name
drop type;
@@ -237,3 +237,28 @@ ERROR: parser: parse error at or near "instance" at character 6
-- no such rule
drop rewrite rule nonesuch;
ERROR: parser: parse error at or near "rewrite" at character 6
+--
+-- Check that division-by-zero is properly caught.
+--
+select 1/0;
+ERROR: division by zero
+select 1::int8/0;
+ERROR: division by zero
+select 1/0::int8;
+ERROR: division by zero
+select 1::int2/0;
+ERROR: division by zero
+select 1/0::int2;
+ERROR: division by zero
+select 1::numeric/0;
+ERROR: division by zero
+select 1/0::numeric;
+ERROR: division by zero
+select 1::float8/0;
+ERROR: division by zero
+select 1/0::float8;
+ERROR: division by zero
+select 1::float4/0;
+ERROR: division by zero
+select 1/0::float4;
+ERROR: division by zero
diff --git a/src/test/regress/expected/float4-exp-three-digits.out b/src/test/regress/expected/float4-exp-three-digits.out
index 8efd434a85f..72751ae29e9 100644
--- a/src/test/regress/expected/float4-exp-three-digits.out
+++ b/src/test/regress/expected/float4-exp-three-digits.out
@@ -113,7 +113,7 @@ SELECT '' AS three, f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
-- test divide by zero
SELECT '' AS bad, f.f1 / '0.0' from FLOAT4_TBL f;
-ERROR: float4div: divide by zero error
+ERROR: division by zero
SELECT '' AS five, FLOAT4_TBL.*;
five | f1
------+--------------
diff --git a/src/test/regress/expected/float4.out b/src/test/regress/expected/float4.out
index e03db639c5c..7ec463b7f31 100644
--- a/src/test/regress/expected/float4.out
+++ b/src/test/regress/expected/float4.out
@@ -113,7 +113,7 @@ SELECT '' AS three, f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
-- test divide by zero
SELECT '' AS bad, f.f1 / '0.0' from FLOAT4_TBL f;
-ERROR: float4div: divide by zero error
+ERROR: division by zero
SELECT '' AS five, FLOAT4_TBL.*;
five | f1
------+-------------
diff --git a/src/test/regress/expected/float8-exp-three-digits.out b/src/test/regress/expected/float8-exp-three-digits.out
index b346ed5c38f..9d38aee1961 100644
--- a/src/test/regress/expected/float8-exp-three-digits.out
+++ b/src/test/regress/expected/float8-exp-three-digits.out
@@ -257,7 +257,7 @@ ERROR: can't take log of a negative number
SELECT '' AS bad, exp(f.f1) from FLOAT8_TBL f;
ERROR: exp() result is out of range
SELECT '' AS bad, f.f1 / '0.0' from FLOAT8_TBL f;
-ERROR: float8div: divide by zero error
+ERROR: division by zero
SELECT '' AS five, FLOAT8_TBL.*;
five | f1
------+-----------------------
diff --git a/src/test/regress/expected/float8-fp-exception.out b/src/test/regress/expected/float8-fp-exception.out
index 15d96ff365d..5c2df1e7c01 100644
--- a/src/test/regress/expected/float8-fp-exception.out
+++ b/src/test/regress/expected/float8-fp-exception.out
@@ -257,7 +257,7 @@ ERROR: can't take log of a negative number
SELECT '' AS bad, exp(f.f1) from FLOAT8_TBL f;
ERROR: exp() result is out of range
SELECT '' AS bad, f.f1 / '0.0' from FLOAT8_TBL f;
-ERROR: float8div: divide by zero error
+ERROR: division by zero
SELECT '' AS five, FLOAT8_TBL.*;
five | f1
------+-----------------------
diff --git a/src/test/regress/expected/float8-small-is-zero.out b/src/test/regress/expected/float8-small-is-zero.out
index 119051f3993..448bfc40bc2 100644
--- a/src/test/regress/expected/float8-small-is-zero.out
+++ b/src/test/regress/expected/float8-small-is-zero.out
@@ -257,7 +257,7 @@ ERROR: can't take log of a negative number
SELECT '' AS bad, exp(f.f1) from FLOAT8_TBL f;
ERROR: exp() result is out of range
SELECT '' AS bad, f.f1 / '0.0' from FLOAT8_TBL f;
-ERROR: float8div: divide by zero error
+ERROR: division by zero
SELECT '' AS five, FLOAT8_TBL.*;
five | f1
------+-----------------------
diff --git a/src/test/regress/expected/float8.out b/src/test/regress/expected/float8.out
index d91427c6ffa..576768785fd 100644
--- a/src/test/regress/expected/float8.out
+++ b/src/test/regress/expected/float8.out
@@ -257,7 +257,7 @@ ERROR: can't take log of a negative number
SELECT '' AS bad, exp(f.f1) from FLOAT8_TBL f;
ERROR: exp() result is out of range
SELECT '' AS bad, f.f1 / '0.0' from FLOAT8_TBL f;
-ERROR: float8div: divide by zero error
+ERROR: division by zero
SELECT '' AS five, FLOAT8_TBL.*;
five | f1
------+-----------------------
diff --git a/src/test/regress/sql/errors.sql b/src/test/regress/sql/errors.sql
index dee19bc136f..5876244ee3b 100644
--- a/src/test/regress/sql/errors.sql
+++ b/src/test/regress/sql/errors.sql
@@ -17,7 +17,7 @@ select 1;
--
--
--- RETRIEVE
+-- SELECT
-- missing relation name
select;
@@ -55,7 +55,7 @@ delete from nonesuch;
--
--- DESTROY
+-- DROP
-- missing relation name (this had better not wildcard!)
drop table;
@@ -65,9 +65,8 @@ drop table nonesuch;
--
--- RENAME
+-- ALTER TABLE
-
-- relation renaming
-- missing relation name
@@ -112,7 +111,7 @@ end;
--
--- DEFINE AGGREGATE
+-- CREATE AGGREGATE
-- sfunc/finalfunc type disagreement
create aggregate newavg2 (sfunc = int4pl,
@@ -128,7 +127,7 @@ create aggregate newcnt1 (sfunc = int4inc,
--
--- REMOVE INDEX
+-- DROP INDEX
-- missing index name
drop index;
@@ -141,7 +140,7 @@ drop index nonesuch;
--
--- REMOVE AGGREGATE
+-- DROP AGGREGATE
-- missing aggregate name
drop aggregate;
@@ -163,7 +162,7 @@ drop aggregate newcnt (float4);
--
--- REMOVE FUNCTION
+-- DROP FUNCTION
-- missing function name
drop function ();
@@ -176,7 +175,7 @@ drop function nonesuch();
--
--- REMOVE TYPE
+-- DROP TYPE
-- missing type name
drop type;
@@ -252,3 +251,28 @@ drop instance rule nonesuch on noplace;
-- no such rule
drop rewrite rule nonesuch;
+--
+-- Check that division-by-zero is properly caught.
+--
+
+select 1/0;
+
+select 1::int8/0;
+
+select 1/0::int8;
+
+select 1::int2/0;
+
+select 1/0::int2;
+
+select 1::numeric/0;
+
+select 1/0::numeric;
+
+select 1::float8/0;
+
+select 1/0::float8;
+
+select 1::float4/0;
+
+select 1/0::float4;