postgresql/src/test/regress/expected/errors.out
Tom Lane 31e69ccb21 Add explicit tests for division by zero to all user-accessible integer
division and modulo functions, to avoid problems on OS X (which fails to
trap 0 divide at all) and Windows (which traps it in some bizarre
nonstandard fashion).  Standardize on 'division by zero' as the one true
spelling of this error message.  Add regression tests as suggested by
Neil Conway.
2003-03-11 21:01:33 +00:00

265 lines
7.4 KiB
Plaintext

--
-- ERRORS
--
-- bad in postquel, but ok in postsql
select 1;
?column?
----------
1
(1 row)
--
-- UNSUPPORTED STUFF
-- doesn't work
-- attachas nonesuch
--
-- doesn't work
-- notify pg_class
--
--
-- SELECT
-- missing relation name
select;
ERROR: parser: parse error at or near ";" at character 7
-- no such relation
select * from nonesuch;
ERROR: Relation "nonesuch" does not exist
-- missing target list
select from pg_database;
ERROR: parser: parse error at or near "from" at character 8
-- bad name in target list
select nonesuch from pg_database;
ERROR: Attribute "nonesuch" not found
-- bad attribute name on lhs of operator
select * from pg_database where nonesuch = pg_database.datname;
ERROR: Attribute "nonesuch" not found
-- bad attribute name on rhs of operator
select * from pg_database where pg_database.datname = nonesuch;
ERROR: Attribute "nonesuch" not found
-- bad select distinct on syntax, distinct attribute missing
select distinct on (foobar) from pg_database;
ERROR: parser: parse error at or near "from" at character 29
-- bad select distinct on syntax, distinct attribute not in target list
select distinct on (foobar) * from pg_database;
ERROR: Attribute "foobar" not found
--
-- DELETE
-- missing relation name (this had better not wildcard!)
delete from;
ERROR: parser: parse error at or near ";" at character 12
-- no such relation
delete from nonesuch;
ERROR: Relation "nonesuch" does not exist
--
-- DROP
-- missing relation name (this had better not wildcard!)
drop table;
ERROR: parser: parse error at or near ";" at character 11
-- no such relation
drop table nonesuch;
ERROR: table "nonesuch" does not exist
--
-- ALTER TABLE
-- relation renaming
-- missing relation name
alter table rename;
ERROR: parser: parse error at or near ";" at character 19
-- no such relation
alter table nonesuch rename to newnonesuch;
ERROR: Relation "nonesuch" does not exist
-- no such relation
alter table nonesuch rename to stud_emp;
ERROR: Relation "nonesuch" does not exist
-- conflict
alter table stud_emp rename to aggtest;
ERROR: renamerel: relation "aggtest" exists
-- self-conflict
alter table stud_emp rename to stud_emp;
ERROR: renamerel: relation "stud_emp" exists
-- attribute renaming
-- no such relation
alter table nonesuchrel rename column nonesuchatt to newnonesuchatt;
ERROR: Relation "nonesuchrel" does not exist
-- no such attribute
alter table emp rename column nonesuchatt to newnonesuchatt;
ERROR: renameatt: attribute "nonesuchatt" does not exist
-- conflict
alter table emp rename column salary to manager;
ERROR: renameatt: attribute "manager" exists
-- conflict
alter table emp rename column salary to oid;
ERROR: renameatt: attribute "oid" exists
--
-- TRANSACTION STUFF
-- not in a xact
abort;
WARNING: ROLLBACK: no transaction in progress
-- not in a xact
end;
WARNING: COMMIT: no transaction in progress
--
-- CREATE AGGREGATE
-- sfunc/finalfunc type disagreement
create aggregate newavg2 (sfunc = int4pl,
basetype = int4,
stype = int4,
finalfunc = int2um,
initcond = '0');
ERROR: AggregateCreate: function int2um(integer) does not exist
-- left out basetype
create aggregate newcnt1 (sfunc = int4inc,
stype = int4,
initcond = '0');
ERROR: Define: "basetype" unspecified
--
-- DROP INDEX
-- missing index name
drop index;
ERROR: parser: parse error at or near ";" at character 11
-- bad index name
drop index 314159;
ERROR: parser: parse error at or near "314159" at character 12
-- no such index
drop index nonesuch;
ERROR: index "nonesuch" does not exist
--
-- DROP AGGREGATE
-- missing aggregate name
drop aggregate;
ERROR: parser: parse error at or near ";" at character 15
-- missing aggregate type
drop aggregate newcnt1;
ERROR: parser: parse error at or near ";" at character 23
-- bad aggregate name
drop aggregate 314159 (int);
ERROR: parser: parse error at or near "314159" at character 16
-- bad aggregate type
drop aggregate newcnt (nonesuch);
ERROR: Type "nonesuch" does not exist
-- no such aggregate
drop aggregate nonesuch (int4);
ERROR: RemoveAggregate: aggregate nonesuch(integer) does not exist
-- no such aggregate for type
drop aggregate newcnt (float4);
ERROR: RemoveAggregate: aggregate newcnt(real) does not exist
--
-- DROP FUNCTION
-- missing function name
drop function ();
ERROR: parser: parse error at or near "(" at character 15
-- bad function name
drop function 314159();
ERROR: parser: parse error at or near "314159" at character 15
-- no such function
drop function nonesuch();
ERROR: RemoveFunction: function nonesuch() does not exist
--
-- DROP TYPE
-- missing type name
drop type;
ERROR: parser: parse error at or near ";" at character 10
-- bad type name
drop type 314159;
ERROR: parser: parse error at or near "314159" at character 11
-- no such type
drop type nonesuch;
ERROR: Type "nonesuch" does not exist
--
-- DROP OPERATOR
-- missing everything
drop operator;
ERROR: parser: parse error at or near ";" at character 14
-- bad operator name
drop operator equals;
ERROR: parser: parse error at or near ";" at character 21
-- missing type list
drop operator ===;
ERROR: parser: parse error at or near ";" at character 18
-- missing parentheses
drop operator int4, int4;
ERROR: parser: parse error at or near "," at character 19
-- missing operator name
drop operator (int4, int4);
ERROR: parser: parse error at or near "(" at character 15
-- missing type list contents
drop operator === ();
ERROR: parser: parse error at or near ")" at character 20
-- no such operator
drop operator === (int4);
ERROR: parser: argument type missing (use NONE for unary operators)
-- no such operator by that name
drop operator === (int4, int4);
ERROR: RemoveOperator: Operator '===' for types 'int4' and 'int4' does not exist
-- no such type1
drop operator = (nonesuch);
ERROR: parser: argument type missing (use NONE for unary operators)
-- no such type1
drop operator = ( , int4);
ERROR: parser: parse error at or near "," at character 19
-- no such type1
drop operator = (nonesuch, int4);
ERROR: Type "nonesuch" does not exist
-- no such type2
drop operator = (int4, nonesuch);
ERROR: Type "nonesuch" does not exist
-- no such type2
drop operator = (int4, );
ERROR: parser: parse error at or near ")" at character 24
--
-- DROP RULE
-- missing rule name
drop rule;
ERROR: parser: parse error at or near ";" at character 10
-- bad rule name
drop rule 314159;
ERROR: parser: parse error at or near "314159" at character 11
-- no such rule
drop rule nonesuch on noplace;
ERROR: Relation "noplace" does not exist
-- bad keyword
drop tuple rule nonesuch;
ERROR: parser: parse error at or near "tuple" at character 6
-- no such rule
drop instance rule nonesuch on noplace;
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