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:
@ -1617,4 +1617,6 @@ ResetSequenceCaches(void)
|
|||||||
free(seqtab);
|
free(seqtab);
|
||||||
seqtab = next;
|
seqtab = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
last_used_seq = NULL;
|
||||||
}
|
}
|
||||||
|
@ -344,6 +344,9 @@ SELECT lastval();
|
|||||||
99
|
99
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
|
DISCARD SEQUENCES;
|
||||||
|
SELECT lastval();
|
||||||
|
ERROR: lastval is not yet defined in this session
|
||||||
CREATE SEQUENCE seq2;
|
CREATE SEQUENCE seq2;
|
||||||
SELECT nextval('seq2');
|
SELECT nextval('seq2');
|
||||||
nextval
|
nextval
|
||||||
|
@ -154,6 +154,8 @@ SELECT nextval('seq');
|
|||||||
SELECT lastval();
|
SELECT lastval();
|
||||||
SELECT setval('seq', 99);
|
SELECT setval('seq', 99);
|
||||||
SELECT lastval();
|
SELECT lastval();
|
||||||
|
DISCARD SEQUENCES;
|
||||||
|
SELECT lastval();
|
||||||
|
|
||||||
CREATE SEQUENCE seq2;
|
CREATE SEQUENCE seq2;
|
||||||
SELECT nextval('seq2');
|
SELECT nextval('seq2');
|
||||||
|
Reference in New Issue
Block a user