From: | "Michael Andreasen" <michael(at)dunlops(dot)com> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Adding new columns - bug |
Date: | 2008-02-11 12:36:08 |
Message-ID: | c752d6bd0802110436p52b665c2pa2b27897fe8b2203@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
I have a found a bug when adding a new column to an existing table. This
happens in 6.1 and 6.2, not able to test 6.3 yet.
This is the process I am doing;
alter table product add column search_priority int default 0;
update product set search_priority = 0;
search_priority,count(*) from product group by 1;
search_priority | count
-----------------+-------
0 | 26462
(1 row)
This is as expected so far.
However "product" is a very busy table and is updated every few seconds. If
I wait for a few minutes then perform the same select again I get this;
search_priority,count(*) from product group by 1;
search_priority | count
-----------------+-------
| 147
0 | 26315
Other processes are updating the product table, they NOT updating the
"search_priority" and have no knowledge of it. It seems that when they
update any column on the row the newly added field is reset to null.
If I drop the the table and reload from a dump all works well, so this
behavior only happens on columns added via an alter table.
There is nothing sepcial about the product table other than it has a couple
of trigger rules to post to other tables on updates of some fields (audit
log), nothing to cause this behavior. I have only noticed this happening of
this table, so I am guessing it's related to it having rules, since it's one
of the few that does.
Is this a known bug at all?
PS, been using postgreSQL for about 6 years and this is the ONLY bug i've
come across, so though i'd better report it ;)
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Andreasen | 2008-02-11 12:38:31 | Re: Adding new columns - bug |
Previous Message | Magnus Hagander | 2008-02-11 08:35:03 | Re: BUG #3948: date/time functions returning wrong value |