Christopher Browne cbbrowne
Mon Dec 11 07:51:11 PST 2006
Brad Nicholson <bnichols at ca.afilias.info> writes:
> On Sat, 2006-12-09 at 18:07 +0100, Andreas Kostyrka wrote:
>> Actually, in practice I've discovered that one almost never needs to
>> use a generic EXECUTE SCRIPT to apply ALTER TABLE statements. Wonder
>> if anyone else might be interested in the rules that I derived.
>> 
>> E.g. 
>> 
>> Add column can always be done without slony help.
>
> This is false.  It may work sometimes, or even most of the time, but it
> doesn't work all the time.  I have seen first hand replication break by
> adding a column to a table directly (and yes, the changes were
> consistent across all nodes).  Sorry, I forget the exact details,  it
> was a while ago.  I know that fixing things involved manually cleaning
> out events and the fixing the broken triggers by manually running the
> slony functions that alter the tables.

I do recall the vital detail...

The vital bit is that if you don't use EXECUTE SCRIPT, the old
logtrigger will not get replaced by a new one that properly reflects
the new set of columns in the table.  Without that change, the new
column won't get replicated.  

That may appear to work out fine, for a while, if the new column takes
on a default value which is (or appears) valid.
-- 
(format nil "~S@~S" "cbbrowne" "ca.afilias.info")
<http://dba2.int.libertyrms.com/>
Christopher Browne
(416) 673-4124 (land)



More information about the Slony1-general mailing list