부 V. 서버 프로그래밍

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

차례

37. Extending SQL
37.1. How Extensibility Works
37.2. The PostgreSQL Type System
37.3. 사용자 정의 함수
37.4. User-Defined Procedures
37.5. 쿼리 언어 (SQL) 함수
37.6. 함수 오버로드
37.7. 휘발성에 따른 함수 분류
37.8. Procedural Language Functions
37.9. Internal Functions
37.10. C-Language Functions
37.11. Function Optimization Information
37.12. 사용자 정의 집계 함수
37.13. User-Defined Types
37.14. 사용자 정의 연산자
37.15. 연산자 최적화 정보
37.16. Interfacing Extensions to Indexes
37.17. Packaging Related Objects into an Extension
37.18. Extension Building Infrastructure
38. Triggers
38.1. Overview of Trigger Behavior
38.2. Visibility of Data Changes
38.3. Writing Trigger Functions in C
38.4. A Complete Trigger Example
39. Event Triggers
39.1. Overview of Event Trigger Behavior
39.2. Event Trigger Firing Matrix
39.3. Writing Event Trigger Functions in C
39.4. A Complete Event Trigger Example
39.5. A Table Rewrite Event Trigger Example
40. The Rule System
40.1. The Query Tree
40.2. Views and the Rule System
40.3. Materialized Views
40.4. Rules on INSERT, UPDATE, and DELETE
40.5. Rules and Privileges
40.6. Rules and Command Status
40.7. Rules Versus Triggers
41. Procedural Languages
41.1. Installing Procedural Languages
42. PL/pgSQLSQL 프로시저 언어
42.1. 소개
42.2. PL/pgSQL의 구조
42.3. 선언(Declarations)
42.4. Expressions
42.5. Basic Statements
42.6. Control Structures
42.7. Cursors
42.8. Transaction Management
42.9. Errors and Messages
42.10. Trigger Functions
42.11. PL/pgSQL under the Hood
42.12. Tips for Developing in PL/pgSQL
42.13. Porting from Oracle PL/SQL
43. PL/Tcl — Tcl Procedural Language
43.1. Overview
43.2. PL/Tcl Functions and Arguments
43.3. Data Values in PL/Tcl
43.4. Global Data in PL/Tcl
43.5. Database Access from PL/Tcl
43.6. Trigger Functions in PL/Tcl
43.7. Event Trigger Functions in PL/Tcl
43.8. Error Handling in PL/Tcl
43.9. Explicit Subtransactions in PL/Tcl
43.10. Transaction Management
43.11. PL/Tcl Configuration
43.12. Tcl Procedure Names
44. PL/Perl — Perl Procedural Language
44.1. PL/Perl Functions and Arguments
44.2. Data Values in PL/Perl
44.3. Built-in Functions
44.4. Global Values in PL/Perl
44.5. Trusted and Untrusted PL/Perl
44.6. PL/Perl Triggers
44.7. PL/Perl Event Triggers
44.8. PL/Perl Under the Hood
45. PL/Python — Python Procedural Language
45.1. Python 2 vs. Python 3
45.2. PL/Python Functions
45.3. Data Values
45.4. Sharing Data
45.5. Anonymous Code Blocks
45.6. Trigger Functions
45.7. Database Access
45.8. Explicit Subtransactions
45.9. Transaction Management
45.10. Utility Functions
45.11. Environment Variables
46. Server Programming Interface
46.1. Interface Functions
46.2. Interface Support Functions
46.3. Memory Management
46.4. Transaction Management
46.5. Visibility of Data Changes
46.6. Examples
47. Background Worker Processes
48. 논리적 디코딩
48.1. 논리적 디코딩 예제
48.2. 논리적 디코딩 개념
48.3. 스트리밍 복제 프로토콜 인터페이스
48.4. 논리적 디코딩 SQL 인터페이스
48.5. 논리적 디코딩과 관계된 시스템 카탈로그
48.6. 논리적 디코딩 출력 플러그인
48.7. Logical Decoding Output Writers
48.8. Synchronous Replication Support for Logical Decoding
49. Replication Progress Tracking