Tue Aug 3 06:38:16 PDT 2004
- Previous message: [Slony1-commit] By cbbrowne: Add in (clunky) rules to generate documentation for tables
- Next message: [Slony1-commit] By cbbrowne: Change this to look at all nodes and request function
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Log Message: ----------- Added localxid.sql, that generates a domain for the "XXID" type in the scope of documentation generation, which allows us to get a very nearly full set of functions and tables into schemadoc.html Modified Files: -------------- slony1-engine/doc/howto: Makefile (r1.3 -> r1.4) schemadoc.html (r1.1 -> r1.2) Added Files: ----------- slony1-engine/doc/howto: localxid.sql (r1.1) -------------- next part -------------- Index: schemadoc.html =================================================================== RCS file: /usr/local/cvsroot/slony1/slony1-engine/doc/howto/schemadoc.html,v retrieving revision 1.1 retrieving revision 1.2 diff -Ldoc/howto/schemadoc.html -Ldoc/howto/schemadoc.html -u -w -r1.1 -r1.2 --- doc/howto/schemadoc.html +++ doc/howto/schemadoc.html @@ -116,8 +116,8 @@ <ul> <li><a name="schemadoc.schema">schemadoc</a></li><ul> - <li><a href="#schemadoc.table.sl-config-lock">sl_config_lock</a></li><li><a href="#schemadoc.table.sl-confirm">sl_confirm</a></li><li><a href="#schemadoc.table.sl-listen">sl_listen</a></li><li><a href="#schemadoc.table.sl-node">sl_node</a></li><li><a href="#schemadoc.table.sl-path">sl_path</a></li><li><a href="#schemadoc.table.sl-seqlog">sl_seqlog</a></li> - <li><a href="#schemadoc.function.altertableforreplication-integer">altertableforreplication( integer )</a></li><li><a href="#schemadoc.function.altertablerestore-integer">altertablerestore( integer )</a></li><li><a href="#schemadoc.function.cleanupevent">cleanupevent( )</a></li><li><a href="#schemadoc.function.ddlscript-integer-text">ddlscript( integer, text )</a></li><li><a href="#schemadoc.function.ddlscript-int-integer-text">ddlscript_int( integer, text )</a></li><li><a href="#schemadoc.function.determineattkindserial-text">determineattkindserial( text )</a></li><li><a href="#schemadoc.function.determineattkindunique-text-name">determineattkindunique( text, name )</a></li><li><a href="#schemadoc.function.determineidxnameserial-text">determineidxnameserial( text )</a></li><li><a href="#schemadoc.function.determineidxnameunique-text-name">determineidxnameunique( text, name )</a></li><li><a href="#schemadoc.function.disablenode-integer">disablenode( integer )</a></li><li><a href="#schemadoc.function.disablenode-int-integer">disablenode_int( integer )</a></li><li><a href="#schemadoc.function.droplisten-integer-integer-integer">droplisten( integer, integer, integer )</a></li><li><a href="#schemadoc.function.droplisten-int-integer-integer-integer">droplisten_int( integer, integer, integer )</a></li><li><a href="#schemadoc.function.dropnode-integer">dropnode( integer )</a></li><li><a href="#schemadoc.function.dropnode-int-integer">dropnode_int( integer )</a></li><li><a href="#schemadoc.function.droppath-integer-integer">droppath( integer, integer )</a></li><li><a href="#schemadoc.function.droppath-int-integer-integer">droppath_int( integer, integer )</a></li><li><a href="#schemadoc.function.dropset-integer">dropset( integer )</a></li><li><a href="#schemadoc.function.dropset-int-integer">dropset_int( integer )</a></li><li><a href="#schemadoc.function.droptrigger-integer-name">droptrigger( integer, name )</a></li><li><a href="#schemadoc.function.droptrigger-int-integer-name">droptrigger_int( integer, name )</a></li><li><a href="#schemadoc.function.enablenode-integer">enablenode( integer )</a></li><li><a href="#schemadoc.function.enablenode-int-integer">enablenode_int( integer )</a></li><li><a href="#schemadoc.function.enablesubscription-integer-integer-integer">enablesubscription( integer, integer, integer )</a></li><li><a href="#schemadoc.function.enablesubscription-int-integer-integer-integer">enablesubscription_int( integer, integer, integer )</a></li><li><a href="#schemadoc.function.failednode-integer-integer">failednode( integer, integer )</a></li><li><a href="#schemadoc.function.failoverset-int-integer-integer-integer">failoverset_int( integer, integer, integer )</a></li><li><a href="#schemadoc.function.forwardconfirm-integer-integer-bigint-timestamp-without-time-zone">forwardconfirm( integer, integer, bigint, timestamp without time zone )</a></li><li><a href="#schemadoc.function.initializelocalnode-integer-text">initializelocalnode( integer, text )</a></li><li><a href="#schemadoc.function.lockset-integer">lockset( integer )</a></li><li><a href="#schemadoc.function.mergeset-integer-integer">mergeset( integer, integer )</a></li><li><a href="#schemadoc.function.mergeset-int-integer-integer">mergeset_int( integer, integer )</a></li><li><a href="#schemadoc.function.moveset-integer-integer">moveset( integer, integer )</a></li><li><a href="#schemadoc.function.moveset-int-integer-integer-integer">moveset_int( integer, integer, integer )</a></li><li><a href="#schemadoc.function.sequencelastvalue-text">sequencelastvalue( text )</a></li><li><a href="#schemadoc.function.sequencesetvalue-integer-integer-bigint-bigint">sequencesetvalue( integer, integer, bigint, bigint )</a></li><li><a href="#schemadoc.function.setaddsequence-integer-integer-text-text">setaddsequence( integer, integer, text, text )</a></li><li><a href="#schemadoc.function.setaddsequence-int-integer-integer-text-text">setaddsequence_int( integer, integer, text, text )</a></li><li><a href="#schemadoc.function.setaddtable-integer-integer-text-name-text">setaddtable( integer, integer, text, name, text )</a></li><li><a href="#schemadoc.function.setaddtable-int-integer-integer-text-name-text">setaddtable_int( integer, integer, text, name, text )</a></li><li><a href="#schemadoc.function.storelisten-integer-integer-integer">storelisten( integer, integer, integer )</a></li><li><a href="#schemadoc.function.storelisten-int-integer-integer-integer">storelisten_int( integer, integer, integer )</a></li><li><a href="#schemadoc.function.storenode-integer-text">storenode( integer, text )</a></li><li><a href="#schemadoc.function.storenode-int-integer-text">storenode_int( integer, text )</a></li><li><a href="#schemadoc.function.storepath-integer-integer-text-integer">storepath( integer, integer, text, integer )</a></li><li><a href="#schemadoc.function.storepath-int-integer-integer-text-integer">storepath_int( integer, integer, text, integer )</a></li><li><a href="#schemadoc.function.storeset-integer-text">storeset( integer, text )</a></li><li><a href="#schemadoc.function.storeset-int-integer-integer-text">storeset_int( integer, integer, text )</a></li><li><a href="#schemadoc.function.storetrigger-integer-name">storetrigger( integer, name )</a></li><li><a href="#schemadoc.function.storetrigger-int-integer-name">storetrigger_int( integer, name )</a></li><li><a href="#schemadoc.function.subscribeset-integer-integer-integer-boolean">subscribeset( integer, integer, integer, boolean )</a></li><li><a href="#schemadoc.function.subscribeset-int-integer-integer-integer-boolean">subscribeset_int( integer, integer, integer, boolean )</a></li><li><a href="#schemadoc.function.tableaddkey-text">tableaddkey( text )</a></li><li><a href="#schemadoc.function.tabledropkey-integer">tabledropkey( integer )</a></li><li><a href="#schemadoc.function.tablehasserialkey-text">tablehasserialkey( text )</a></li><li><a href="#schemadoc.function.uninstallnode">uninstallnode( )</a></li><li><a href="#schemadoc.function.unlockset-integer">unlockset( integer )</a></li><li><a href="#schemadoc.function.unsubscribeset-integer-integer">unsubscribeset( integer, integer )</a></li><li><a href="#schemadoc.function.unsubscribeset-int-integer-integer">unsubscribeset_int( integer, integer )</a></li> + <li><a href="#schemadoc.table.sl-config-lock">sl_config_lock</a></li><li><a href="#schemadoc.table.sl-confirm">sl_confirm</a></li><li><a href="#schemadoc.table.sl-event">sl_event</a></li><li><a href="#schemadoc.table.sl-listen">sl_listen</a></li><li><a href="#schemadoc.table.sl-log-1">sl_log_1</a></li><li><a href="#schemadoc.table.sl-log-2">sl_log_2</a></li><li><a href="#schemadoc.table.sl-node">sl_node</a></li><li><a href="#schemadoc.table.sl-path">sl_path</a></li><li><a href="#schemadoc.view.sl-seqlastvalue">sl_seqlastvalue</a></li><li><a href="#schemadoc.table.sl-seqlog">sl_seqlog</a></li><li><a href="#schemadoc.table.sl-sequence">sl_sequence</a></li><li><a href="#schemadoc.table.sl-set">sl_set</a></li><li><a href="#schemadoc.table.sl-setsync">sl_setsync</a></li><li><a href="#schemadoc.table.sl-subscribe">sl_subscribe</a></li><li><a href="#schemadoc.table.sl-table">sl_table</a></li><li><a href="#schemadoc.table.sl-trigger">sl_trigger</a></li> + <li><a href="#schemadoc.function.altertableforreplication-integer">altertableforreplication( integer )</a></li><li><a href="#schemadoc.function.altertablerestore-integer">altertablerestore( integer )</a></li><li><a href="#schemadoc.function.cleanupevent">cleanupevent( )</a></li><li><a href="#schemadoc.function.ddlscript-integer-text">ddlscript( integer, text )</a></li><li><a href="#schemadoc.function.ddlscript-int-integer-text">ddlscript_int( integer, text )</a></li><li><a href="#schemadoc.function.determineattkindserial-text">determineattkindserial( text )</a></li><li><a href="#schemadoc.function.determineattkindunique-text-name">determineattkindunique( text, name )</a></li><li><a href="#schemadoc.function.determineidxnameserial-text">determineidxnameserial( text )</a></li><li><a href="#schemadoc.function.determineidxnameunique-text-name">determineidxnameunique( text, name )</a></li><li><a href="#schemadoc.function.disablenode-integer">disablenode( integer )</a></li><li><a href="#schemadoc.function.disablenode-int-integer">disablenode_int( integer )</a></li><li><a href="#schemadoc.function.droplisten-integer-integer-integer">droplisten( integer, integer, integer )</a></li><li><a href="#schemadoc.function.droplisten-int-integer-integer-integer">droplisten_int( integer, integer, integer )</a></li><li><a href="#schemadoc.function.dropnode-integer">dropnode( integer )</a></li><li><a href="#schemadoc.function.dropnode-int-integer">dropnode_int( integer )</a></li><li><a href="#schemadoc.function.droppath-integer-integer">droppath( integer, integer )</a></li><li><a href="#schemadoc.function.droppath-int-integer-integer">droppath_int( integer, integer )</a></li><li><a href="#schemadoc.function.dropset-integer">dropset( integer )</a></li><li><a href="#schemadoc.function.dropset-int-integer">dropset_int( integer )</a></li><li><a href="#schemadoc.function.droptrigger-integer-name">droptrigger( integer, name )</a></li><li><a href="#schemadoc.function.droptrigger-int-integer-name">droptrigger_int( integer, name )</a></li><li><a href="#schemadoc.function.enablenode-integer">enablenode( integer )</a></li><li><a href="#schemadoc.function.enablenode-int-integer">enablenode_int( integer )</a></li><li><a href="#schemadoc.function.enablesubscription-integer-integer-integer">enablesubscription( integer, integer, integer )</a></li><li><a href="#schemadoc.function.enablesubscription-int-integer-integer-integer">enablesubscription_int( integer, integer, integer )</a></li><li><a href="#schemadoc.function.failednode-integer-integer">failednode( integer, integer )</a></li><li><a href="#schemadoc.function.failednode2-integer-integer-integer-bigint-bigint">failednode2( integer, integer, integer, bigint, bigint )</a></li><li><a href="#schemadoc.function.failoverset-int-integer-integer-integer">failoverset_int( integer, integer, integer )</a></li><li><a href="#schemadoc.function.forwardconfirm-integer-integer-bigint-timestamp-without-time-zone">forwardconfirm( integer, integer, bigint, timestamp without time zone )</a></li><li><a href="#schemadoc.function.initializelocalnode-integer-text">initializelocalnode( integer, text )</a></li><li><a href="#schemadoc.function.lockset-integer">lockset( integer )</a></li><li><a href="#schemadoc.function.mergeset-integer-integer">mergeset( integer, integer )</a></li><li><a href="#schemadoc.function.mergeset-int-integer-integer">mergeset_int( integer, integer )</a></li><li><a href="#schemadoc.function.moveset-integer-integer">moveset( integer, integer )</a></li><li><a href="#schemadoc.function.moveset-int-integer-integer-integer">moveset_int( integer, integer, integer )</a></li><li><a href="#schemadoc.function.sequencelastvalue-text">sequencelastvalue( text )</a></li><li><a href="#schemadoc.function.sequencesetvalue-integer-integer-bigint-bigint">sequencesetvalue( integer, integer, bigint, bigint )</a></li><li><a href="#schemadoc.function.setaddsequence-integer-integer-text-text">setaddsequence( integer, integer, text, text )</a></li><li><a href="#schemadoc.function.setaddsequence-int-integer-integer-text-text">setaddsequence_int( integer, integer, text, text )</a></li><li><a href="#schemadoc.function.setaddtable-integer-integer-text-name-text">setaddtable( integer, integer, text, name, text )</a></li><li><a href="#schemadoc.function.setaddtable-int-integer-integer-text-name-text">setaddtable_int( integer, integer, text, name, text )</a></li><li><a href="#schemadoc.function.storelisten-integer-integer-integer">storelisten( integer, integer, integer )</a></li><li><a href="#schemadoc.function.storelisten-int-integer-integer-integer">storelisten_int( integer, integer, integer )</a></li><li><a href="#schemadoc.function.storenode-integer-text">storenode( integer, text )</a></li><li><a href="#schemadoc.function.storenode-int-integer-text">storenode_int( integer, text )</a></li><li><a href="#schemadoc.function.storepath-integer-integer-text-integer">storepath( integer, integer, text, integer )</a></li><li><a href="#schemadoc.function.storepath-int-integer-integer-text-integer">storepath_int( integer, integer, text, integer )</a></li><li><a href="#schemadoc.function.storeset-integer-text">storeset( integer, text )</a></li><li><a href="#schemadoc.function.storeset-int-integer-integer-text">storeset_int( integer, integer, text )</a></li><li><a href="#schemadoc.function.storetrigger-integer-name">storetrigger( integer, name )</a></li><li><a href="#schemadoc.function.storetrigger-int-integer-name">storetrigger_int( integer, name )</a></li><li><a href="#schemadoc.function.subscribeset-integer-integer-integer-boolean">subscribeset( integer, integer, integer, boolean )</a></li><li><a href="#schemadoc.function.subscribeset-int-integer-integer-integer-boolean">subscribeset_int( integer, integer, integer, boolean )</a></li><li><a href="#schemadoc.function.tableaddkey-text">tableaddkey( text )</a></li><li><a href="#schemadoc.function.tabledropkey-integer">tabledropkey( integer )</a></li><li><a href="#schemadoc.function.tablehasserialkey-text">tablehasserialkey( text )</a></li><li><a href="#schemadoc.function.uninstallnode">uninstallnode( )</a></li><li><a href="#schemadoc.function.unlockset-integer">unlockset( integer )</a></li><li><a href="#schemadoc.function.unsubscribeset-integer-integer">unsubscribeset( integer, integer )</a></li><li><a href="#schemadoc.function.unsubscribeset-int-integer-integer">unsubscribeset_int( integer, integer )</a></li> </ul> </ul> @@ -300,20 +300,1557 @@ <hr> <h2>Table: + <a name="schemadoc.table.sl-event">sl_event</a> + </h2> + + <p>Holds information about replication events. + +After a period of time, Slony removes old confirmed events from both this table and the sl_confirm table. + +ev_origin : Integer. The ID # (from sl_node.no_id) of the source node for this event +ev_seqno : Integer. The ID # for the event +ev_timestamp : Timestamp. When this event record was created +ev_minxid : +ev_maxxid : +ev_xip : String. +ev_type : String. The type of event this record is for. + + SYNC = Synchronise + STORE_NODE = + ENABLE_NODE = + DROP_NODE = + STORE_PATH = + DROP_PATH = + STORE_LISTEN = + DROP_LISTEN = + STORE_SET = + DROP_SET = + MERGE_SET = + SET_ADD_TABLE = + SET_ADD_SEQUENCE = + STORE_TRIGGER = + DROP_TRIGGER = + MOVE_SET = + FAILOVER_SET = + SUBSCRIBE_SET = + ENABLE_SUBSCRIPTION = + UNSUBSCRIBE_SET = + DDL_SCRIPT = + ADJUST_SEQ = +</p> + + + + <table width="100%" cellspacing="0" cellpadding="3"> + <caption>sl_event Structure</caption> + <tr> + <th>F-Key</th> + <th>Name</th> + <th>Type</th> + <th>Description</th> + </tr> + + <tr class="tr0"> + <td> + + + + </td> + <td>ev_origin</td> + <td>integer</td> + <td><i> + + PRIMARY KEY + + + + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + + + </td> + <td>ev_seqno</td> + <td>bigint</td> + <td><i> + + PRIMARY KEY + + + + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>ev_timestamp</td> + <td>timestamp without time zone</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>ev_minxid</td> + <td>schemadoc.xxid</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>ev_maxxid</td> + <td>schemadoc.xxid</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>ev_xip</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>ev_type</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>ev_data1</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>ev_data2</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>ev_data3</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>ev_data4</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>ev_data5</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>ev_data6</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>ev_data7</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>ev_data8</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + </table> + + + + + + <!-- Constraint List --> + + + <!-- Foreign Key Discovery --> + + + <!-- View Definition --> + + + <!-- List off permissions --> + + + <p> + <a href="#index">Index</a> - + <a href="#schemadoc.schema">Schema schemadoc</a> + </p> + + <hr> + <h2>Table: <a name="schemadoc.table.sl-listen">sl_listen</a> </h2> - <p>Indicates how nodes listen to events from other nodes in the Slony-I network. + <p>Indicates how nodes listen to events from other nodes in the Slony-I network. + +li_origin : Integer. The ID # (from sl_node.no_id) of the node this listener is operating on +li_provider : Integer. The ID # (from sl_node.no_id) of the source node for this listening event +li_receiver : Integer. The ID # (from sl_node.no_id) of the target node for this listening event +</p> + + + + <table width="100%" cellspacing="0" cellpadding="3"> + <caption>sl_listen Structure</caption> + <tr> + <th>F-Key</th> + <th>Name</th> + <th>Type</th> + <th>Description</th> + </tr> + + <tr class="tr0"> + <td> + + + <a href="#schemadoc.table.sl-node">sl_node.no_id</a> + + + + + </td> + <td>li_origin</td> + <td>integer</td> + <td><i> + + + + + + PRIMARY KEY + + + + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + + + + <a href="#schemadoc.table.sl-path">sl_path.pa_server#1</a> + + + </td> + <td>li_provider</td> + <td>integer</td> + <td><i> + + PRIMARY KEY + + + + + + + + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + + + + <a href="#schemadoc.table.sl-path">sl_path.pa_client#1</a> + + + </td> + <td>li_receiver</td> + <td>integer</td> + <td><i> + + PRIMARY KEY + + + + + + + + + + + + </i> + + </td> + </tr> + + </table> + + + + + + <!-- Constraint List --> + + + <!-- Foreign Key Discovery --> + + + <!-- View Definition --> + + + <!-- List off permissions --> + + + <p> + <a href="#index">Index</a> - + <a href="#schemadoc.schema">Schema schemadoc</a> + </p> + + <hr> + <h2>Table: + <a name="schemadoc.table.sl-log-1">sl_log_1</a> + </h2> + + <p>Stores each change to be propagated to subscriber nodes + +log_origin - origin node from which the change came +log_xid - transaction ID on the origin node +log_table_id - the table ID (from sl_table.tab_id) that this log entry is to affect +log_cmdtype - replication action to take. U = Update, I = Insert, D = DELETE +log_cmddata - the data needed to perform the log action</p> + + + + <table width="100%" cellspacing="0" cellpadding="3"> + <caption>sl_log_1 Structure</caption> + <tr> + <th>F-Key</th> + <th>Name</th> + <th>Type</th> + <th>Description</th> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>log_origin</td> + <td>integer</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>log_xid</td> + <td>schemadoc.xxid</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>log_tableid</td> + <td>integer</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>log_actionseq</td> + <td>bigint</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>log_cmdtype</td> + <td>character(1)</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>log_cmddata</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + </table> + + + + + + <!-- Constraint List --> + + + <!-- Foreign Key Discovery --> + + + <!-- View Definition --> + + + <!-- List off permissions --> + + + <p> + <a href="#index">Index</a> - + <a href="#schemadoc.schema">Schema schemadoc</a> + </p> + + <hr> + <h2>Table: + <a name="schemadoc.table.sl-log-2">sl_log_2</a> + </h2> + + <p>Stores each change to be propagated to subscriber nodes + +log_origin - origin node from which the change came +log_xid - transaction ID on the origin node +log_table_id - the table ID (from sl_table.tab_id) that this log entry is to affect +log_cmdtype - replication action to take. U = Update, I = Insert, D = DELETE +log_cmddata - the data needed to perform the log action</p> + + + + <table width="100%" cellspacing="0" cellpadding="3"> + <caption>sl_log_2 Structure</caption> + <tr> + <th>F-Key</th> + <th>Name</th> + <th>Type</th> + <th>Description</th> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>log_origin</td> + <td>integer</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>log_xid</td> + <td>schemadoc.xxid</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>log_tableid</td> + <td>integer</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>log_actionseq</td> + <td>bigint</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>log_cmdtype</td> + <td>character(1)</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>log_cmddata</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + </table> + + + + + + <!-- Constraint List --> + + + <!-- Foreign Key Discovery --> + + + <!-- View Definition --> + + + <!-- List off permissions --> + + + <p> + <a href="#index">Index</a> - + <a href="#schemadoc.schema">Schema schemadoc</a> + </p> + + <hr> + <h2>Table: + <a name="schemadoc.table.sl-node">sl_node</a> + </h2> + + <p>Holds the list of nodes associated with this namespace. no_id is the unique ID number for the node; no_comment is a human-oriented description of the node</p> + + + + <table width="100%" cellspacing="0" cellpadding="3"> + <caption>sl_node Structure</caption> + <tr> + <th>F-Key</th> + <th>Name</th> + <th>Type</th> + <th>Description</th> + </tr> + + <tr class="tr0"> + <td> + + + + </td> + <td>no_id</td> + <td>integer</td> + <td><i> + + PRIMARY KEY + + + + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>no_active</td> + <td>boolean</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>no_comment</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + </table> + + + + + + <!-- Constraint List --> + + + <!-- Foreign Key Discovery --> + + <p>Tables referencing this one via Foreign Key Constraints:</p> + + <ul> + <li><a href="#schemadoc.table.sl-listen">sl_listen</a></li> + </ul> + + <ul> + <li><a href="#schemadoc.table.sl-path">sl_path</a></li> + </ul> + + <ul> + <li><a href="#schemadoc.table.sl-set">sl_set</a></li> + </ul> + + <ul> + <li><a href="#schemadoc.table.sl-setsync">sl_setsync</a></li> + </ul> + + + + <!-- View Definition --> + + + <!-- List off permissions --> + + + <p> + <a href="#index">Index</a> - + <a href="#schemadoc.schema">Schema schemadoc</a> + </p> + + <hr> + <h2>Table: + <a name="schemadoc.table.sl-path">sl_path</a> + </h2> + + <p>Holds connection information for the paths between nodes, and the synchronisation delay + +pa_server - The Node ID # (from sl_node.no_id) of the data source +pa_client - The Node ID # (from sl_node.no_id) of the data target +pa_conninfo - The PostgreSQL connection string used to connect to the source node. +pa_connretry - The synchronisation delay, in seconds +</p> + + + + <table width="100%" cellspacing="0" cellpadding="3"> + <caption>sl_path Structure</caption> + <tr> + <th>F-Key</th> + <th>Name</th> + <th>Type</th> + <th>Description</th> + </tr> + + <tr class="tr0"> + <td> + + + <a href="#schemadoc.table.sl-node">sl_node.no_id</a> + + + + + </td> + <td>pa_server</td> + <td>integer</td> + <td><i> + + + + + + PRIMARY KEY + + + + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + + <a href="#schemadoc.table.sl-node">sl_node.no_id</a> + + + + + </td> + <td>pa_client</td> + <td>integer</td> + <td><i> + + + + + + PRIMARY KEY + + + + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>pa_conninfo</td> + <td>text</td> + <td><i> + + + NOT NULL + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>pa_connretry</td> + <td>integer</td> + <td><i> + + + + + </i> + + </td> + </tr> + + </table> + + + + + + <!-- Constraint List --> + + + <!-- Foreign Key Discovery --> + + <p>Tables referencing this one via Foreign Key Constraints:</p> + + <ul> + <li><a href="#schemadoc.table.sl-listen">sl_listen</a></li> + </ul> + + <ul> + <li><a href="#schemadoc.table.sl-subscribe">sl_subscribe</a></li> + </ul> + + + + <!-- View Definition --> + + + <!-- List off permissions --> + + + <p> + <a href="#index">Index</a> - + <a href="#schemadoc.schema">Schema schemadoc</a> + </p> + + <hr> + <h2>View: + <a name="schemadoc.view.sl-seqlastvalue">sl_seqlastvalue</a> + </h2> + + + + <table width="100%" cellspacing="0" cellpadding="3"> + <caption>sl_seqlastvalue Structure</caption> + <tr> + <th>F-Key</th> + <th>Name</th> + <th>Type</th> + <th>Description</th> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>seq_id</td> + <td>integer</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>seq_set</td> + <td>integer</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>seq_reloid</td> + <td>oid</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>seq_origin</td> + <td>integer</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>seq_last_value</td> + <td>bigint</td> + <td><i> + + + + + </i> + + </td> + </tr> + + </table> + + + + <!-- Constraint List --> + + + <!-- Foreign Key Discovery --> + + + <!-- View Definition --> + + <pre> +SELECT sq.seq_id +, sq.seq_set +, sq.seq_reloid +, s.set_origin AS seq_origin +, schemadoc.sequencelastvalue +( + ( + (quote_ident + ( + (pgn.nspname)::text + ) || '.'::text + ) || quote_ident + ( + (pgc.relname)::text + ) + ) +) AS seq_last_value +FROM schemadoc.sl_sequence sq +, schemadoc.sl_set s +, pg_class pgc +, pg_namespace pgn +WHERE ( + ( + (s.set_id = sq.seq_set) + AND (pgc.oid = sq.seq_reloid) + ) + AND (pgn.oid = pgc.relnamespace) +);</pre> + + + <!-- List off permissions --> + + + <p> + <a href="#index">Index</a> - + <a href="#schemadoc.schema">Schema schemadoc</a> + </p> + + <hr> + <h2>Table: + <a name="schemadoc.table.sl-seqlog">sl_seqlog</a> + </h2> + + <p>Not documented yet</p> + + + + <table width="100%" cellspacing="0" cellpadding="3"> + <caption>sl_seqlog Structure</caption> + <tr> + <th>F-Key</th> + <th>Name</th> + <th>Type</th> + <th>Description</th> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>seql_seqid</td> + <td>integer</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>seql_origin</td> + <td>integer</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>seql_ev_seqno</td> + <td>bigint</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>seql_last_value</td> + <td>bigint</td> + <td><i> + + + + + </i> + + </td> + </tr> + + </table> + + + + + + <!-- Constraint List --> + + + <!-- Foreign Key Discovery --> + + + <!-- View Definition --> + + + <!-- List off permissions --> + + + <p> + <a href="#index">Index</a> - + <a href="#schemadoc.schema">Schema schemadoc</a> + </p> + + <hr> + <h2>Table: + <a name="schemadoc.table.sl-sequence">sl_sequence</a> + </h2> + + <p>Similar to sl_table, each entry identifies a sequence being replicated. +seq_id is an internally-used ID for Slony-I to use in its sequencing of updates +seq_reloid is the OID of the sequence object +seq_set indicates which replication set the object is in +seq_comment is a human-oriented comment</p> -li_origin : Integer. The ID # (from sl_node.no_id) of the node this listener is operating on -li_provider : Integer. The ID # (from sl_node.no_id) of the source node for this listening event -li_receiver : Integer. The ID # (from sl_node.no_id) of the target node for this listening event + + + <table width="100%" cellspacing="0" cellpadding="3"> + <caption>sl_sequence Structure</caption> + <tr> + <th>F-Key</th> + <th>Name</th> + <th>Type</th> + <th>Description</th> + </tr> + + <tr class="tr0"> + <td> + + + + </td> + <td>seq_id</td> + <td>integer</td> + <td><i> + + PRIMARY KEY + + + + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>seq_reloid</td> + <td>oid</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + + <a href="#schemadoc.table.sl-set">sl_set.set_id</a> + + + </td> + <td>seq_set</td> + <td>integer</td> + <td><i> + + + + + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>seq_comment</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + </table> + + + + + + <!-- Constraint List --> + + + <!-- Foreign Key Discovery --> + + + <!-- View Definition --> + + + <!-- List off permissions --> + + + <p> + <a href="#index">Index</a> - + <a href="#schemadoc.schema">Schema schemadoc</a> + </p> + + <hr> + <h2>Table: + <a name="schemadoc.table.sl-set">sl_set</a> + </h2> + + <p>Holds definitions of replication sets. + +set_id is a unique ID number for the set. +set_origin is the ID number of the source node for the replication set. +set_locked indicates whether or not the set is locked. +set_comment is a human-oriented description of the set. </p> <table width="100%" cellspacing="0" cellpadding="3"> - <caption>sl_listen Structure</caption> + <caption>sl_set Structure</caption> + <tr> + <th>F-Key</th> + <th>Name</th> + <th>Type</th> + <th>Description</th> + </tr> + + <tr class="tr0"> + <td> + + + + </td> + <td>set_id</td> + <td>integer</td> + <td><i> + + PRIMARY KEY + + + + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + + <a href="#schemadoc.table.sl-node">sl_node.no_id</a> + + + </td> + <td>set_origin</td> + <td>integer</td> + <td><i> + + + + + + + + + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>set_locked</td> + <td>schemadoc.xxid</td> + <td><i> + + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>set_comment</td> + <td>text</td> + <td><i> + + + + + </i> + + </td> + </tr> + + </table> + + + + + + <!-- Constraint List --> + + + <!-- Foreign Key Discovery --> + + <p>Tables referencing this one via Foreign Key Constraints:</p> + + <ul> + <li><a href="#schemadoc.table.sl-sequence">sl_sequence</a></li> + </ul> + + <ul> + <li><a href="#schemadoc.table.sl-setsync">sl_setsync</a></li> + </ul> + + <ul> + <li><a href="#schemadoc.table.sl-subscribe">sl_subscribe</a></li> + </ul> + + <ul> + <li><a href="#schemadoc.table.sl-table">sl_table</a></li> + </ul> + + + + <!-- View Definition --> + + + <!-- List off permissions --> + + + <p> + <a href="#index">Index</a> - + <a href="#schemadoc.schema">Schema schemadoc</a> + </p> + + <hr> + <h2>Table: + <a name="schemadoc.table.sl-setsync">sl_setsync</a> + </h2> + + <p>Not documented yet</p> + + + + <table width="100%" cellspacing="0" cellpadding="3"> + <caption>sl_setsync Structure</caption> <tr> <th>F-Key</th> <th>Name</th> @@ -325,21 +1862,21 @@ <td> - <a href="#schemadoc.table.sl-node">sl_node.no_id</a> + <a href="#schemadoc.table.sl-set">sl_set.set_id</a> </td> - <td>li_origin</td> + <td>ssy_setid</td> <td>integer</td> <td><i> + PRIMARY KEY - PRIMARY KEY @@ -356,17 +1893,14 @@ <td> - - - <a href="#schemadoc.table.sl-path">sl_path.pa_server#1</a> + <a href="#schemadoc.table.sl-node">sl_node.no_id</a> </td> - <td>li_provider</td> + <td>ssy_origin</td> <td>integer</td> <td><i> - PRIMARY KEY @@ -374,6 +1908,18 @@ + </i> + + </td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>ssy_seqno</td> + <td>bigint</td> + <td><i> @@ -383,28 +1929,61 @@ </td> </tr> - <tr class="tr0"> + <tr class="tr1"> <td> + </td> + <td>ssy_minxid</td> + <td>schemadoc.xxid</td> + <td><i> - <a href="#schemadoc.table.sl-path">sl_path.pa_client#1</a> + </i> </td> - <td>li_receiver</td> - <td>integer</td> + </tr> + + <tr class="tr0"> + <td> + + </td> + <td>ssy_maxxid</td> + <td>schemadoc.xxid</td> <td><i> - PRIMARY KEY + + + + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + + </td> + <td>ssy_xip</td> + <td>text</td> + <td><i> + </i> + </td> + </tr> + <tr class="tr0"> + <td> + </td> + <td>ssy_action_list</td> + <td>text</td> + <td><i> @@ -439,15 +2018,15 @@ <hr> <h2>Table: - <a name="schemadoc.table.sl-node">sl_node</a> + <a name="schemadoc.table.sl-subscribe">sl_subscribe</a> </h2> - <p>Holds the list of nodes associated with this namespace. no_id is the unique ID number for the node; no_comment is a human-oriented description of the node</p> + <p>Not documented yet</p> <table width="100%" cellspacing="0" cellpadding="3"> - <caption>sl_node Structure</caption> + <caption>sl_subscribe Structure</caption> <tr> <th>F-Key</th> <th>Name</th> @@ -460,8 +2039,12 @@ + + <a href="#schemadoc.table.sl-set">sl_set.set_id</a> + + </td> - <td>no_id</td> + <td>sub_set</td> <td>integer</td> <td><i> @@ -473,6 +2056,10 @@ + + + + </i> </td> @@ -481,14 +2068,22 @@ <tr class="tr1"> <td> + + <a href="#schemadoc.table.sl-path">sl_path.pa_server#1</a> + + </td> - <td>no_active</td> - <td>boolean</td> + <td>sub_provider</td> + <td>integer</td> <td><i> + + + + </i> </td> @@ -497,11 +2092,26 @@ <tr class="tr0"> <td> + + + + <a href="#schemadoc.table.sl-path">sl_path.pa_client#1</a> + + </td> - <td>no_comment</td> - <td>text</td> + <td>sub_receiver</td> + <td>integer</td> <td><i> + PRIMARY KEY + + + + + + + + @@ -510,28 +2120,49 @@ </td> </tr> - </table> + <tr class="tr1"> + <td> + </td> + <td>sub_forward</td> + <td>boolean</td> + <td><i> - <!-- Constraint List --> + </i> + </td> + </tr> - <!-- Foreign Key Discovery --> + <tr class="tr0"> + <td> - <p>Tables referencing this one via Foreign Key Constraints:</p> + </td> + <td>sub_active</td> + <td>boolean</td> + <td><i> - <ul> - <li><a href="#schemadoc.table.sl-listen">sl_listen</a></li> - </ul> - <ul> - <li><a href="#schemadoc.table.sl-path">sl_path</a></li> - </ul> + </i> + + </td> + </tr> + + </table> + + + + + + <!-- Constraint List --> + + + <!-- Foreign Key Discovery --> + <!-- View Definition --> @@ -546,21 +2177,20 @@ <hr> <h2>Table: - <a name="schemadoc.table.sl-path">sl_path</a> + <a name="schemadoc.table.sl-table">sl_table</a> </h2> - <p>Holds connection information for the paths between nodes, and the synchronisation delay + <p>Holds information about the tables being replicated. -pa_server - The Node ID # (from sl_node.no_id) of the data source -pa_client - The Node ID # (from sl_node.no_id) of the data target -pa_conninfo - The PostgreSQL connection string used to connect to the source node. -pa_connretry - The synchronisation delay, in seconds -</p> +tab_id - unique key for Slony-I to use to identify the table +tab_reloid - the OID of the table in pg_catalog.pg_class.oid +tab_idxname - the name of the primary index of the table +tab_comment - Human-oriented description of the table</p> <table width="100%" cellspacing="0" cellpadding="3"> - <caption>sl_path Structure</caption> + <caption>sl_table Structure</caption> <tr> <th>F-Key</th> <th>Name</th> @@ -572,20 +2202,12 @@ <td> - <a href="#schemadoc.table.sl-node">sl_node.no_id</a> - - - </td> - <td>pa_server</td> + <td>tab_id</td> <td>integer</td> <td><i> - - - - PRIMARY KEY @@ -602,14 +2224,28 @@ <tr class="tr1"> <td> + </td> + <td>tab_reloid</td> + <td>oid</td> + <td><i> - <a href="#schemadoc.table.sl-node">sl_node.no_id</a> + </i> </td> - <td>pa_client</td> + </tr> + + <tr class="tr0"> + <td> + + + <a href="#schemadoc.table.sl-set">sl_set.set_id</a> + + + </td> + <td>tab_set</td> <td>integer</td> <td><i> @@ -617,13 +2253,24 @@ - PRIMARY KEY + </i> + + </td> + </tr> + + <tr class="tr1"> + <td> + </td> + <td>tab_idxname</td> + <td>name</td> + <td><i> + NOT NULL </i> @@ -634,8 +2281,8 @@ <td> </td> - <td>pa_conninfo</td> - <td>text</td> + <td>tab_altered</td> + <td>boolean</td> <td><i> @@ -650,8 +2297,8 @@ <td> </td> - <td>pa_connretry</td> - <td>integer</td> + <td>tab_comment</td> + <td>text</td> <td><i> @@ -676,7 +2323,7 @@ <p>Tables referencing this one via Foreign Key Constraints:</p> <ul> - <li><a href="#schemadoc.table.sl-listen">sl_listen</a></li> + <li><a href="#schemadoc.table.sl-trigger">sl_trigger</a></li> </ul> @@ -694,15 +2341,15 @@ <hr> <h2>Table: - <a name="schemadoc.table.sl-seqlog">sl_seqlog</a> + <a name="schemadoc.table.sl-trigger">sl_trigger</a> </h2> - <p>Not documented yet</p> + <p>Indicates the name of a trigger [for what purpose?]</p> <table width="100%" cellspacing="0" cellpadding="3"> - <caption>sl_seqlog Structure</caption> + <caption>sl_trigger Structure</caption> <tr> <th>F-Key</th> <th>Name</th> @@ -713,42 +2360,25 @@ <tr class="tr0"> <td> - </td> - <td>seql_seqid</td> - <td>integer</td> - <td><i> - - - </i> - </td> - </tr> + <a href="#schemadoc.table.sl-table">sl_table.tab_id</a> - <tr class="tr1"> - <td> </td> - <td>seql_origin</td> + <td>trig_tabid</td> <td>integer</td> <td><i> + PRIMARY KEY + - </i> - </td> - </tr> - <tr class="tr0"> - <td> - </td> - <td>seql_ev_seqno</td> - <td>bigint</td> - <td><i> @@ -761,11 +2391,18 @@ <tr class="tr1"> <td> + + </td> - <td>seql_last_value</td> - <td>bigint</td> + <td>trig_tgname</td> + <td>name</td> <td><i> + PRIMARY KEY + + + + @@ -2091,7 +3728,8 @@ </h2> <h3>Returns: integer</h3> <h3>Language: PLPGSQL</h3> - + <p>Initiate failover from failed_node to backup_node. This function must be called on all nodes, +and then waited for the restart of all node daemons.</p> <pre> declare p_failed_node alias for $1; @@ -2296,6 +3934,64 @@ <hr> <h2>Function: + <a href="#schemadoc.schema"><a name="schemadoc.function.failednode2-integer-integer-integer-bigint-bigint">failednode2( integer, integer, integer, bigint, bigint )</a> + </h2> +<h3>Returns: bigint</h3> +<h3>Language: PLPGSQL</h3> + <p>FUNCTION failedNode2 (failed_node, backup_node, set_id, ev_seqno, ev_seqfake) + +On the node that has the highest sequence number of the failed node, +fake the FAILED_NODE event.</p> + <pre> +declare + p_failed_node alias for $1; + p_backup_node alias for $2; + p_set_id alias for $3; + p_ev_seqno alias for $4; + p_ev_seqfake alias for $5; + v_row record; +begin + -- ---- + -- Grab the central configuration lock + -- ---- + lock table schemadoc.sl_config_lock; + + select * into v_row + from schemadoc.sl_event + where ev_origin = p_failed_node + and ev_seqno = p_ev_seqno; + if not found then + raise exception 'Slony-I: event %,% not found', + p_failed_node, p_ev_seqno; + end if; + + insert into schemadoc.sl_event + (ev_origin, ev_seqno, ev_timestamp, + ev_minxid, ev_maxxid, ev_xip, + ev_type, ev_data1, ev_data2, ev_data3) + values + (p_failed_node, p_ev_seqfake, CURRENT_TIMESTAMP, + v_row.ev_minxid, v_row.ev_maxxid, v_row.ev_xip, + 'FAILOVER_SET', p_failed_node::text, p_backup_node::text, + p_set_id::text); + insert into schemadoc.sl_confirm + (con_origin, con_received, con_seqno, con_timestamp) + values + (p_failed_node, schemadoc.getLocalNodeId('_schemadoc'), + p_ev_seqfake, CURRENT_TIMESTAMP); + notify "_schemadoc_Event"; + notify "_schemadoc_Confirm"; + notify "_schemadoc_Restart"; + + perform schemadoc.failoverSet_int(p_failed_node, + p_backup_node, p_set_id); + + return p_ev_seqfake; +end; +</pre> + + <hr> + <h2>Function: <a href="#schemadoc.schema"><a name="schemadoc.function.failoverset-int-integer-integer-integer">failoverset_int( integer, integer, integer )</a> </h2> <h3>Returns: integer</h3> @@ -3267,7 +4963,11 @@ </h2> <h3>Returns: bigint</h3> <h3>Language: PLPGSQL</h3> + <p>FUNCTION storeListen (li_origin, li_provider, li_receiver) +generate STORE_LISTEN event, indicating that receiver node li_receiver +listens to node li_provider in order to get messages coming from node +li_origin.</p> <pre> declare p_li_origin alias for $1; @@ -3286,7 +4986,11 @@ </h2> <h3>Returns: integer</h3> <h3>Language: PLPGSQL</h3> + <p>FUNCTION storeListen_int (li_origin, li_provider, li_receiver) +Process STORE_LISTEN event, indicating that receiver node li_receiver +listens to node li_provider in order to get messages coming from node +li_origin.</p> <pre> declare p_li_origin alias for $1; --- /dev/null +++ doc/howto/localxid.sql @@ -0,0 +1,9 @@ +-- $Id: localxid.sql,v 1.1 2004/07/30 20:44:01 cbbrowne Exp $ + +-- Creates a "placeholder" XXID domain, used just to generate +-- documentation. + +-- In reality, XXID is a type defined in C, but that isn't important +-- for the documentation. + +create domain @NAMESPACE at .xxid integer not null; \ No newline at end of file Index: Makefile =================================================================== RCS file: /usr/local/cvsroot/slony1/slony1-engine/doc/howto/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -Ldoc/howto/Makefile -Ldoc/howto/Makefile -u -w -r1.3 -r1.4 --- doc/howto/Makefile +++ doc/howto/Makefile @@ -32,18 +32,20 @@ BASEDIR=../../src/backend BASESQL=$(BASEDIR)/slony1_base.sql BASEFUNS=$(BASEDIR)/slony1_funcs.sql +XIDSQL=localxid.sql # Might want to add version-specific functions, too... TEMPDB=schemadoc TEMPSCHEMA=schemadoc CREATELANG=/usr/lib/postgresql/bin/createlang # That's how it is for me... AUTODOC=postgresql_autodoc -schemadoc.html: $(BASESQL) $(BASEFUNS) +schemadoc.html: $(BASESQL) $(BASEFUNS) $(XIDDIR) createdb $(TEMPDB) $(CREATELANG) plpgsql $(TEMPDB) echo "drop schema $(TEMPSCHEMA);create schema $(TEMPSCHEMA);" | psql $(TEMPDB) - cat $(BASESQL) $(BASEFUNS) | sed "s/@NAMESPACE@/$(TEMPSCHEMA)/g" | sed "s/@CLUSTERNAME@/$(TEMPSCHEMA)/g" | psql $(TEMPDB) + cat $(XIDSQL) $(BASEFUNS) $(BASESQL) | sed "s/@NAMESPACE@/$(TEMPSCHEMA)/g" | sed "s/@CLUSTERNAME@/$(TEMPSCHEMA)/g" | psql $(TEMPDB) $(AUTODOC) -d $(TEMPDB) -s $(TEMPSCHEMA) -t html clean: - + dropdb $(TEMPDB) + rm schemadoc.html \ No newline at end of file
- Previous message: [Slony1-commit] By cbbrowne: Add in (clunky) rules to generate documentation for tables
- Next message: [Slony1-commit] By cbbrowne: Change this to look at all nodes and request function
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-commit mailing list