メタデータのサポート

提供: InterBase

変更ビュー へ戻る


サブスクリプション情報は、新しいシステム関連 RDB$SUBSCRIPTIONS に、RDB$SUBSCRIPTION_NAMERDB$SUBSCRIBER_NAMERDB$DESTINATION について一意のキーで格納されています。 追加フィールドには、変更されたデータの「チェックイン」や「チェックアウト」を簡単にする制御情報が格納されています。 これには、スキーマ オブジェクト上で変更されたデータの、最後に観察された、トランザクション ID、タイムスタンプ、トランザクション コンテキストが含まれています。

  • 用語「チェックアウト」は、サブスクリプションが活性化された際、サブスクライブされたテーブルの行の変更列の SELECT を指します。
  • 用語「チェックイン」は、サブスクリプションが活性化された際、サブスクライブされたテーブルの行の変更列の INSERTUPDATEDELETE を指します。
  • サブスクリプションは、データベース セッションの間、SET SUBSCRIPTION ACTIVE の実行で活性化されます。
  • SET SUBSCRIPTION INACTIVE の実行で非活性化されます。

サブスクリプション/サブスクライバ テーブル

このトピックでは、変更ビュー機能の実装で、新規追加および更新された列について取り上げます。 RDB$SUBSCRIPTIONS および RDB$SUBSCRIBERS は、サブスクリプション/サブスクライバ要素をカバーする新しいテーブルです。 一覧されているその他のテーブルは、既存のテーブルに対して更新または追加された列を示しています。

RDB$SUBSCRIPTIONS

これは、新しいシステム関連/テーブルです(ODS バージョン 16 以降)。

列名 データ型 長さ 説明
RDB$SUBSCRIPTION_NAME CHAR 67 サブスクリプションの名前
RDB$RELATION_COUNTER SMALLINT 2 1 つのサブスクリプション内部の複数行項目を追跡するカウンタ
RDB$RELATION_NAME CHAR 67 関連またはビューの名前
RDB$FIELD_NAME CHAR 67 フィールドの名前
RDB$DESCRIPTION BLOB サブタイプ テキスト: サブスクリプションのテキスト説明
RDB$SECURITY_CLASS CHAR 67 サブスクリプションのセキュリティ クラス(SQL セキュリティ目的の所有者)
RDB$OWNER_NAME CHAR 67 サブスクリプションを作成したユーザー
RDB$RUNTIME BLOB パフォーマンス強化のためのランタイム バイナリ情報
RDB$FLAGS SMALLINT 2
RDB$INSERT BOOLEAN 2 挿入が追跡される
RDB$UPDATE BOOLEAN 2 更新が追跡される
RDB$DELETE BOOLEAN 2 削除が追跡される
RDB$CHANGE BOOLEAN 2 すべてのオペレーションを追跡するが、どの列が変更されても即座に返る

RDB$SUBSCRIBERS

これは、新しいシステム関連/テーブルです(ODS バージョン 16 以降)。 必要なサブスクライバ情報は、システム関連テーブルに格納されています。

列名 データ型 長さ 説明
RDB$SUBSCRIBER_NAME CHAR 31 サブスクライブしたユーザー名
RDB$SUBSCRIPTION_NAME CHAR 67 サブスクリプションの名前
RDB$DESTINATION CHAR 32 サブスクライバの通知先
RDB$FLAGS SMALLINT 2
RDB$CHECK_OUT_TRANSACTION_ID INT64 8 最後のサブスクリプション チェックアウトのトランザクション ID
RDB$CHECK_OUT_TIMESTAMP TIMESTAMP 8 最後のサブスクリプション チェックアウトの日時
RDB$CHECK_OUT_OLDEST_TRANSACTION_ID INT64 8 チェックアウト時の最も古いアクティブ トランザクションのトランザクション
RDB$CHECK_OUT_TRANSACTIONS BLOB 最終トランザクション チェックアウト時のアクティブ トランザクション ID のセット
RDB$CHECK_IN_TRANSACTION_ID INT64 8 最終サブスクリプション チェックインのトランザクション ID
RDB$CHECK_IN_TIMESTAMP TIMESTAMP 8 最後のサブスクリプション チェックインの日時
RDB$CHECK_IN_TRANSACTIONS BLOB このサブスクリプションによるチェックイン トランザクション ID のセット


