Global sequence management interfaces

PGDは、標準のPostgreSQLシーケンスとPGDグローバルシーケンスの間で変換するためのインターフェイスを提供します。

以下の関数はDDL とみなされるため、 DDLレプリケーションとグローバルロックが適用されます。

シーケンス関数

bdr.alter_sequence_set_kind

シーケンスの所有者がシーケンスの種類を設定できるようにします。設定すると、 seqkind はbdr.sequences ビューを介してのみ表示されます。他のすべての方法では、シーケンスは通常のシーケンスとして表示されます。

PGDはこの関数をDDL として扱うため、現在アクティブな場合、 DDLレプリケーションとグローバルロックが適用されます。

DMLおよびDDLレプリケーション を参照してください。

概要

bdr.alter_sequence_set_kind(seqoid regclass, seqkind text)

パラメーター

  • seqoid —変更するシーケンスの名前またはOid。

  • seqkind —標準のPostgreSQLシーケンスの場合は local 、グローバルに一意のPGDシーケンスの場合は snowflakeid またはgalloc 、またはレガシーのグローバルに一意のシーケンスの場合は timeshard 。

注意事項

シーケンスの種類をgalloc に変更すると、そのシーケンスに最初に割り当てられた範囲はシーケンス開始値を開始点として使用します。 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型です。

概要

sql bdr.extract_timestamp_from_snowflakeid(snowflakeid bigint)

パラメーター

  • snowflakeid -スノーフレークイドシーケンスの値。

注意事項

この関数は、ローカルノードでのみ実行されます。

bdr.extract_nodeid_from_snowflakeid

この関数は、 snowflakeid シーケンスのnodeidコンポーネントを抽出します。

概要

sql bdr.extract_nodeid_from_snowflakeid(snowflakeid bigint)

パラメーター

  • snowflakeid -スノーフレークイドシーケンスの値。

注意事項

この関数は、ローカルノードでのみ実行されます。

bdr.extract_localseqid_from_snowflakeid

この関数は、 snowflakeid シーケンスのローカルシーケンス値コンポーネントを抽出します。

概要

sql bdr.extract_localseqid_from_snowflakeid(snowflakeid bigint)

パラメーター

  • snowflakeid -スノーフレークイドシーケンスの値。

注意事項

この関数は、ローカルノードでのみ実行されます。

bdr.timestamp_to_snowflakeid

この関数は、タイムスタンプ値をダミーのスノーフレークIDシーケンス値に変換します。

これは、snowflakeid列の値と特定のタイムスタンプのインデックス付き検索または比較を行う場合に役立ちます。

たとえば、 snowflakeid シーケンスを使用している列id を持つテーブルfoo が与えられた場合、次のように昨日の午前0時からの変更数を取得できます。

SELECT count(1) FROM foo WHERE id > bdr.timestamp_to_snowflakeid(yesterday)

このように定式化されたクエリは、列id でインデックススキャンを使用します。

概要

sql 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 —タイムハードシーケンスの値。

注意事項

この関数は、ローカルノードでのみ実行されます。

bdr.extract_nodeid_from_timeshard

この関数は、 timeshard シーケンスのnodeidコンポーネントを抽出します。

概要

bdr.extract_nodeid_from_timeshard(timeshard_seq bigint)

パラメーター

  • timeshard_seq —タイムハードシーケンスの値。

注意事項

この関数は、ローカルノードでのみ実行されます。

bdr.extract_localseqid_from_timeshard

この関数は、 timeshard シーケンスのローカルシーケンス値コンポーネントを抽出します。

概要

bdr.extract_localseqid_from_timeshard(timeshard_seq bigint)

パラメーター

  • timeshard_seq —タイムハードシーケンスの値。

注意事項

この関数は、ローカルノードでのみ実行されます。

bdr.timestamp_to_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 —タイムハードシーケンス生成に使用するタイムスタンプ。

注意事項

この関数は、ローカルノードでのみ実行されます。

KSUUID v2関数

KSUUID v2データ、K-Sortable UUIDデータを操作するための関数。

KSUUID in the sequences documentation も参照してください。

bdr.gen_ksuuid_v2

この関数は、引数として渡されたtimestampの値、または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 —タイムスタンプを抽出するKSUUID v2値。

注意事項

この関数は、ローカルノードでのみ実行されます。

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 —タイムスタンプを抽出するKSUUID v1値。

注意事項

この関数はローカルノードで実行されます。