diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c index eba7cad6ec36138f9982c6cc62212d6b4008d12d..f3344c6207d513f1d795fdc5cf3169df05d9d5f4 100644 --- a/src/backend/commands/sequence.c +++ b/src/backend/commands/sequence.c @@ -1617,4 +1617,6 @@ ResetSequenceCaches(void) free(seqtab); seqtab = next; } + + last_used_seq = NULL; } diff --git a/src/test/regress/expected/sequence.out b/src/test/regress/expected/sequence.out index 37e9a8cfa1afdea6b749b6813fbd6e5b4d0a08b0..8fcb70015fb58e5b22355e48f89fd2d25276d4aa 100644 --- a/src/test/regress/expected/sequence.out +++ b/src/test/regress/expected/sequence.out @@ -344,6 +344,9 @@ SELECT lastval(); 99 (1 row) +DISCARD SEQUENCES; +SELECT lastval(); +ERROR: lastval is not yet defined in this session CREATE SEQUENCE seq2; SELECT nextval('seq2'); nextval diff --git a/src/test/regress/sql/sequence.sql b/src/test/regress/sql/sequence.sql index 31cbc926c029a468c3407e2ad9d9f4e22bdb04b0..be5e9a97bf40e8c5afd8951faebd6fb0b491bdb8 100644 --- a/src/test/regress/sql/sequence.sql +++ b/src/test/regress/sql/sequence.sql @@ -154,6 +154,8 @@ SELECT nextval('seq'); SELECT lastval(); SELECT setval('seq', 99); SELECT lastval(); +DISCARD SEQUENCES; +SELECT lastval(); CREATE SEQUENCE seq2; SELECT nextval('seq2');