Fri Aug 26 15:53:07 PDT 2005
- Previous message: [Slony1-commit] By dpage: Add missing win32 port file.
- Next message: [Slony1-commit] By darcyb: Fix execute script bug introduced by rev 1.43 I'll take the
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Log Message:
-----------
Add in something observed about renaming column names...
Modified Files:
--------------
slony1-engine/doc/adminguide:
faq.sgml (r1.42 -> r1.43)
-------------- next part --------------
Index: faq.sgml
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/doc/adminguide/faq.sgml,v
retrieving revision 1.42
retrieving revision 1.43
diff -Ldoc/adminguide/faq.sgml -Ldoc/adminguide/faq.sgml -u -w -r1.42 -r1.43
--- doc/adminguide/faq.sgml
+++ doc/adminguide/faq.sgml
@@ -1603,6 +1603,46 @@
1.34 or better; the patch was introduced in CVS version 1.34 of that
file. </para> </answer>
</qandaentry>
+
+<qandaentry><question> <para> I need to rename a column that is in the
+primary key for one of my replicated tables. That seems pretty
+dangerous, doesn't it? I have to drop the table out of replication
+and recreate it, right?</para>
+</question>
+
+<answer><para> Actually, this is a scenario which works out remarkably
+cleanly. &slony1; does indeed make intense use of the primary key
+columns, but actually does so in a manner that allows this sort of
+change to be made very nearly transparently.</para>
+
+<para> Suppose you revise a column name, as with the SQL DDL <command>
+alter table accounts alter column aid rename to cid; </command> This
+revises the names of the columns in the table; it
+<emphasis>simultaneously</emphasis> renames the names of the columns
+in the primary key index. The result is that the normal course of
+things is that altering a column name affects both aspects
+simultaneously on a given node.</para>
+
+<para> The <emphasis>ideal</emphasis> and proper handling of this
+change would involve using <xref linkend="stmtddlscript"> to deploy
+the alteration, which ensures it is applied at exactly the right point
+in the transaction stream on each node.</para>
+
+<para> Interestingly, that isn't forcibly necessary. As long as the
+alteration is applied on the replication set's origin before
+application on subscribers, things won't break irrepairably. Some
+<command>SYNC</command> events that do not include changes to the
+altered table can make it through without any difficulty... At the
+point that the first update to the table is drawn in by a subscriber,
+<emphasis>that</emphasis> is the point at which
+<command>SYNC</command> events will start to fail, as the provider
+will indicate the <quote>new</quote> set of columns whilst the
+subscriber still has the <quote>old</quote> ones. If you then apply
+the alteration to the subscriber, it can retry the
+<command>SYNC</command>, at which point it will, finding the
+<quote>new</quote> column names, work just fine.
+</para> </answer></qandaentry>
+
</qandaset>
<!-- Keep this comment at the end of the file Local variables:
- Previous message: [Slony1-commit] By dpage: Add missing win32 port file.
- Next message: [Slony1-commit] By darcyb: Fix execute script bug introduced by rev 1.43 I'll take the
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-commit mailing list