부 V. 서버 프로그래밍

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

차례

38. Extending SQL
38.1. How Extensibility Works
38.2. The PostgreSQL Type System
38.3. 사용자 정의 함수
38.4. User-defined Procedures
38.5. 쿼리 언어 (SQL) 함수
38.6. 함수 오버로드
38.7. 휘발성에 따른 함수 분류
38.8. Procedural Language Functions
38.9. Internal Functions
38.10. C-Language Functions
38.11. 사용자 정의 집계 함수
38.12. User-defined Types
38.13. 사용자 정의 연산자
38.14. 연산자 최적화 정보
38.15. Interfacing Extensions To Indexes
38.16. Packaging Related Objects into an Extension
38.17. Extension Building Infrastructure
39. Triggers
39.1. Overview of Trigger Behavior
39.2. Visibility of Data Changes
39.3. Writing Trigger Functions in C
39.4. A Complete Trigger Example
40. Event Triggers
40.1. Overview of Event Trigger Behavior
40.2. Event Trigger Firing Matrix
40.3. Writing Event Trigger Functions in C
40.4. A Complete Event Trigger Example
40.5. A Table Rewrite Event Trigger Example
41. The Rule System
41.1. The Query Tree
41.2. Views and the Rule System
41.3. Materialized Views
41.4. Rules on INSERT, UPDATE, and DELETE
41.5. Rules and Privileges
41.6. Rules and Command Status
41.7. Rules Versus Triggers
42. Procedural Languages
42.1. Installing Procedural Languages
43. PL/pgSQL - SQL 프로시저 언어
43.1. 소개
43.2. PL/pgSQL의 구조
43.3. 선언(Declarations)
43.4. Expressions
43.5. Basic Statements
43.6. Control Structures
43.7. Cursors
43.8. Transaction Management
43.9. Errors and Messages
43.10. Trigger Functions
43.11. PL/pgSQL Under the Hood
43.12. Tips for Developing in PL/pgSQL
43.13. Porting from Oracle PL/SQL
44. PL/Tcl - Tcl Procedural Language
44.1. Overview
44.2. PL/Tcl Functions and Arguments
44.3. Data Values in PL/Tcl
44.4. Global Data in PL/Tcl
44.5. Database Access from PL/Tcl
44.6. Trigger Functions in PL/Tcl
44.7. Event Trigger Functions in PL/Tcl
44.8. Error Handling in PL/Tcl
44.9. Explicit Subtransactions in PL/Tcl
44.10. Transaction Management
44.11. PL/Tcl Configuration
44.12. Tcl Procedure Names
45. PL/Perl - Perl Procedural Language
45.1. PL/Perl Functions and Arguments
45.2. Data Values in PL/Perl
45.3. Built-in Functions
45.4. Global Values in PL/Perl
45.5. Trusted and Untrusted PL/Perl
45.6. PL/Perl Triggers
45.7. PL/Perl Event Triggers
45.8. PL/Perl Under the Hood
46. PL/Python - Python Procedural Language
46.1. Python 2 vs. Python 3
46.2. PL/Python Functions
46.3. Data Values
46.4. Sharing Data
46.5. Anonymous Code Blocks
46.6. Trigger Functions
46.7. Database Access
46.8. Explicit Subtransactions
46.9. Transaction Management
46.10. Utility Functions
46.11. Environment Variables
47. Server Programming Interface
47.1. Interface Functions
47.2. Interface Support Functions
47.3. Memory Management
47.4. Transaction Management
47.5. Visibility of Data Changes
47.6. Examples
48. Background Worker Processes
49. 논리적 디코딩
49.1. 논리적 디코딩 예제
49.2. 논리적 디코딩 개념
49.3. 스트리밍 복제 프로토콜 인터페이스
49.4. 논리적 디코딩 SQL 인터페이스
49.5. 논리적 디코딩과 관계된 시스템 카탈로그
49.6. 논리적 디코딩 출력 플러그인
49.7. Logical Decoding Output Writers
49.8. Synchronous Replication Support for Logical Decoding
50. Replication Progress Tracking