1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-28 23:42:10 +03:00

Make DISCARD SEQUENCES also discard the last used sequence.

Otherwise, we access already-freed memory.  Oops.

Report by Michael Paquier.  Fix by me.
This commit is contained in:
Robert Haas
2013-10-07 15:55:56 -04:00
parent 689746c045
commit 16a906f535
3 changed files with 7 additions and 0 deletions

View File

@ -1617,4 +1617,6 @@ ResetSequenceCaches(void)
free(seqtab);
seqtab = next;
}
last_used_seq = NULL;
}

View File

@ -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

View File

@ -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');