Welcome to psql, the PostgreSQL interactive terminal.
 
Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit
 
stage=# alter table dartists add column darank integer ;
ALTER
stage=# update dartists set darank = 100 ;
UPDATE 56240
stage=# vacuum dartists ;
VACUUM
stage=# alter table zsong add column zsrank integer ;
ALTER
stage=# update zsong set zsrank = 100 ;
FATAL 1:  Memory exhausted in AllocSetAlloc()
pqReadData() -- backend closed the channel unexpectedly.
        This probably means the backend terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.
stage=# \q   

There are 2273429 records in the table. 
Postgres as started as:
su -l $PGUSER -c "$POSTMASTER -i -S -B 8192 -D$PGDIR -o '-Ffs -S 8192'"
The Machine has 512M RAM. 
The block size is 32K.

A dump of zsong schema looks like:

           Table "zsong"
 Attribute |   Type    | Modifier
-----------+-----------+----------
 muzenbr   | integer   |
 disc      | integer   |
 trk       | integer   |
 song      | varchar() |
 artistid  | integer   |
 acd       | varchar() |
 trackid   | integer   |
 zsrank    | integer   |
Indices: zsong_artistid_ndx,
         zsong_lsong_ndx,
         zsong_muzenbr_ndx,
         zsong_song_ndx,
        
zsong_trackid_ndx                                                                      
                                                                                       
   

I have seen this behavior a couple times, in fact I normally write a
script that does multiple conditional updates, followed by a vacuum. I
just forgot this time. I can work around this, but I thought you might
be interested. It has also seemed to cause some database corruption:
NOTICE:  Rel zsong: TID 7389/275: OID IS INVALID. TUPGONE 1.  

P.S. This was a staging database, it was created as "pg_dump dbname |
psql stage" just prior to the alters.

                                         
-- 
http://www.mohawksoft.com

Reply via email to