postgresql/src/test/regress/expected/errors.out
Tom Lane 7d05310828 Fix problem reported by Alex Korn: if a relation has been dropped and
recreated since the start of our transaction, our first reference to it
errored out because we'd try to reuse our old relcache entry for it.
Do this by accepting SI inval messages just before relcache search in
heap_openr, so that dead relcache entries will be flushed before we
search.  Also, break heap_open/openr into two pairs of routines,
relation_open(r) and heap_open(r).  The relation_open routines make
no tests on relkind and so can be used to open anything that has a
pg_class entry.  The heap_open routines are wrappers that add a relkind
test to preserve their established behavior.  Use the relation_open
routines in several places that had various kluge solutions for opening
rels that might be either heap or index rels.

Also, remove the old 'heap stats' code that's been superseded by Jan's
stats collector, and clean up some inconsistencies in error reporting
between the different types of ALTER TABLE.
2001-11-02 16:30:29 +00:00

234 lines
6.5 KiB
Plaintext

--
-- ERRORS
--
-- bad in postquel, but ok in postsql
select 1
--
-- UNSUPPORTED STUFF
-- doesn't work
-- attachas nonesuch
--
-- doesn't work
-- notify pg_class
--
--
-- RETRIEVE
-- missing relation name
select
-- no such relation
select * from nonesuch;
ERROR: parser: parse error at or near "select"
-- 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"
-- 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 ";"
-- no such relation
delete from nonesuch;
ERROR: Relation "nonesuch" does not exist
--
-- DESTROY
-- missing relation name (this had better not wildcard!)
drop table;
ERROR: parser: parse error at or near ";"
-- no such relation
drop table nonesuch;
ERROR: table "nonesuch" does not exist
--
-- RENAME
-- relation renaming
-- missing relation name
alter table rename;
ERROR: parser: parse error at or near ";"
-- 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
-- system relation
alter table stud_emp rename to pg_stud_emp;
ERROR: renamerel: Illegal class name: "pg_stud_emp" -- pg_ is reserved for system catalogs
-- 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;
NOTICE: ROLLBACK: no transaction in progress
-- not in a xact
end;
NOTICE: COMMIT: no transaction in progress
--
-- DEFINE AGGREGATE
-- sfunc/finalfunc type disagreement
create aggregate newavg2 (sfunc = int4pl,
basetype = int4,
stype = int4,
finalfunc = int2um,
initcond = '0');
ERROR: AggregateCreate: function 'int2um(int4)' does not exist
-- left out basetype
create aggregate newcnt1 (sfunc = int4inc,
stype = int4,
initcond = '0');
ERROR: Define: "basetype" unspecified
--
-- REMOVE INDEX
-- missing index name
drop index;
ERROR: parser: parse error at or near ";"
-- bad index name
drop index 314159;
ERROR: parser: parse error at or near "314159"
-- no such index
drop index nonesuch;
ERROR: index "nonesuch" does not exist
--
-- REMOVE AGGREGATE
-- missing aggregate name
drop aggregate;
ERROR: parser: parse error at or near ";"
-- missing aggregate type
drop aggregate newcnt1;
ERROR: parser: parse error at or near ";"
-- bad aggregate name
drop aggregate 314159 (int);
ERROR: parser: parse error at or near "314159"
-- bad aggregate type
drop aggregate newcnt (nonesuch);
ERROR: RemoveAggregate: type 'nonesuch' does not exist
-- no such aggregate
drop aggregate nonesuch (int4);
ERROR: RemoveAggregate: aggregate 'nonesuch' for type integer does not exist
-- no such aggregate for type
drop aggregate newcnt (float4);
ERROR: RemoveAggregate: aggregate 'newcnt' for type real does not exist
--
-- REMOVE FUNCTION
-- missing function name
drop function ();
ERROR: parser: parse error at or near "("
-- bad function name
drop function 314159();
ERROR: parser: parse error at or near "314159"
-- no such function
drop function nonesuch();
ERROR: RemoveFunction: function 'nonesuch()' does not exist
--
-- REMOVE TYPE
-- missing type name
drop type;
ERROR: parser: parse error at or near ";"
-- bad type name
drop type 314159;
ERROR: parser: parse error at or near "314159"
-- no such type
drop type nonesuch;
ERROR: RemoveType: type 'nonesuch' does not exist
--
-- DROP OPERATOR
-- missing everything
drop operator;
ERROR: parser: parse error at or near ";"
-- bad operator name
drop operator equals;
ERROR: parser: parse error at or near "equals"
-- missing type list
drop operator ===;
ERROR: parser: parse error at or near ";"
-- missing parentheses
drop operator int4, int4;
ERROR: parser: parse error at or near "int4"
-- missing operator name
drop operator (int4, int4);
ERROR: parser: parse error at or near "("
-- missing type list contents
drop operator === ();
ERROR: parser: parse error at or near ")"
-- 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: binary operator '===' taking '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 ","
-- no such type1
drop operator = (nonesuch, int4);
ERROR: RemoveOperator: type 'nonesuch' does not exist
-- no such type2
drop operator = (int4, nonesuch);
ERROR: RemoveOperator: type 'nonesuch' does not exist
-- no such type2
drop operator = (int4, );
ERROR: parser: parse error at or near ")"
--
-- DROP RULE
-- missing rule name
drop rule;
ERROR: parser: parse error at or near ";"
-- bad rule name
drop rule 314159;
ERROR: parser: parse error at or near "314159"
-- no such rule
drop rule nonesuch;
ERROR: Rule or view "nonesuch" not found
-- bad keyword
drop tuple rule nonesuch;
ERROR: parser: parse error at or near "tuple"
-- no such rule
drop instance rule nonesuch;
ERROR: parser: parse error at or near "instance"
-- no such rule
drop rewrite rule nonesuch;
ERROR: parser: parse error at or near "rewrite"