summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2010-02-19 06:29:19 +0000
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2010-02-19 06:29:19 +0000
commit94f610b16342d7727774f6bb9245341cfa6f895c (patch)
tree09a367cb512c6d5a249ab9ab8f2f455412e6260d
parent2f6b4560afc6ab51b82f88b111041030b3a7329e (diff)
downloadpostgresql-94f610b16342d7727774f6bb9245341cfa6f895c.tar.gz
Forbid setval() during recovery. This prevents the PANIC reported by
Erik Rijkers. Patch by Andres Freund.
-rw-r--r--src/backend/commands/sequence.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c
index 7215ca91e9..ffb7fcaba9 100644
--- a/src/backend/commands/sequence.c
+++ b/src/backend/commands/sequence.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/sequence.c,v 1.166 2010/02/14 18:42:14 rhaas Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/sequence.c,v 1.167 2010/02/19 06:29:19 heikki Exp $
*
*-------------------------------------------------------------------------
*/
@@ -736,6 +736,9 @@ do_setval(Oid relid, int64 next, bool iscalled)
Buffer buf;
Form_pg_sequence seq;
+ /* setval() writes to database and must be prevented during recovery */
+ PreventCommandDuringRecovery();
+
/* open and AccessShareLock sequence */
init_sequence(relid, &elm, &seqrel);