aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/commands/sequence.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c
index d019fbdede6..1bed9c74d17 100644
--- a/src/backend/commands/sequence.c
+++ b/src/backend/commands/sequence.c
@@ -489,10 +489,6 @@ AlterSequence(ParseState *pstate, AlterSeqStmt *stmt)
seqform, newdataform,
&need_seq_rewrite, &owned_by);
- /* Clear local cache so that we don't think we have cached numbers */
- /* Note that we do not change the currval() state */
- elm->cached = elm->last;
-
/* If needed, rewrite the sequence relation itself */
if (need_seq_rewrite)
{
@@ -520,6 +516,10 @@ AlterSequence(ParseState *pstate, AlterSeqStmt *stmt)
fill_seq_with_data(seqrel, newdatatuple);
}
+ /* Clear local cache so that we don't think we have cached numbers */
+ /* Note that we do not change the currval() state */
+ elm->cached = elm->last;
+
/* process OWNED BY if given */
if (owned_by)
process_owned_by(seqrel, owned_by, stmt->for_identity);
@@ -683,7 +683,6 @@ nextval_internal(Oid relid, bool check_permissions)
seq = read_seq_tuple(seqrel, &buf, &seqdatatuple);
page = BufferGetPage(buf);
- elm->increment = incby;
last = next = result = seq->last_value;
fetch = cache;
log = seq->log_cnt;
@@ -781,6 +780,7 @@ nextval_internal(Oid relid, bool check_permissions)
Assert(log >= 0);
/* save info in local cache */
+ elm->increment = incby;
elm->last = result; /* last returned number */
elm->cached = last; /* last fetched number */
elm->last_valid = true;