パート V. サーバプログラミング

<title>Server Programming</title>

This part is about extending the server functionality with user-defined functions, data types, triggers, etc. These are advanced topics which should probably be approached only after all the other user documentation about <productname>PostgreSQL</> has been understood. Later chapters in this part describe the server-side programming languages available in the <productname>PostgreSQL</productname> distribution as well as general issues concerning server-side programming languages. It is essential to read at least the earlier sections of <xref linkend="extend"> (covering functions) before diving into the material about server-side programming languages. ここでは、ユーザ定義の関数、データ型、演算子、トリガなどを使用してサーバの機能を拡張する方法について説明します。 これらはおそらく、PostgreSQLに関するユーザ向けの文書を理解した後にのみたどり着く先進的な話題です。 また、最後の数章でPostgreSQLに附属するサーバサイドのプログラミング言語についても説明します。 同時にサーバサイドのプログラミング言語に関する一般的な問題についても説明します。 サーバサイドのプログラミング言語の章に進む前に、少なくとも、36章SQLの拡張(関数も説明しています)の最初の数節を読破することは重要です。

目次

36. SQLの拡張
36.1. 拡張の作用法
36.2. PostgreSQLの型システム
36.3. ユーザ定義関数
36.4. 問い合わせ言語(SQL)関数
36.5. 関数のオーバーロード
36.6. 関数の変動性分類
36.7. 手続き型言語関数
36.8. 内部関数
36.9. C言語関数
36.10. ユーザ定義の集約
36.11. ユーザ定義の型
36.12. ユーザ定義の演算子
36.13. 演算子最適化に関する情報
36.14. インデックス拡張機能へのインタフェース
36.15. 関連するオブジェクトを拡張としてパッケージ化
36.16. 拡張構築基盤
37. トリガ
37.1. トリガ動作の概要
37.2. データ変更の可視性
37.3. Cによるトリガ関数の作成
37.4. 完全なトリガの例
38. イベントトリガ
38.1. イベントトリガ動作の概要
38.2. イベントトリガ起動マトリクス
38.3. C言語によるイベントトリガ関数の書き方
38.4. 完全なイベントトリガの例
38.5. テーブル書き換えイベントトリガの例
39. ルールシステム
39.1. 問い合わせツリーとは
39.2. ビューとルールシステム
39.3. マテリアライズドビュー
39.4. INSERTUPDATEDELETEについてのルール
39.5. ルールと権限
39.6. ルールおよびコマンドの状態
39.7. ルール対トリガ
40. 手続き言語
40.1. 手続き言語のインストール
41. PL/pgSQL - SQL手続き言語
41.1. 概要
41.2. PL/pgSQLの構造
41.3. 宣言
41.4. 式
41.5. 基本的な文
41.6. 制御構造
41.7. カーソル
41.8. エラーとメッセージ
41.9. トリガプロシージャ
41.10. PL/pgSQLの秘訣
41.11. PL/pgSQLによる開発向けのヒント
41.12. Oracle PL/SQLからの移植
42. PL/Tcl - Tcl手続き言語
42.1. 概要
42.2. PL/Tcl関数と引数
42.3. PL/Tclにおけるデータの値
42.4. PL/Tclにおけるグローバルデータ
42.5. PL/Tclからのデータベースアクセス
42.6. PL/Tclのトリガプロシージャ
42.7. PL/Tclにおけるイベントトリガプロシージャ
42.8. PL/Tclのエラー処理
42.9. モジュールとunknownコマンド
42.10. Tclプロシージャ名
43. PL/Perl - Perl手続き言語
43.1. PL/Perl関数と引数
43.2. PL/Perlにおけるデータ値
43.3. 組み込み関数
43.4. PL/Perlにおけるグローバルな値
43.5. 信頼されたPL/Perlおよび信頼されないPL/Perl
43.6. PL/Perlトリガ
43.7. PL/Perlイベントトリガ
43.8. PL/Perlの内部
44. PL/Python - Python手続き言語
44.1. Python 2対Python 3
44.2. PL/Python関数
44.3. データ値
44.4. データの共有
44.5. 匿名コードブロック
44.6. トリガ関数
44.7. データベースアクセス
44.8. 明示的サブトランザクション
44.9. ユーティリティ関数
44.10. 環境変数
45. サーバプログラミングインタフェース
45.1. インタフェース関数
45.2. インタフェースサポート関数
45.3. メモリ管理
45.4. データ変更の可視性
45.5. 例
46. バックグラウンドワーカプロセス
47. ロジカルデコーディング
47.1. ロジカルデコーディングの例
47.2. ロジカルデコーディングのコンセプト
47.3. ストリームレプリケーションプロトコルインターフェイス
47.4. ロジカルデコーディングSQLインタフェース
47.5. ロジカルデコーディング関連のシステムカタログ
47.6. ロジカルデコーディングの出力プラグイン
47.7. ロジカルデコーディング出力ライター
47.8. ロジカルデコーディングにおける同期レプリケーションのサポート
48. レプリケーション進捗の追跡
doc/src/sgml/extend.sgml doc/src/sgml/trigger.sgml doc/src/sgml/event-trigger.sgml doc/src/sgml/rules.sgml doc/src/sgml/xplang.sgml doc/src/sgml/plpgsql.sgml doc/src/sgml/pltcl.sgml doc/src/sgml/plperl.sgml doc/src/sgml/plpython.sgml doc/src/sgml/spi.sgml doc/src/sgml/bgworker.sgml doc/src/sgml/logicaldecoding.sgml doc/src/sgml/replication-origins.sgml