[pgcluster: 409] PGClusterでサポートするSQLの詳細

Tadashi Ohkoshi okosi.tadasi @ nttcom.co.jp
2004年 7月 14日 (水) 15:50:09 JST


お世話になっております。大越です。

目的:システム方式検討・検証をPGClusterで考えています。
   それに伴い、使用できるSQLを明確化する必要があります。

そのため、2点ばかり確認をさせてください。
1)PGClusterはクライアントへ応答するタイミングは、
 ・すべてのクラスタDBへレプリケーション(一つが駄目でもそれを切り離す)
  がうまくいったとき(こちらだと理解しています)
 ・直接受けたクラスタDBが成功したタイミング
ですか
2)PGClusterがサポートするSQL文は下記のようになっていると理解して
 よろしいでしょうか?(振る舞いなど)

この理解で良いかの確認と、わからない部分のご教示をお願いします。

===
(蛇足)pgcluster-1.0.7-patchで31ファイルの*.cにパッチがあたっています。
(〜/src/backend/utils/adt/ri_triggers.c.origや*.h,sh,Makefile等は除く)

○:サポート、src修正(クラスタDB毎で同値等)で対処
△:サポート、レプリケーション実施
▲:サポート、レプリケーション未実施
×:サポート不可
?:不明、もしくはsrcに対象動作の”追加”はあるが、”削除”は不明等

SQL文     ,説明               ,PGClusterでの対応
===============+==================================+==================
ABORT     ,現在のトランザクションのアボート ,△
ALTER DATABASE ,データベースへの変更       ,"×(pgpool利用の為)"
ALTER GROUP  ,ユーザグループを変更       ,○
ALTER TABLE  ,テーブル定義の変更        ,"○(列・制約・
                          外部キー制約の追加)"
ALTER TRIGGER ,トリガ定義の変更         ,△
ALTER USER   ,データベースユーザアカウントの変更,△
ANALYZE    ,データベースに関する統計の集計  ,△
BEGIN     ,トランザクションブロックの開始  ,△
CHECKPOINT   ,強制的にトランザクションログの  ,△
        チェックポイントを実行
CLOSE     ,カーソルを閉じる         ,△
CLUSTER    ,インデックスに従ったテーブルの  ,△
        クラスタ化
COMMENT    ,オブジェクトのコメント定義,変更  ,△
COMMIT     ,現在のトランザクションのコミット ,△
COPY      ,ファイルとテーブル間での     ,○
        データコピー
CREATE AGGREGATE,新しい集約関数の定義       ,△
CREATE CAST  ,新しいキャストの定義       ,△
CREATE CONSTRAINT TRIGGER,新しい制約トリガの定義 ,△
CREATE CONVERSION,新しい変換の定義        ,△
CREATE DATABASE,新しいデータベースの作成     ,△
CREATE DOMAIN ,新しいドメインの定義       ,△
CREATE FUNCTION,新しい関数の定義         ,○
CREATE GROUP  ,新しいグループの定義       ,△
CREATE INDEX  ,新しいインデックスの定義     ,△
CREATE LANGUAGE,新しい手続き言語の定義      ,△
CREATE OPERATOR,新しい演算子の定義        ,△
CREATE OPERATOR CLASS,新しい演算子クラスを定義  ,△
CREATE RULE  ,新しい書き換えルールの定義    ,○
CREATE SCHEMA ,新しいスキーマを定義       ,○
CREATE SEQUENCE,新しいシーケンス生成器の定義   ,△
CREATE TABLE  ,新しいテーブルの定義       ,△
CREATE TABLE AS,問い合わせの結果からの新しいテーブルの作成,△
CREATE TRIGGER ,新しいトリガの定義        ,○
CREATE TYPE  ,新しいデータ型の定義       ,△
CREATE USER  ,新しいデータベースユーザアカウントの定義,△
CREATE VIEW  ,新しいビューの定義        ,△
DEALLOCATE   ,準備された文の割り当て解除    ,△
DECLARE    ,カーソルの定義          ,△
DELETE     ,テーブルから行を削除       ,○
DROP AGGREGATE ,集約関数の削除          ,△
DROP CAST   ,キャストの削除          ,△
DROP CONVERSION,変換の削除            ,△
DROP DATABASE ,データベースの削除        ,×(pgpool利用の為)
DROP DOMAIN  ,ドメインの削除          ,△
DROP FUNCTION ,関数の削除            ,?
DROP GROUP   ,ユーザグループの削除       ,△
DROP INDEX   ,インデックスの削除        ,△
DROP LANGUAGE ,手続き言語の削除         ,△
DROP OPERATOR ,演算子の削除           ,△
DROP OPERATOR CLASS,演算子クラスの削除      ,△
DROP RULE   ,書き換えルールの削除       ,△
DROP SCHEMA  ,スキーマの削除          ,?
DROP SEQUENCE ,シーケンスの削除         ,△
DROP TABLE   ,テーブルの削除          ,△
DROP TRIGGER  ,トリガの削除           ,△
DROP TYPE   ,データ型の削除          ,△
DROP USER   ,データベースユーザアカウントの削除,△
DROP VIEW   ,ビューの削除           ,?
END      ,現在のトランザクションのコミット ,▲
EXECUTE    ,プリペアードクエリの実行     ,○
EXPLAIN    ,問い合わせ文の実行計画の表示   ,▲
FETCH     ,カーソルを使用したテーブルからの行の抽出,△
GRANT     ,アクセス権限の定義        ,△
INSERT     ,テーブルに新しい行を作成     ,○
LISTEN     ,通知の監視            ,?
LOAD      ,共有ライブラリファイルの読み込み、または、再読み込み,?
LOCK      ,テーブルのロック         ,?
MOVE      ,カーソルの位置決め        ,△
NOTIFY     ,通知の生成            ,?
PREPARE    ,実行する文の準備         ,△
REINDEX    ,インデックスの再構築       ,△
RESET     ,実行時パラメータの値をデフォルト値に戻す,△
REVOKE     ,アクセス権限の取り上げ      ,△
ROLLBACK    ,現在のトランザクションのアボート ,△
SELECT     ,テーブルもしくはビューからの行の検索,▲
SELECT INTO  ,問い合わせの結果からの新しいテーブルの作成,▲
SET      ,実行時パラメータの変更      ,△
SET CONSTRAINTS,現在のトランザクションの制約モードの設定,△
SET SESSION AUTHORIZATION,セッションのユーザ識別子、現在のセッションの現在のユーザ識別子の設定,△
SET TRANSACTION,現在のトランザクションの特性の設定,△
SHOW      ,実行時パラメータの値の表示    ,▲
START TRANSACTION,トランザクションブロックの開始 ,△
TRUNCATE    ,テーブルの空化          ,△
UNLISTEN    ,通知の監視の停止         ,?
UPDATE     ,テーブルの行を更新        ,○
VACUUM     ,データベースの不要領域の回収   ,"▲(pg_class,pg_statisticは回収しますが、他のDBクラスタへReplicationはしませんね?)"





pgcluster メーリングリストの案内