aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/sequence.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/sequence.c')
-rw-r--r--src/backend/commands/sequence.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c
index 210657cdf06..e8944f8d98e 100644
--- a/src/backend/commands/sequence.c
+++ b/src/backend/commands/sequence.c
@@ -295,6 +295,7 @@ nextval(PG_FUNCTION_ARGS)
elm->last = result; /* last returned number */
elm->cached = last; /* last fetched number */
+ START_CRIT_CODE;
if (logit)
{
xl_seq_rec xlrec;
@@ -318,6 +319,7 @@ nextval(PG_FUNCTION_ARGS)
Assert(log >= 0);
seq->log_cnt = log; /* how much is logged */
seq->is_called = 't';
+ END_CRIT_CODE;
LockBuffer(buf, BUFFER_LOCK_UNLOCK);
@@ -386,6 +388,7 @@ do_setval(char *seqname, int32 next, bool iscalled)
elm->cached = next; /* last cached number */
/* save info in sequence relation */
+ START_CRIT_CODE;
seq->last_value = next; /* last fetched number */
seq->is_called = iscalled ? 't' : 'f';
seq->log_cnt = (iscalled) ? 0 : 1;
@@ -403,6 +406,7 @@ do_setval(char *seqname, int32 next, bool iscalled)
PageSetLSN(BufferGetPage(buf), recptr);
PageSetSUI(BufferGetPage(buf), ThisStartUpID);
}
+ END_CRIT_CODE;
LockBuffer(buf, BUFFER_LOCK_UNLOCK);