262 lines
7.3 KiB
Plaintext
262 lines
7.3 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: All fields in the UNIQUE ON clause must appear in the target list
|
|
--
|
|
-- 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: Relation '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" nonexistent
|
|
-- 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
|
|
NOTICE: UserAbortTransactionBlock and not in in-progress state
|
|
abort;
|
|
-- not in a xact
|
|
NOTICE: EndTransactionBlock and not inprogress/abort state
|
|
end;
|
|
--
|
|
-- DEFINE AGGREGATE
|
|
|
|
-- left out finalfunc
|
|
create aggregate newavg1 (sfunc1 = int4pl,
|
|
basetype = int4,
|
|
stype1 = int4,
|
|
sfunc2 = int4inc,
|
|
stype2 = int4,
|
|
initcond1 = '0',
|
|
initcond2 = '0');
|
|
ERROR: AggregateCreate: Aggregate must have final function with both transition functions
|
|
-- sfunc return type disagreement
|
|
create aggregate newavg2 (sfunc1 = int4pl,
|
|
basetype = int4,
|
|
stype1 = int4,
|
|
sfunc2 = int2inc,
|
|
stype2 = int2,
|
|
finalfunc = int4div,
|
|
initcond1 = '0',
|
|
initcond2 = '0');
|
|
ERROR: AggregateCreate: 'int4div'('int4','int2') does not exist
|
|
-- sfunc/finalfunc type disagreement
|
|
create aggregate newavg3 (sfunc1 = int4pl,
|
|
basetype = int4,
|
|
stype1 = int4,
|
|
sfunc2 = int4inc,
|
|
stype2 = int4,
|
|
finalfunc = int2div,
|
|
initcond1 = '0',
|
|
initcond2 = '0');
|
|
ERROR: AggregateCreate: 'int2div'('int4','int4') does not exist
|
|
-- left out basetype
|
|
create aggregate newcnt1 (sfunc2 = int4inc,
|
|
stype2 = int4,
|
|
initcond2 = '0');
|
|
ERROR: Define: "basetype" unspecified
|
|
-- left out initcond2 (for sfunc2)
|
|
create aggregate newcnt1 (sfunc2 = int4inc,
|
|
basetype = int4,
|
|
stype2 = int4);
|
|
ERROR: AggregateCreate: transition function 2 MUST have an initial value
|
|
--
|
|
-- 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" nonexistent
|
|
--
|
|
-- REMOVE AGGREGATE
|
|
|
|
-- missing aggregate name
|
|
drop aggregate;
|
|
ERROR: parser: parse error at or near ""
|
|
-- bad aggregate name
|
|
drop aggregate 314159;
|
|
ERROR: parser: parse error at or near "314159"
|
|
-- no such aggregate
|
|
drop aggregate nonesuch;
|
|
ERROR: parser: parse error at or near ""
|
|
-- missing aggregate type
|
|
drop aggregate newcnt1;
|
|
ERROR: parser: parse error at or near ""
|
|
-- bad aggregate type
|
|
drop aggregate newcnt nonesuch;
|
|
ERROR: RemoveAggregate: type 'nonesuch' does not exist
|
|
-- no such aggregate for type
|
|
drop aggregate newcnt float4;
|
|
ERROR: RemoveAggregate: aggregate 'newcnt' for 'float4' 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"
|