mirror of
https://github.com/postgres/postgres.git
synced 2025-05-08 07:21:33 +03:00
psql: Add various tests
Add tests for psql features - AUTOCOMMIT - ON_ERROR_ROLLBACK - ECHO errors Reviewed-by: Fabien COELHO <coelho@cri.ensmp.fr> Discussion: https://www.postgresql.org/message-id/6954328d-96f2-77f7-735f-7ce493a40949%40enterprisedb.com
This commit is contained in:
parent
ff9f111bce
commit
14d755b000
@ -5179,3 +5179,102 @@ List of access methods
|
||||
pg_catalog | && | anyarray | anyarray | boolean | overlaps
|
||||
(1 row)
|
||||
|
||||
-- AUTOCOMMIT
|
||||
CREATE TABLE ac_test (a int);
|
||||
\set AUTOCOMMIT off
|
||||
INSERT INTO ac_test VALUES (1);
|
||||
COMMIT;
|
||||
SELECT * FROM ac_test;
|
||||
a
|
||||
---
|
||||
1
|
||||
(1 row)
|
||||
|
||||
COMMIT;
|
||||
INSERT INTO ac_test VALUES (2);
|
||||
ROLLBACK;
|
||||
SELECT * FROM ac_test;
|
||||
a
|
||||
---
|
||||
1
|
||||
(1 row)
|
||||
|
||||
COMMIT;
|
||||
BEGIN;
|
||||
INSERT INTO ac_test VALUES (3);
|
||||
COMMIT;
|
||||
SELECT * FROM ac_test;
|
||||
a
|
||||
---
|
||||
1
|
||||
3
|
||||
(2 rows)
|
||||
|
||||
COMMIT;
|
||||
BEGIN;
|
||||
INSERT INTO ac_test VALUES (4);
|
||||
ROLLBACK;
|
||||
SELECT * FROM ac_test;
|
||||
a
|
||||
---
|
||||
1
|
||||
3
|
||||
(2 rows)
|
||||
|
||||
COMMIT;
|
||||
\set AUTOCOMMIT on
|
||||
DROP TABLE ac_test;
|
||||
SELECT * FROM ac_test; -- should be gone now
|
||||
ERROR: relation "ac_test" does not exist
|
||||
LINE 1: SELECT * FROM ac_test;
|
||||
^
|
||||
-- ON_ERROR_ROLLBACK
|
||||
\set ON_ERROR_ROLLBACK on
|
||||
CREATE TABLE oer_test (a int);
|
||||
BEGIN;
|
||||
INSERT INTO oer_test VALUES (1);
|
||||
INSERT INTO oer_test VALUES ('foo');
|
||||
ERROR: invalid input syntax for type integer: "foo"
|
||||
LINE 1: INSERT INTO oer_test VALUES ('foo');
|
||||
^
|
||||
INSERT INTO oer_test VALUES (3);
|
||||
COMMIT;
|
||||
SELECT * FROM oer_test;
|
||||
a
|
||||
---
|
||||
1
|
||||
3
|
||||
(2 rows)
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO oer_test VALUES (4);
|
||||
ROLLBACK;
|
||||
SELECT * FROM oer_test;
|
||||
a
|
||||
---
|
||||
1
|
||||
3
|
||||
(2 rows)
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO oer_test VALUES (5);
|
||||
COMMIT AND CHAIN;
|
||||
INSERT INTO oer_test VALUES (6);
|
||||
COMMIT;
|
||||
SELECT * FROM oer_test;
|
||||
a
|
||||
---
|
||||
1
|
||||
3
|
||||
5
|
||||
6
|
||||
(4 rows)
|
||||
|
||||
DROP TABLE oer_test;
|
||||
\set ON_ERROR_ROLLBACK off
|
||||
-- ECHO errors
|
||||
\set ECHO errors
|
||||
ERROR: relation "notexists" does not exist
|
||||
LINE 1: SELECT * FROM notexists;
|
||||
^
|
||||
STATEMENT: SELECT * FROM notexists;
|
||||
|
@ -1241,3 +1241,66 @@ drop role regress_partitioning_role;
|
||||
\dfa bit* small*
|
||||
\do - pg_catalog.int4
|
||||
\do && anyarray *
|
||||
|
||||
-- AUTOCOMMIT
|
||||
|
||||
CREATE TABLE ac_test (a int);
|
||||
\set AUTOCOMMIT off
|
||||
|
||||
INSERT INTO ac_test VALUES (1);
|
||||
COMMIT;
|
||||
SELECT * FROM ac_test;
|
||||
COMMIT;
|
||||
|
||||
INSERT INTO ac_test VALUES (2);
|
||||
ROLLBACK;
|
||||
SELECT * FROM ac_test;
|
||||
COMMIT;
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO ac_test VALUES (3);
|
||||
COMMIT;
|
||||
SELECT * FROM ac_test;
|
||||
COMMIT;
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO ac_test VALUES (4);
|
||||
ROLLBACK;
|
||||
SELECT * FROM ac_test;
|
||||
COMMIT;
|
||||
|
||||
\set AUTOCOMMIT on
|
||||
DROP TABLE ac_test;
|
||||
SELECT * FROM ac_test; -- should be gone now
|
||||
|
||||
-- ON_ERROR_ROLLBACK
|
||||
|
||||
\set ON_ERROR_ROLLBACK on
|
||||
CREATE TABLE oer_test (a int);
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO oer_test VALUES (1);
|
||||
INSERT INTO oer_test VALUES ('foo');
|
||||
INSERT INTO oer_test VALUES (3);
|
||||
COMMIT;
|
||||
SELECT * FROM oer_test;
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO oer_test VALUES (4);
|
||||
ROLLBACK;
|
||||
SELECT * FROM oer_test;
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO oer_test VALUES (5);
|
||||
COMMIT AND CHAIN;
|
||||
INSERT INTO oer_test VALUES (6);
|
||||
COMMIT;
|
||||
SELECT * FROM oer_test;
|
||||
|
||||
DROP TABLE oer_test;
|
||||
\set ON_ERROR_ROLLBACK off
|
||||
|
||||
-- ECHO errors
|
||||
\set ECHO errors
|
||||
SELECT * FROM notexists;
|
||||
\set ECHO none
|
||||
|
Loading…
x
Reference in New Issue
Block a user