Steve Singer ssinger_pg at sympatico.ca
Wed Mar 28 18:50:21 PDT 2007
On Wed, 28 Mar 2007, Alan Hodgson wrote:

>
> Thank you for that. I will test it and consider running with it for now.
> However, I actually think the intended behaviour for 1.2 is correct -
> DDL scripts should execute on all nodes (working around the 1.1
> behaviour was also quite tedious).  It just isn't working correctly ...
> and I can't see why.


I don't think a behaviour change was ever 'intended' for 1.2 (someone 
correct me if I'm wrong) I think it was un unnotice concequence of other 
changes.

For a lot of situtations I think the 1.1.x behaviour is preferrable.  Having 
an execute script run on nodes that don't have it as part of the set will 
mean that you must keep all tables definitions on all nodes. Sometimes thats 
useful to do but othertimes you might not want to do that.  EXECUTE SCRIPT 
can be used for more than just sending DDL around.  There are times when 
people find it useful to put queries that perform INSERT or UPDATE 
operations in an EXECUTE SCRIPT and this type of thing will probably not 
behave as desired if it gets executed on the slaves.

If you want to run your execute script on all nodes you just have to create 
an extra replication set that all nodes subscribe to.  The set doesn't even 
need to have any tables you could then submit your execute script against 
that set and it will execute everywhere.  I don't think I've tried this but 
I don't see why it wouldn't work.  If you try this with 1.2.8 do you still 
get your problems running alterTableForReplication on the slaves? (If so 
then there might be another problem)



Steve



More information about the Slony1-general mailing list