mirror of
https://github.com/postgres/postgres.git
synced 2026-02-12 15:23:16 -05:00
only remnant of this failed experiment is that the server will take SET AUTOCOMMIT TO ON. Still TODO: provide some client-side autocommit logic in libpq.
85 lines
1.3 KiB
PL/PgSQL
85 lines
1.3 KiB
PL/PgSQL
--
|
|
-- 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;
|
|
|
|
DROP INDEX i_temptest;
|
|
|
|
DROP TABLE temptest;
|
|
|
|
SELECT * FROM temptest;
|
|
|
|
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;
|
|
|
|
DROP TABLE temptest;
|
|
|
|
SELECT * FROM temptest;
|
|
|
|
DROP TABLE temptest;
|
|
|
|
-- test temp table deletion
|
|
|
|
CREATE TEMP TABLE temptest(col int);
|
|
|
|
\c regression
|
|
|
|
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;
|
|
COMMIT;
|
|
|
|
SELECT * FROM temptest;
|
|
|
|
DROP TABLE temptest;
|
|
|
|
-- 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;
|
|
COMMIT;
|
|
|
|
SELECT * FROM temptest;
|
|
|
|
-- ON COMMIT is only allowed for TEMP
|
|
|
|
CREATE TABLE temptest(col int) ON COMMIT DELETE ROWS;
|