Index: doc/src/sgml/ref/alter_sequence.sgml
===================================================================
RCS file: /home/rbt/work/postgresql/cvs//pgsql-server/doc/src/sgml/ref/alter_sequence.sgml,v
retrieving revision 1.1
diff -c -r1.1 alter_sequence.sgml
*** doc/src/sgml/ref/alter_sequence.sgml	20 Mar 2003 07:02:07 -0000	1.1
--- doc/src/sgml/ref/alter_sequence.sgml	21 May 2003 01:56:50 -0000
***************
*** 235,240 ****
--- 235,246 ----
     been fetched it is considered used, even if the transaction that did the nextval
     later aborts. This means that aborted transactions may leave unused "holes" in
     the sequence of assigned values. setval operations are never rolled back, either.
+   </para>
+   <para>
+    <command>ALTER SEQUENCE</command> will not immediately affect backends, other than the
+    current one, which have cached sequence values. They must use up all cached values
+    prior to noticing the changed sequence parameters.  The current backend will be 
+    immediatly affected.
    </para>
   </refsect1>
  
Index: src/backend/commands/sequence.c
===================================================================
RCS file: /home/rbt/work/postgresql/cvs//pgsql-server/src/backend/commands/sequence.c,v
retrieving revision 1.95
diff -c -r1.95 sequence.c
*** src/backend/commands/sequence.c	21 Mar 2003 03:55:21 -0000	1.95
--- src/backend/commands/sequence.c	22 May 2003 02:44:17 -0000
***************
*** 345,350 ****
--- 345,355 ----
  		seq->log_cnt = 1;
  	}
  
+ 	/* save info in local cache */
+ 	elm->last = new.last_value;		/* last returned number */
+ 	elm->cached = new.last_value;	/* last cached number (forget cached
+ 									 * values) */
+ 
  	START_CRIT_SECTION();
  
  	/* XLOG stuff */
