[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 メーリングリストの案内