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. The Rule System
37.1. The Query Tree
37.2. Views and the Rule System
37.3. Rules on INSERT, UPDATE, and DELETE
37.4. Rules and Privileges
37.5. Rules and Command Status
37.6. Rules Versus Triggers
38. Procedural Languages
38.1. Installing Procedural Languages
39. PL/pgSQL - SQL Procedural Language
39.1. Overview
39.2. Structure of PL/pgSQL
39.3. Declarations
39.4. Expressions
39.5. Basic Statements
39.6. Control Structures
39.7. Cursors
39.8. Errors and Messages
39.9. Trigger Procedures
39.10. PL/pgSQL Under the Hood
39.11. Tips for Developing in PL/pgSQL
39.12. Porting from Oracle PL/SQL
40. PL/Tcl - Tcl Procedural Language
40.1. Overview
40.2. PL/Tcl Functions and Arguments
40.3. Data Values in PL/Tcl
40.4. Global Data in PL/Tcl
40.5. Database Access from PL/Tcl
40.6. Trigger Procedures in PL/Tcl
40.7. Modules and the unknown Command
40.8. Tcl Procedure Names
41. PL/Perl - Perl Procedural Language
41.1. PL/Perl Functions and Arguments
41.2. Data Values in PL/Perl
41.3. Built-in Functions
41.4. Global Values in PL/Perl
41.5. Trusted and Untrusted PL/Perl
41.6. PL/Perl Triggers
41.7. PL/Perl Under the Hood
42. PL/Python - Python Procedural Language
42.1. Python 2 vs. Python 3
42.2. PL/Python Functions
42.3. Data Values
42.4. Sharing Data
42.5. Anonymous Code Blocks
42.6. Trigger Functions
42.7. Database Access
42.8. Explicit Subtransactions
42.9. Utility Functions
42.10. Environment Variables
43. Server Programming Interface
43.1. Interface Functions
43.2. Interface Support Functions
43.3. Memory Management
43.4. Visibility of Data Changes
43.5. Examples