diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/sequence.out | 59 | ||||
| -rw-r--r-- | src/test/regress/sql/sequence.sql | 27 |
2 files changed, 86 insertions, 0 deletions
diff --git a/src/test/regress/expected/sequence.out b/src/test/regress/expected/sequence.out index 040506d4deb..6e919d1f1de 100644 --- a/src/test/regress/expected/sequence.out +++ b/src/test/regress/expected/sequence.out @@ -76,3 +76,62 @@ COMMENT ON SEQUENCE asdf IS 'won''t work'; ERROR: relation "asdf" does not exist COMMENT ON SEQUENCE sequence_test2 IS 'will work'; COMMENT ON SEQUENCE sequence_test2 IS NULL; +-- Test lastval() +CREATE SEQUENCE seq; +SELECT nextval('seq'); + nextval +--------- + 1 +(1 row) + +SELECT lastval(); + lastval +--------- + 1 +(1 row) + +SELECT setval('seq', 99); + setval +-------- + 99 +(1 row) + +SELECT lastval(); + lastval +--------- + 99 +(1 row) + +CREATE SEQUENCE seq2; +SELECT nextval('seq2'); + nextval +--------- + 1 +(1 row) + +SELECT lastval(); + lastval +--------- + 1 +(1 row) + +DROP SEQUENCE seq2; +-- should fail +SELECT lastval(); +ERROR: lastval is not yet defined in this session +CREATE USER seq_user; +BEGIN; +SET LOCAL SESSION AUTHORIZATION seq_user; +CREATE SEQUENCE seq3; +SELECT nextval('seq3'); + nextval +--------- + 1 +(1 row) + +REVOKE ALL ON seq3 FROM seq_user; +SELECT lastval(); +ERROR: permission denied for sequence seq3 +ROLLBACK; +DROP USER seq_user; +DROP SEQUENCE seq; diff --git a/src/test/regress/sql/sequence.sql b/src/test/regress/sql/sequence.sql index 07f5765faf2..a8b73c02bf8 100644 --- a/src/test/regress/sql/sequence.sql +++ b/src/test/regress/sql/sequence.sql @@ -42,3 +42,30 @@ COMMENT ON SEQUENCE asdf IS 'won''t work'; COMMENT ON SEQUENCE sequence_test2 IS 'will work'; COMMENT ON SEQUENCE sequence_test2 IS NULL; +-- Test lastval() +CREATE SEQUENCE seq; +SELECT nextval('seq'); +SELECT lastval(); +SELECT setval('seq', 99); +SELECT lastval(); + +CREATE SEQUENCE seq2; +SELECT nextval('seq2'); +SELECT lastval(); + +DROP SEQUENCE seq2; +-- should fail +SELECT lastval(); + +CREATE USER seq_user; + +BEGIN; +SET LOCAL SESSION AUTHORIZATION seq_user; +CREATE SEQUENCE seq3; +SELECT nextval('seq3'); +REVOKE ALL ON seq3 FROM seq_user; +SELECT lastval(); +ROLLBACK; + +DROP USER seq_user; +DROP SEQUENCE seq;
\ No newline at end of file |
