Replication set membership
==========================

bdr.replication_set_add_table
-----------------------------

このファンクションは、テーブルをレプリケーションセットに追加します。

これにより、テーブルがレプリケーションセットに追加され、この瞬間またはトランザクションコミットから変更のレプリケートが開始されます。ノード上のテーブルが持っている既存のデータは同期されません。

このコマンドのレプリケーションは、
DDLフィルタリング設定を含むDDLレプリケーション構成の影響を受けます。

概要
^^^^

.. code:: sql

   bdr.replication_set_add_table(relation regclass,
                                 set_name name DEFAULT NULL,
                                 columns text[] DEFAULT NULL,
                                 row_filter text DEFAULT NULL)

パラメーター
^^^^^^^^^^^^

-  ``relation`` —テーブルの名前またはOID。

-  ``set_name`` —レプリケーションセットの名前。
   NULLデフォルトの場合、PGDグループのデフォルトレプリケーションセットが使用されます。

-  ``columns``
   —将来の使用のために予約されています。現在は何もしないため、NULLである必要があります。

-  ``row_filter``
   —レプリケートされた行をフィルタリングするために使用されるSQL式。この式が定義されていない場合、デフォルトのNULLに設定されている場合、すべての行が送信されます。

``row_filter`` は、NULLを使用したブール結果を生成する式を指定します。
TrueまたはUnknownと評価される式は、行をレプリケートします。
False値は行をレプリケートしません。式にサブクエリーを含めたり、レプリケートされる現在の行の列以外の変数を参照したりすることはできません。システム列を参照することはできません。

``row_filter``
は、ターゲットノードではなく、オリジンノードで実行されます。これにより、この特定のテーブルのレプリケーションに追加のCPUオーバーヘッドがかかりますが、フィルターされた行のデータの送信が完全に回避されます。したがって、ネットワーク帯域幅が削減され、ターゲットノードのオーバーヘッドが適用されます。

``row_filter`` は、特定のテーブルの\ ``TRUNCATE``
コマンドを削除することはありません。レプリケーションセットレベルで\ ``TRUNCATE``
コマンドをフィルタリングできます。

テーブルの一部の列のみをレプリケートできます。 :ref:`差分を含むノード間のレプリケーション <差分を含むノード間のレプリケーション>` 
を参照してください。

注
^^

このファンクションは、 ``DDL``
ステートメントと同じレプリケーションメカニズムを使用します。これは、レプリケーションが :ref:`ddl filters <Replication sets>` の影響を受けることを意味します

構成。

``row_filter``
がNULLでない場合、ファンクションはレプリケーションセットに追加されるリレーションで\ ``DML``
グローバルロックを取得します。それ以外の場合は、\ ``DDL``
グローバルロックのみを使用します。

このファンクションはトランザクションです。トランザクションの\ ``ROLLBACK``
を使用してエフェクトをロールバックできます。変更は現在のトランザクションに表示されます。

bdr.replication_set_remove_table
--------------------------------

このファンクションは、レプリケーションセットからテーブルを削除します。

このコマンドのレプリケーションは、
DDLフィルタリング設定を含むDDLレプリケーション構成の影響を受けます。

.. _概要-1:

概要
^^^^

.. code:: sql

   bdr.replication_set_remove_table(relation regclass,
                                    set_name name DEFAULT NULL)

.. _パラメーター-1:

パラメーター
^^^^^^^^^^^^

-  ``relation`` —テーブルの名前またはOID。

-  ``set_name`` —レプリケーションセットの名前。
   NULLデフォルトの場合、PGDグループのデフォルトレプリケーションセットが使用されます。

.. _注-1:

注
^^

このファンクションは、 ``DDL``
ステートメントと同じレプリケーションメカニズムを使用します。これは、レプリケーションが :ref:`ddl filters <Replication sets>` の影響を受けることを意味します

構成。

ファンクションは\ ``DDL`` グローバルロックを取得します。

このファンクションはトランザクションです。トランザクションの\ ``ROLLBACK``
を使用してエフェクトをロールバックできます。変更は現在のトランザクションに表示されます。
