Received: from localhost (unknown [200.46.204.184]) by postgresql.org (Postfix) with ESMTP id C40C62E3252 for ; Thu, 10 Jan 2008 20:25:18 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.184]) (amavisd-maia, port 10024) with ESMTP id 41241-02-4 for ; Thu, 10 Jan 2008 20:24:59 -0400 (AST) Received: from bay0-omc3-s34.bay0.hotmail.com (bay0-omc3-s34.bay0.hotmail.com [65.54.246.234]) by postgresql.org (Postfix) with ESMTP id DEC652E3257 for ; Thu, 10 Jan 2008 20:25:14 -0400 (AST) Received: from BAY137-W26 ([64.4.48.61]) by bay0-omc3-s34.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 10 Jan 2008 16:25:13 -0800 Message-ID: X-Originating-IP: [198.135.207.129] From: Dennis Wang To: Subject: URGENET: ALTER statement exectuation hangs when it is executed multiple time on a table Date: Fri, 11 Jan 2008 10:55:13 +1030 Importance: Normal Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginalArrivalTime: 11 Jan 2008 00:25:13.0410 (UTC) FILETIME=[6EA84A20:01C853E8] X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200801/8 X-Sequence-Number: 6686 I am using a shell script to copy some table records into PostgreSQL databa= se. The logic steps are: 1. set default value for table id 2. load some large records into the table 3. drop the id definition The actual PostgreSQL commands are: ALTER TABLE warngrid ALTER COLUMN id SET DEFAULT (nextval('warngrid_se= q')* 10)+1; COPY warngrid FROM 'warngrid.csv' CSV HEADER;=20 ALTER TABLE warngrid ALTER COLUMN id DROP DEFAULT; For the first time, these operation execute fine. Then I do these steps: 4. delete all the records in the table 5. rerun the shell script to copy records. Then, the ALTER statement in step 1 hanging there. I did check the lock sta= te of the warngrid table, it says the process created by the ALTER statemen= t hold an "AccessExclusiveLock" on the table.=20 I wonder if PostgreSQL got some internal mechanism which prevent a table id= field being altered many times when there are some pre-existed records in = the table? or something in PostgreSQL that I am not aware of cause the prob= lem.=20 Thanks for the help! Dennis =20 _________________________________________________________________ It's simple! Sell your car for just $30 at CarPoint.com.au http://a.ninemsn.com.au/b.aspx?URL=3Dhttp%3A%2F%2Fsecure%2Dau%2Eimrworldwid= e%2Ecom%2Fcgi%2Dbin%2Fa%2Fci%5F450304%2Fet%5F2%2Fcg%5F801459%2Fpi%5F1004813= %2Fai%5F859641&_t=3D762955845&_r=3Dtig_OCT07&_m=3DEXT=