RDB$ENCRYPTIONS

RDB$ENCRYPTIONS は、データベースに格納される暗号の文字を説明します。列名 RDB$FLAGS は更新され、RDB$ENCRYPTION_ID が追加されました:

列名 データ型 長さ 説明
RDB$FLAGS SMALLINT 2
  • 1 ランダム初期化ベクタ。暗号ブロック連鎖暗号化モードで定義されている。
  • 2 プレーンテキストのランダム パディング
  • 4 暗号化が削除のためにマークされている
  • 32 は、関連上の 1 つ以上のサブスクリプションを示す
RDB$ENCRYPTION_ID SMALLINT 暗号化キーの一意の識別子



RDB$FIELDS

RDB$FIELDS は、列の特性を定義します。 各ドメインまたは列は、RDB$FIELDS に対応する行があります。 新たな列名 RDB$SUBSCRIBE_FLAG が追加されました:

列名 データ型 長さ 説明
RDB$SUBSCRIBE_FLAG SMALLINT 2 フィールドの 1 つ以上のサブスクリプションを示す。


RDB$TRIGGERS

このテーブルはトリガを定義します。列名 RDB$PRIVILEGE は、新しいサブスクライブ値で追加されました:

列名 データ型 長さ 説明
RDB$PRIVILEGE CHAR 6 上記の RDB$USER 列に一覧されるユーザーに認可される権限を示します。フィールドに格納される文字は、以下に一覧される有効な値に該当します。

有効な値:

  • ALL (A)
  • SELECT (S)
  • DELETE (D)
  • INSERT (I)
  • UPDATE (U)
  • REFERENCE (R)
  • MEMBER OF (ロールに対して) (M)
  • DECRYPT (T)
  • ENCRYPT (E)
  • SUBSCRIBE (B)

既存のメタデータ関連にも変更がありました:

RDB$RELATIONS

RDB$RELATIONS は、テーブルおよびビューの特性を一部定義します。列名 RDB$FLAGS は、次のように更新されました:

列名 データ型 長さ 説明
RDB$FLAGS SMALLINT 2 No
1 = SQL 定義テーブル
2 = グローバル一時テーブル
4 = <今後の使用のために予約>
8 = コミット時、一時行を削除
16 = コミット時、位置行を保持。行はデータベースのデタッチ字に削除。
32 は、関連上の 1 つ以上のサブスクリプションを示す


RDB$RELATION_FIELDS

データベース テーブルの場合、RDB$RELATION_FIELDS は、列を一覧し、ドメインに対する列の特性を記述します。 4 つの列名が追加されました: RDB$FLAGS、 RDB$FIELD_NAME、RDB$RELATION_NAME、 RDB$FIELD_SOURCE で、次のようになっています:

列名 データ型 長さ 説明
RDB$FIELD_NAME CHAR 67 ユーザーによって定義される列名
RDB$RELATION_NAME CHAR 67 ユーザーによって定義されるテーブル名
RDB$FIELD_SOURCE CHAR 67 RDB$FIELDS.RDB$FIELD_NAME と一致する内部列名
RDB$FLAGS SMALLINT 2 Yes 1 = フィールド上の 1 つ以上のサブスクリプション


RDB$USER_PRIVILEGES

RDB$USER_PRIVILEGES は、SQL GRANT 文でユーザーに割り当てられた権限の追跡します。 列名 RDB$USERRDB$GRANTOR は、長さ 31 から 67 に更新されました:

列名 データ型 長さ 説明
RDB$USER CHAR 67 RDB$PRIVILEGE 列に一覧された権限が認可されたユーザー名
RDB$GRANTOR CHAR 67 権限を認可したユーザー名
RDB$PRIVILEGE CHAR 6 No Subscribe (B)

次は: