Christopher Browne cbbrowne at ca.afilias.info
Thu Aug 30 13:37:08 PDT 2007
"Dmitry Koterov" <dmitry at koterov.ru> writes:
> The idea to test DDL on all nodes and NOT to split it before is great, but I suppose it is quite hard to implement. And many people uses Slony as non-realtime
> replication, so all changes have to be queued: by the time a new DDL change appeared, not all previous DDL changes may be applied to a subscriber.
> But for people who uses Slony as a realtime replication (like our company), it would be a good feature.
> Frankly, I do not quite understand why Slony splits the whole DDL script to separate queries at all. Why not to process THE WHOLE script, without any splitting? Seems it
> will solve all problems with SQL parsing. Now Slony adds the whole script as a separate event, and practically it is splitted twice: by slonik on an admin node and by
> slon on a subscriber. Why should we split it,why not to execute the whole script at once?

Perhaps you should reread the release notes, as they explain quite
clearly why it is necessary to split the DDL script into multiple
statements.

To wit, from the release notes for 1.2.0:

--------------------------------------------------------------------
- DDL scripts are broken into individual statements

  This is more a bug fix than an enhancement; it now permits DDL
  scripts to create new tables and columns, and reference them later
  in the script.

  In the past, DDL was submitted to the postmaster as a single query,
  which meant that all of them had to reference the state of
  pg_catalog as it was before the DDL ran.  So you could add as many
  columns to tables as you liked; you could NOT, then, reference those
  columns, because the query processor would discover that the new
  column didn't exist as at "before the DDL ran."

  There is now a statement parser which splits scripts into individual
  SQL statements and passes them to the database back end
  individually.
--------------------------------------------------------------------
-- 
(reverse (concatenate 'string "moc.enworbbc" "@" "enworbbc"))
http://cbbrowne.com/info/finances.html
"What's wrong with 3rd party tools? Especially if they are free?  What
the **** do you think Unix is  anyway? It's a big honkin' party of 3rd
party free tools." -- Bob Cassidy (rmcassid at uci.edu)


More information about the Slony1-general mailing list