V. 서버 프로그래밍

여기서는 서버기능을 확장할 수 있는 사용자 정의 함수, 자료형, 트리거 등을 확장하는 방법에 대해서 소개하고 있다. PostgreSQL에 대해서 이미 충분히 이해 하고 있어야 이 부분의 내용을 이해하기 쉽다. 이 파트의 뒷부분에서는 서버측 프로그래밍 언어인 프로시져 언어에 대한 일반적인 부분들도 설명하고 있다. 이 부분에서 가장 중요한 부분은 35장 이다. 이 장을 충분히 읽어 숙지를 하고 있는 것이 서버측 프로그래밍 언어를 사용하는데 도움이 많이 될 것이다.

차례
35. Extending SQL
35.1. How Extensibility Works
35.2. The PostgreSQL Type System
35.3. User-defined Functions
35.4. Query Language (SQL) Functions
35.5. Function Overloading
35.6. Function Volatility Categories
35.7. Procedural Language Functions
35.8. Internal Functions
35.9. C-Language Functions
35.10. User-defined Aggregates
35.11. User-defined Types
35.12. User-defined Operators
35.13. Operator Optimization Information
35.14. Interfacing Extensions To Indexes
35.15. Packaging Related Objects into an Extension
35.16. Extension Building Infrastructure
36. Triggers
36.1. Overview of Trigger Behavior
36.2. Visibility of Data Changes
36.3. Writing Trigger Functions in C
36.4. A Complete Trigger Example
37. Event Triggers
37.1. Overview of Event Trigger Behavior
37.2. Event Trigger Firing Matrix
37.3. Writing Event Trigger Functions in C
37.4. A Complete Event Trigger Example
38. The Rule System
38.1. The Query Tree
38.2. Views and the Rule System
38.3. Materialized Views
38.4. Rules on INSERT, UPDATE, and DELETE
38.5. Rules and Privileges
38.6. Rules and Command Status
38.7. Rules Versus Triggers
39. Procedural Languages
39.1. Installing Procedural Languages
40. PL/pgSQL - SQL 프로시저 언어
40.1. 소개
40.2. PL/pgSQL의 구조
40.3. 선언(Declarations)
40.4. Expressions
40.5. Basic Statements
40.6. Control Structures
40.7. Cursors
40.8. Errors and Messages
40.9. Trigger Procedures
40.10. PL/pgSQL Under the Hood
40.11. Tips for Developing in PL/pgSQL
40.12. Porting from Oracle PL/SQL
41. PL/Tcl - Tcl Procedural Language
41.1. Overview
41.2. PL/Tcl Functions and Arguments
41.3. Data Values in PL/Tcl
41.4. Global Data in PL/Tcl
41.5. Database Access from PL/Tcl
41.6. Trigger Procedures in PL/Tcl
41.7. Event Trigger Procedures in PL/Tcl
41.8. Modules and the unknown Command
41.9. Tcl Procedure Names
42. PL/Perl - Perl Procedural Language
42.1. PL/Perl Functions and Arguments
42.2. Data Values in PL/Perl
42.3. Built-in Functions
42.4. Global Values in PL/Perl
42.5. Trusted and Untrusted PL/Perl
42.6. PL/Perl Triggers
42.7. PL/Perl Event Triggers
42.8. PL/Perl Under the Hood
43. PL/Python - Python Procedural Language
43.1. Python 2 vs. Python 3
43.2. PL/Python Functions
43.3. Data Values
43.4. Sharing Data
43.5. Anonymous Code Blocks
43.6. Trigger Functions
43.7. Database Access
43.8. Explicit Subtransactions
43.9. Utility Functions
43.10. Environment Variables
44. Server Programming Interface
44.1. Interface Functions
44.2. Interface Support Functions
44.3. Memory Management
44.4. Visibility of Data Changes
44.5. Examples
45. Background Worker Processes
46. Logical Decoding
46.1. Logical Decoding Examples
46.2. Logical Decoding Concepts
46.3. Streaming Replication Protocol Interface
46.4. Logical Decoding SQL Interface
46.5. System Catalogs Related to Logical Decoding
46.6. Logical Decoding Output Plugins
46.7. Logical Decoding Output Writers
46.8. Synchronous Replication Support for Logical Decoding