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関数¶
KSUUIDv2データ、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—比較するKSUUIDv2。
注意事項¶
この関数は、ローカルノードでのみ実行されます。
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—比較するKSUUIDv1。
bdr.extract_timestamp_from_ksuuid¶
この関数は、 KSUUID v1またはUUIDv1
値のタイムスタンプコンポーネントを抽出します。戻り値はtimestamptz型です。
概要¶
bdr.extract_timestamp_from_ksuuid(uuid)
パラメーター¶
UUID—タイムスタンプを抽出するKSUUIDv1値。
注意事項¶
この関数はローカルノードで実行されます。