summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael P2011-12-15 04:52:47 +0000
committerMichael P2011-12-15 04:52:47 +0000
commit593134cb10d2129d5be5887602138892446a49da (patch)
tree9826df52af54fff9ca2a09ae7ae8b439a550693e
parentaf3dc64d6197d400269b1f5d392f1d1ba2477da1 (diff)
Fix for regression test temp
Since complete support of INSERT SELECT, now test is merged with normal postgres.
-rw-r--r--src/test/regress/expected/temp_1.out197
-rw-r--r--src/test/regress/sql/temp.sql6
2 files changed, 3 insertions, 200 deletions
diff --git a/src/test/regress/expected/temp_1.out b/src/test/regress/expected/temp_1.out
deleted file mode 100644
index 2e7f73581f..0000000000
--- a/src/test/regress/expected/temp_1.out
+++ /dev/null
@@ -1,197 +0,0 @@
---
--- TEMP
--- Test temp relations and indexes
---
--- test temp table/index masking
-CREATE TABLE temptest(col int);
-CREATE INDEX i_temptest ON temptest(col);
-CREATE TEMP TABLE temptest(tcol int);
-CREATE INDEX i_temptest ON temptest(tcol);
-SELECT * FROM temptest;
- tcol
-------
-(0 rows)
-
-DROP INDEX i_temptest;
-DROP TABLE temptest;
-SELECT * FROM temptest;
- col
------
-(0 rows)
-
-DROP INDEX i_temptest;
-DROP TABLE temptest;
--- test temp table selects
-CREATE TABLE temptest(col int);
-INSERT INTO temptest VALUES (1);
-CREATE TEMP TABLE temptest(tcol float);
-INSERT INTO temptest VALUES (2.1);
-SELECT * FROM temptest;
- tcol
-------
- 2.1
-(1 row)
-
-DROP TABLE temptest;
-SELECT * FROM temptest;
- col
------
- 1
-(1 row)
-
-DROP TABLE temptest;
--- test temp table deletion
-CREATE TEMP TABLE temptest(col int);
-\c
-SELECT * FROM temptest;
-ERROR: relation "temptest" does not exist
-LINE 1: SELECT * FROM temptest;
- ^
--- Test ON COMMIT DELETE ROWS
-CREATE TEMP TABLE temptest(col int) ON COMMIT DELETE ROWS;
-BEGIN;
-INSERT INTO temptest VALUES (1);
-INSERT INTO temptest VALUES (2);
-SELECT * FROM temptest ORDER BY 1;
- col
------
- 1
- 2
-(2 rows)
-
-COMMIT;
-SELECT * FROM temptest;
- col
------
-(0 rows)
-
-DROP TABLE temptest;
-BEGIN;
-CREATE TEMP TABLE temptest(col) ON COMMIT DELETE ROWS AS SELECT 1;
-ERROR: INTO clause not yet supported
-SELECT * FROM temptest;
-ERROR: current transaction is aborted, commands ignored until end of transaction block
-COMMIT;
-SELECT * FROM temptest;
-ERROR: relation "temptest" does not exist
-LINE 1: SELECT * FROM temptest;
- ^
-DROP TABLE temptest;
-ERROR: table "temptest" does not exist
--- Test ON COMMIT DROP
-BEGIN;
-CREATE TEMP TABLE temptest(col int) ON COMMIT DROP;
-INSERT INTO temptest VALUES (1);
-INSERT INTO temptest VALUES (2);
-SELECT * FROM temptest ORDER BY 1;
- col
------
- 1
- 2
-(2 rows)
-
-COMMIT;
-SELECT * FROM temptest;
-ERROR: relation "temptest" does not exist
-LINE 1: SELECT * FROM temptest;
- ^
-BEGIN;
-CREATE TEMP TABLE temptest(col) ON COMMIT DROP AS SELECT 1;
-ERROR: INTO clause not yet supported
-SELECT * FROM temptest;
-ERROR: current transaction is aborted, commands ignored until end of transaction block
-COMMIT;
-SELECT * FROM temptest;
-ERROR: relation "temptest" does not exist
-LINE 1: SELECT * FROM temptest;
- ^
--- ON COMMIT is only allowed for TEMP
-CREATE TABLE temptest(col int) ON COMMIT DELETE ROWS;
-ERROR: ON COMMIT can only be used on temporary tables
-CREATE TABLE temptest(col) ON COMMIT DELETE ROWS AS SELECT 1;
-ERROR: INTO clause not yet supported
--- Test foreign keys
-BEGIN;
-CREATE TEMP TABLE temptest1(col int PRIMARY KEY);
-NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "temptest1_pkey" for table "temptest1"
-CREATE TEMP TABLE temptest2(col int REFERENCES temptest1)
- ON COMMIT DELETE ROWS;
-INSERT INTO temptest1 VALUES (1);
-INSERT INTO temptest2 VALUES (1);
-COMMIT;
-SELECT * FROM temptest1;
- col
------
- 1
-(1 row)
-
-SELECT * FROM temptest2;
- col
------
-(0 rows)
-
-BEGIN;
-CREATE TEMP TABLE temptest3(col int PRIMARY KEY) ON COMMIT DELETE ROWS;
-NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "temptest3_pkey" for table "temptest3"
-CREATE TEMP TABLE temptest4(col int REFERENCES temptest3);
-COMMIT;
-ERROR: unsupported ON COMMIT and foreign key combination
-DETAIL: Table "temptest4" references "temptest3", but they do not have the same ON COMMIT setting.
--- Test manipulation of temp schema's placement in search path
-create table public.whereami (f1 text);
-insert into public.whereami values ('public');
-create temp table whereami (f1 text);
-insert into whereami values ('temp');
-create function public.whoami() returns text
- as $$select 'public'::text$$ language sql;
-create function pg_temp.whoami() returns text
- as $$select 'temp'::text$$ language sql;
--- default should have pg_temp implicitly first, but only for tables
-select * from whereami order by f1;
- f1
-------
- temp
-(1 row)
-
-select whoami();
- whoami
---------
- public
-(1 row)
-
--- can list temp first explicitly, but it still doesn't affect functions
-set search_path = pg_temp, public;
-select * from whereami order by f1;
- f1
-------
- temp
-(1 row)
-
-select whoami();
- whoami
---------
- public
-(1 row)
-
--- or put it last for security
-set search_path = public, pg_temp;
-select * from whereami order by f1;
- f1
---------
- public
-(1 row)
-
-select whoami();
- whoami
---------
- public
-(1 row)
-
--- you can invoke a temp function explicitly, though
-select pg_temp.whoami();
- whoami
---------
- temp
-(1 row)
-
-drop table public.whereami;
diff --git a/src/test/regress/sql/temp.sql b/src/test/regress/sql/temp.sql
index 66b12aea5e..aed4be86cf 100644
--- a/src/test/regress/sql/temp.sql
+++ b/src/test/regress/sql/temp.sql
@@ -134,17 +134,17 @@ create function pg_temp.whoami() returns text
as $$select 'temp'::text$$ language sql;
-- default should have pg_temp implicitly first, but only for tables
-select * from whereami order by f1;
+select * from whereami;
select whoami();
-- can list temp first explicitly, but it still doesn't affect functions
set search_path = pg_temp, public;
-select * from whereami order by f1;
+select * from whereami;
select whoami();
-- or put it last for security
set search_path = public, pg_temp;
-select * from whereami order by f1;
+select * from whereami;
select whoami();
-- you can invoke a temp function explicitly, though