Re: [HACKERS] how to alter sequence.

From: "Ross J(dot) Reedstrom" <reedstrm(at)rice(dot)edu>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: "Rajesh Kumar Mallah(dot)" <mallah(at)trade-india(dot)com>, Oliver Elphick <olly(at)lfix(dot)co(dot)uk>, raja kumar thatte <trajakumar(at)yahoo(dot)com>, pgsql-hackers(at)postgresql(dot)org, pgsql-admin(at)postgresql(dot)org
Subject: Re: [HACKERS] how to alter sequence.
Date: 2002-12-07 05:04:09
Message-ID: 20021207050409.GA3151@wallace.ece.rice.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-hackers

On Thu, Dec 05, 2002 at 02:18:15PM -0500, Bruce Momjian wrote:
>
> I don't think you can drop/recreate the sequence because the dependency
> code knows other tables depend on it.

Actually, I don't think the current dependency code notices if you use a
sequence in a default clause (other than via the special SERIAL type):
you'll just get a broken table, I think. Since Raj's sequence _has_ a
maxvalue set, I assume it was hand created. Hmm, seems you don't even get
a borken table, just a NOTICE, in 7.2, and you don't even get that in 7.3.

Regardless, I _have_ come up with a work around, based on my read
of the sequence code, I don't think this will create any pits to fall
into. I don't see any real need for it though, since drop/create seems
to handle it.

As DB superuser, do:

test=# create SEQUENCE foo maxvalue 10000;
CREATE
test=# select setval('raj_seq',3000);
setval
--------
3000
(1 row)

test=# select setval('raj_seq',20000);
ERROR: raj_seq.setval: value 20000 is out of bounds (1,10000)
test=# update pg_class set relkind='r' where relname='raj_seq';
UPDATE 1
test=# update raj_seq set max_value=100000;
UPDATE 1
test=# vacuum full raj_seq;
VACUUM
test=# update pg_class set relkind='S' where relname='raj_seq';
UPDATE 1
test=# select setval('raj_seq',20000);
setval
--------
20000
(1 row)

Ross

>
> ---------------------------------------------------------------------------
>
> Rajesh Kumar Mallah. wrote:
> >
> > Doesn't dropping and recreating the sequence suit the bill ?
> >
> > whats' the major advantage to implement em as a command?
> >
> > At least one thing from which all of us can benifit in PgSQL
> > is replication. I just hope 7.4 give us some sort of master/slave replication.
> >
> >
> > Regds
> > Mallah.
> >
> >
> > On Wednesday 04 December 2002 11:53 pm, Bruce Momjian wrote:
> > > Oliver Elphick wrote:
> > > > On Wed, 2002-12-04 at 12:29, raja kumar thatte wrote:
> > > > > Hai friends,
> > > > > I have a sequence called raj_seq with max value 3000.
> > > >
> > > > ...
> > > >
> > > > > now i wanted to increase the max value of the raj_seq
> > > > > to 9999999.
> > > > > How to do this change?
> > > > > If i drop and recreate the raj_seq, then i have to
> > > > > recreate the table and all triggers working on that
> > > > > table.But it is not an acceptable solution.
> > > > > So with out droping raj_seq , how do I solve this
> > > > > problem.
> > > >
> > > > Unfortunately there doesn't seem to be any easy way to do this. There
> > > > is no ALTER SEQUENCE command and you can't use UPDATE on a sequence.
> > >
> > > Gee, I thought they could just update the sequence table, but I see:
> > >
> > > test=> update yy set max_value = 100;
> > > ERROR: You can't change sequence relation yy
> > >
> > > > Hackers: Could this be a TODO item for 7.4?
> > >
> > > Added to TODO:
> > >
> > > * Add ALTER SEQUENCE to modify min/max/increment/cache/cycle values
> >
> > --
> > Rajesh Kumar Mallah,
> > Project Manager (Development)
> > Infocom Network Limited, New Delhi
> > phone: +91(11)6152172 (221) (L) ,9811255597 (M)
> >
> > Visit http://www.trade-india.com ,
> > India's Leading B2B eMarketplace.
> >
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 6: Have you searched our list archives?
> >
> > http://archives.postgresql.org
> >
>
> --
> Bruce Momjian | http://candle.pha.pa.us
> pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
> + If your life is a hard drive, | 13 Roberts Road
> + Christ can be your backup. | Newtown Square, Pennsylvania 19073
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster

--
Ross Reedstrom, Ph.D. reedstrm(at)rice(dot)edu
Research Scientist phone: 713-348-6166
The Connexions Project http://cnx./rice.edu fax: 713-348-6182
Rice University MS-39
Houston, TX 77005

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Raja Kumar Thatte 2002-12-07 09:58:53 Re: [HACKERS] how to alter sequence.
Previous Message Bruce Momjian 2002-12-07 03:43:02 Re: Rules/Trigges Trade-offs

Browse pgsql-hackers by date

  From Date Subject
Next Message Florian Weimer 2002-12-07 08:12:44 Re: [PATCHES] Patch to make Turks happy.
Previous Message Horacio Miranda 2002-12-07 04:53:58 about store Large file.