パート 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に附属するサーバサイドのプログラミング言語についても説明します。 同時にサーバサイドのプログラミング言語に関する一般的な問題についても説明します。 サーバサイドのプログラミング言語の章に進む前に、少なくとも、第37章(関数も説明しています)の最初の数節を読破することは重要です。

目次

37. SQLの拡張
37.1. 拡張の作用法
37.2. PostgreSQLの型システム
37.3. ユーザ定義関数
37.4. 問い合わせ言語(SQL)関数
37.5. 関数のオーバーロード
37.6. 関数の変動性分類
37.7. 手続き型言語関数
37.8. 内部関数
37.9. C言語関数
37.10. ユーザ定義の集約
37.11. ユーザ定義の型
37.12. ユーザ定義の演算子
37.13. 演算子最適化に関する情報
37.14. インデックス拡張機能へのインタフェース
37.15. 関連するオブジェクトを拡張としてパッケージ化
37.16. 拡張構築基盤
38. トリガ
38.1. トリガ動作の概要
38.2. データ変更の可視性
38.3. Cによるトリガ関数の作成
38.4. 完全なトリガの例
39. イベントトリガ
39.1. イベントトリガ動作の概要
39.2. イベントトリガ起動マトリクス
39.3. C言語によるイベントトリガ関数の書き方
39.4. 完全なイベントトリガの例
39.5. テーブル書き換えイベントトリガの例
40. ルールシステム
40.1. 問い合わせツリーとは
40.2. ビューとルールシステム
40.3. マテリアライズドビュー
40.4. INSERTUPDATEDELETEについてのルール
40.5. ルールと権限
40.6. ルールおよびコマンドの状態
40.7. ルール対トリガ
41. 手続き言語
41.1. 手続き言語のインストール
42. PL/pgSQL - SQL手続き言語
42.1. 概要
42.2. PL/pgSQLの構造
42.3. 宣言
42.4. 式
42.5. 基本的な文
42.6. 制御構造
42.7. カーソル
42.8. エラーとメッセージ
42.9. トリガプロシージャ
42.10. PL/pgSQLの秘訣
42.11. PL/pgSQLによる開発向けのヒント
42.12. Oracle PL/SQLからの移植
43. PL/Tcl - Tcl手続き言語
43.1. 概要
43.2. PL/Tcl関数と引数
43.3. PL/Tclにおけるデータの値
43.4. PL/Tclにおけるグローバルデータ
43.5. PL/Tclからのデータベースアクセス
43.6. PL/Tclのトリガプロシージャ
43.7. PL/Tclにおけるイベントトリガプロシージャ
43.8. PL/Tclのエラー処理
43.9. Explicit Subtransactions in PL/Tcl
43.10. PL/Tcl Configuration
43.11. Tclプロシージャ名
44. PL/Perl - Perl手続き言語
44.1. PL/Perl関数と引数
44.2. PL/Perlにおけるデータ値
44.3. 組み込み関数
44.4. PL/Perlにおけるグローバルな値
44.5. 信頼されたPL/Perlおよび信頼されないPL/Perl
44.6. PL/Perlトリガ
44.7. PL/Perlイベントトリガ
44.8. PL/Perlの内部
45. PL/Python - Python手続き言語
45.1. Python 2対Python 3
45.2. PL/Python関数
45.3. データ値
45.4. データの共有
45.5. 匿名コードブロック
45.6. トリガ関数
45.7. データベースアクセス
45.8. 明示的サブトランザクション
45.9. ユーティリティ関数
45.10. 環境変数
46. サーバプログラミングインタフェース
46.1. インタフェース関数
46.2. インタフェースサポート関数
46.3. メモリ管理
46.4. データ変更の可視性
46.5. 例
47. バックグラウンドワーカプロセス
48. ロジカルデコーディング
48.1. ロジカルデコーディングの例
48.2. ロジカルデコーディングのコンセプト
48.3. ストリームレプリケーションプロトコルインターフェイス
48.4. ロジカルデコーディングSQLインタフェース
48.5. ロジカルデコーディング関連のシステムカタログ
48.6. ロジカルデコーディングの出力プラグイン
48.7. ロジカルデコーディング出力ライター
48.8. ロジカルデコーディングにおける同期レプリケーションのサポート
49. レプリケーション進捗の追跡
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