Global sequence management interfaces#
PGDは、標準のPostgreSQLシーケンスとPGDグローバルシーケンスの間で変換するためのインターフェイスを提供します。
次のファンクションはDDL であると考えられるため、
DDLレプリケーションとグローバルロックが適用されます。
シーケンスファンクション#
bdr.alter_sequence_set_kind#
シーケンスの所有者がシーケンスの種類を設定できます。設定すると、seqkind
はbdr.sequences
ビューを介してのみ可視されます。他のすべての方法では、シーケンスは通常のシーケンスとして表示されます。
PGDはこのファンクションをDDL
として扱うため、現在アクティブな場合、
DDLレプリケーションとグローバルロックが適用されます。 Running DDL safely
を参照してください。
概要#
bdr.alter_sequence_set_kind(seqoid regclass, seqkind text, start bigint DEFAULT NULL)
パラメーター#
seqoid— 変更するシーケンスの名前またはOid。seqkind— 標準のPostgreSQLシーケンスの場合はlocal、グローバルに一意のPGDシーケンスの場合はsnowflakeidまたはgalloc、または古いグローバル一意シーケンスの場合はtimeshard。start— gallocおよびローカルシーケンスの新しい開始点を指定できます。
注#
シーケンス種類をgalloc
に変更すると、そのシーケンスの最初に割り当てられたレンジは、開始点としてシーケンスstart値を使用します。
galloc
に変更される前にシーケンスで使用された既存の値が存在する場合、次のコマンドを使用して、新しく生成された値が既存の値と競合しないように、開始ポイントを移動することをお勧めします。
ALTER SEQUENCE seq_name START starting_value RESTART
このファンクションは、 DDL
ステートメントと同じレプリケーションメカニズムを使用します。これは、レプリケーションが DDL filters の影響を受けることを意味します
構成。
ファンクションはグローバルDDL
ロックを取得します。また、シーケンスをローカルにロックします。
このファンクションはトランザクションです。トランザクションのROLLBACK
を使用してエフェクトをロールバックできます。変更は現在のトランザクションに表示されます。
bdr.backwards_compatibility
が30618以下に設定されていない限り、シーケンスの所有者のみがbdr.alter_sequence_set_kind
ファンクションを実行できます。
bdr.extract_timestamp_from_snowflakeid#
このファンクションは、snowflakeid
シーケンスのタイムスタンプコンポーネントを抽出します。戻り値の型はtimestamptz
です。
概要#
bdr.extract_timestamp_from_snowflakeid(snowflakeid bigint)
パラメーター#
snowflakeid—snowflakeidシーケンスの値。
注#
このファンクションは、ローカルノードでのみ実行されます。
bdr.extract_nodeid_from_snowflakeid#
このファンクションは、snowflakeid
シーケンスのnodeidコンポーネントを抽出します。
概要#
bdr.extract_nodeid_from_snowflakeid(snowflakeid bigint)
パラメーター#
snowflakeid—snowflakeidシーケンスの値。
注#
このファンクションは、ローカルノードでのみ実行されます。
bdr.extract_localseqid_from_snowflakeid#
このファンクションは、snowflakeid
シーケンスのローカルシーケンス値コンポーネントを抽出します。
概要#
bdr.extract_localseqid_from_snowflakeid(snowflakeid bigint)
パラメーター#
snowflakeid—snowflakeidシーケンスの値。
注#
このファンクションは、ローカルノードでのみ実行されます。
bdr.timestamp_to_snowflakeid#
このファンクションは、タイムスタンプ値をダミーのsnowflakeid
シーケンス値に変換します。
これは、 snowflakeid
列および特定のタイムスタンプのインデックス付き検索または値の比較を行う場合に役立ちます。
たとえば、 snowflakeid シーケンスを使用している列id
を持つテーブルfoo
があると、次のように昨日の午前0時からの変更数を取得できます。
SELECT count(1) FROM foo WHERE id > bdr.timestamp_to_snowflakeid(yesterday)
この方法で定式化された照会は、列id
のインデックススキャンを使用します。
概要#
bdr.timestamp_to_snowflakeid(ts timestamptz)
パラメーター#
ts—snowflakeidシーケンス生成に使用するタイムスタンプ。
注#
このファンクションは、ローカルノードでのみ実行されます。
bdr.extract_timestamp_from_timeshard#
このファンクションは、timeshard
シーケンスのタイムスタンプコンポーネントを抽出します。戻り値の型はtimestamptz
です。
概要#
bdr.extract_timestamp_from_timeshard(timeshard_seq bigint)
パラメーター#
timeshard_seq—timeshardシーケンスの値。
注#
このファンクションは、ローカルノードでのみ実行されます。
bdr.extract_nodeid_from_timeshard#
このファンクションは、timeshard
シーケンスのnodeidコンポーネントを抽出します。
概要#
bdr.extract_nodeid_from_timeshard(timeshard_seq bigint)
パラメーター#
timeshard_seq—timeshardシーケンスの値。
注#
このファンクションは、ローカルノードでのみ実行されます。
bdr.extract_localseqid_from_timeshard#
このファンクションは、timeshard
シーケンスのローカルシーケンス値コンポーネントを抽出します。
概要#
bdr.extract_localseqid_from_timeshard(timeshard_seq bigint)
パラメーター#
timeshard_seq—timeshardシーケンスの値。
注#
このファンクションは、ローカルノードでのみ実行されます。
bdr.timestamp_to_timeshard#
このファンクションは、タイムスタンプ値をダミーのtimeshard
シーケンス値に変換します。
これは、 timeshard
列および特定のタイムスタンプのインデックス付き検索または値の比較を行う場合に役立ちます。
たとえば、 timeshard シーケンスを使用している列id
を持つテーブルfoo
があると、次のように昨日の午前0時からの変更数を取得できます。
SELECT count(1) FROM foo WHERE id > bdr.timestamp_to_timeshard(yesterday)
この方法で定式化された照会は、列id
のインデックススキャンを使用します。
概要#
bdr.timestamp_to_timeshard(ts timestamptz)
パラメーター#
ts—timeshardシーケンス生成に使用するタイムスタンプ。
注#
このファンクションは、ローカルノードでのみ実行されます。
bdr.galloc_chunk_info#
このファンクションは、ローカルノードでgallocシーケンスに割り当てられたレンジを取得します。
シーケンスがローカルノードでまだアクセスされていない場合、空の結果セットが返されます。
指定されたシーケンス名がgallocシーケンスでない場合、 ERRORが発生します。
概要#
bdr.galloc_chunk_info(seqname regclass)
パラメーター#
seqname- 照会するgallocシーケンスの名前
注#
このファンクションは、ローカルノードでのみ実行されます。
KSUUID v2ファンクション#
KSUUID v2データ、K-Sortable
UUIDデータを操作するためのファンクション。 KSUUID in the sequences documentation
も参照してください。
bdr.gen_ksuuid_v2#
このファンクションは、引数として渡されたタイムスタンプの値、またはNULLが渡された場合は現在のシステム時間を使用して、新しいKSUUID
v2値を生成します。システム時間を使用してKSUUIDを自動的に生成する場合は、NULL引数を渡します。
戻り値の型はUUIDです。
概要#
bdr.gen_ksuuid_v2(timestamptz)
注#
このファンクションは、ローカルノードでのみ実行されます。
bdr.ksuuid_v2_cmp#
このファンクションは、KSUUID v2値を比較します。
最初の値の方が新しい場合は1、2番目の値が小さい場合は-1、または等しい場合は0を返します。
概要#
bdr.ksuuid_v2_cmp(uuid, uuid)
パラメーター#
UUID—KSUUID比較するv2。
注#
このファンクションは、ローカルノードでのみ実行されます。
bdr.extract_timestamp_from_ksuuid_v2#
このファンクションは、KSUUID
v2のタイムスタンプコンポーネントを抽出します。戻り値の型はtimestamptz
です。
概要#
bdr.extract_timestamp_from_ksuuid_v2(uuid)
パラメーター#
UUID— タイムスタンプを抽出するKSUUIDv2値。
注#
このファンクションは、ローカルノードでのみ実行されます。
KSUUID v1ファンクション#
KSUUID v1データ、K-Sortable
UUIDデータv1を操作するためのファンクション。非推奨 - 詳細については、
KSUUID in the sequences documentation を参照してください。
bdr.gen_ksuuid#
このファンクションは、現在のシステム時間を使用して、新しいKSUUID
v1値を生成します。戻り値の型はUUIDです。
概要#
bdr.gen_ksuuid()
注#
このファンクションは、ローカルノードでのみ実行されます。
bdr.uuid_v1_cmp#
このファンクションは、KSUUID v1値を比較します。
最初の値の方が新しい場合は1、2番目の値が小さい場合は-1、または等しい場合は0を返します。
概要#
bdr.uuid_v1_cmp(uuid, uuid)
注#
このファンクションは、ローカルノードでのみ実行されます。
パラメーター#
UUID—KSUUID比較するv1。
bdr.extract_timestamp_from_ksuuid#
このファンクションは、KSUUID v1またはUUIDv1
値のタイムスタンプコンポーネントを抽出します。戻り値の型はtimestamptz
です。
概要#
bdr.extract_timestamp_from_ksuuid(uuid)
パラメーター#
UUID— タイムスタンプを抽出するKSUUIDv1値。
注#
このファンクションはローカルノードで実行されます。