V. 서버 프로그래밍

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

차례
36. Extending SQL
36.1. How Extensibility Works
36.2. The PostgreSQL Type System
36.3. 사용자 정의 함수
36.4. 쿼리 언어 (SQL) 함수
36.5. 함수 오버로드
36.6. 휘발성에 따른 함수 분류
36.7. Procedural Language Functions
36.8. Internal Functions
36.9. C-Language Functions
36.10. 사용자 정의 집계 함수
36.11. User-defined Types
36.12. 사용자 정의 연산자
36.13. 연산자 최적화 정보
36.14. Interfacing Extensions To Indexes
36.15. Packaging Related Objects into an Extension
36.16. Extension Building Infrastructure
37. Triggers
37.1. Overview of Trigger Behavior
37.2. Visibility of Data Changes
37.3. Writing Trigger Functions in C
37.4. A Complete Trigger Example
38. Event Triggers
38.1. Overview of Event Trigger Behavior
38.2. Event Trigger Firing Matrix
38.3. Writing Event Trigger Functions in C
38.4. A Complete Event Trigger Example
38.5. A Table Rewrite Event Trigger Example
39. The Rule System
39.1. The Query Tree
39.2. Views and the Rule System
39.3. Materialized Views
39.4. Rules on INSERT, UPDATE, and DELETE
39.5. Rules and Privileges
39.6. Rules and Command Status
39.7. Rules Versus Triggers
40. Procedural Languages
40.1. Installing Procedural Languages
41. PL/pgSQL - SQL 프로시저 언어
41.1. 소개
41.2. PL/pgSQL의 구조
41.3. 선언(Declarations)
41.4. Expressions
41.5. Basic Statements
41.6. Control Structures
41.7. Cursors
41.8. Errors and Messages
41.9. Trigger Procedures
41.10. PL/pgSQL Under the Hood
41.11. Tips for Developing in PL/pgSQL
41.12. Porting from Oracle PL/SQL
42. PL/Tcl - Tcl Procedural Language
42.1. Overview
42.2. PL/Tcl Functions and Arguments
42.3. Data Values in PL/Tcl
42.4. Global Data in PL/Tcl
42.5. Database Access from PL/Tcl
42.6. Trigger Procedures in PL/Tcl
42.7. Event Trigger Procedures in PL/Tcl
42.8. Error Handling in PL/Tcl
42.9. Modules and the unknown Command
42.10. Tcl Procedure Names
43. PL/Perl - Perl Procedural Language
43.1. PL/Perl Functions and Arguments
43.2. Data Values in PL/Perl
43.3. Built-in Functions
43.4. Global Values in PL/Perl
43.5. Trusted and Untrusted PL/Perl
43.6. PL/Perl Triggers
43.7. PL/Perl Event Triggers
43.8. PL/Perl Under the Hood
44. PL/Python - Python Procedural Language
44.1. Python 2 vs. Python 3
44.2. PL/Python Functions
44.3. Data Values
44.4. Sharing Data
44.5. Anonymous Code Blocks
44.6. Trigger Functions
44.7. Database Access
44.8. Explicit Subtransactions
44.9. Utility Functions
44.10. Environment Variables
45. Server Programming Interface
45.1. Interface Functions
45.2. Interface Support Functions
45.3. Memory Management
45.4. Visibility of Data Changes
45.5. Examples
46. Background Worker Processes
47. 논리적 디코딩
47.1. 논리적 디코딩 예제
47.2. 논리적 디코딩 개념
47.3. 스트리밍 복제 프로토콜 인터페이스
47.4. 논리적 디코딩 SQL 인터페이스
47.5. 논리적 디코딩과 관계된 시스템 카탈로그
47.6. 논리적 디코딩 출력 플러그인
47.7. Logical Decoding Output Writers
47.8. Synchronous Replication Support for Logical Decoding
48. Replication Progress Tracking