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
|
pg_catalog | && | anyarray | anyarray | boolean | overlaps
|
||||||
(1 row)
|
(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*
|
\dfa bit* small*
|
||||||
\do - pg_catalog.int4
|
\do - pg_catalog.int4
|
||||||
\do && anyarray *
|
\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