부록 F. 부가 확장 모듈들

차례

F.1. adminpack
F.2. amcheck
F.2.1. Functions
F.2.2. Optional heapallindexed Verification
F.2.3. Using amcheck Effectively
F.2.4. Repairing Corruption
F.3. auth_delay
F.3.1. 환경 설정 매개 변수
F.3.2. 만든이
F.4. auto_explain
F.4.1. 환경 설정 매개 변수들
F.4.2. 예제
F.4.3. 만든이
F.5. bloom
F.5.1. Parameters
F.5.2. Examples
F.5.3. Operator Class Interface
F.5.4. Limitations
F.5.5. Authors
F.6. btree_gin
F.6.1. Example Usage
F.6.2. Authors
F.7. btree_gist
F.7.1. Example Usage
F.7.2. Authors
F.8. citext
F.8.1. Rationale
F.8.2. How to Use It
F.8.3. String Comparison Behavior
F.8.4. Limitations
F.8.5. Author
F.9. cube
F.9.1. Syntax
F.9.2. Precision
F.9.3. Usage
F.9.4. Defaults
F.9.5. Notes
F.9.6. Credits
F.10. dblink
dblink_connect — opens a persistent connection to a remote database
dblink_connect_u — opens a persistent connection to a remote database, insecurely
dblink_disconnect — closes a persistent connection to a remote database
dblink — executes a query in a remote database
dblink_exec — executes a command in a remote database
dblink_open — opens a cursor in a remote database
dblink_fetch — returns rows from an open cursor in a remote database
dblink_close — closes a cursor in a remote database
dblink_get_connections — returns the names of all open named dblink connections
dblink_error_message — gets last error message on the named connection
dblink_send_query — sends an async query to a remote database
dblink_is_busy — checks if connection is busy with an async query
dblink_get_notify — retrieve async notifications on a connection
dblink_get_result — gets an async query result
dblink_cancel_query — cancels any active query on the named connection
dblink_get_pkey — returns the positions and field names of a relation's primary key fields
dblink_build_sql_insert — builds an INSERT statement using a local tuple, replacing the primary key field values with alternative supplied values
dblink_build_sql_delete — builds a DELETE statement using supplied values for primary key field values
dblink_build_sql_update — builds an UPDATE statement using a local tuple, replacing the primary key field values with alternative supplied values
F.11. dict_int
F.11.1. Configuration
F.11.2. Usage
F.12. dict_xsyn
F.12.1. Configuration
F.12.2. Usage
F.13. earthdistance
F.13.1. Cube-Based Earth Distances
F.13.2. Point-Based Earth Distances
F.14. file_fdw
F.15. fuzzystrmatch
F.15.1. Soundex
F.15.2. Levenshtein
F.15.3. Metaphone
F.15.4. Double Metaphone
F.16. hstore
F.16.1. hstore External Representation
F.16.2. hstore Operators and Functions
F.16.3. Indexes
F.16.4. Examples
F.16.5. Statistics
F.16.6. Compatibility
F.16.7. Transforms
F.16.8. Authors
F.17. intagg
F.17.1. Functions
F.17.2. Sample Uses
F.18. intarray
F.18.1. intarray 함수와 연산자들
F.18.2. 인덱스 지원
F.18.3. 사용 예
F.18.4. 성능 검사
F.18.5. 만든이
F.19. isn
F.19.1. 자료형
F.19.2. 자료형 변환
F.19.3. 함수와 연산자들
F.19.4. 예제
F.19.5. 참고 문헌
F.19.6. 만든 이
F.20. lo
F.20.1. 개발 배경
F.20.2. 사용법
F.20.3. 한계
F.20.4. 만든이
F.21. ltree
F.21.1. Definitions
F.21.2. Operators and Functions
F.21.3. Indexes
F.21.4. Example
F.21.5. Transforms
F.21.6. Authors
F.22. pageinspect
F.22.1. General Functions
F.22.2. Heap Functions
F.22.3. B-Tree Functions
F.22.4. BRIN Functions
F.22.5. GIN Functions
F.22.6. Hash Functions
F.23. passwordcheck
F.24. pg_buffercache
F.24.1. pg_buffercache
F.24.2. 출력 예제
F.24.3. 만든이
F.25. pgcrypto
F.25.1. 일반 해시 함수
F.25.2. 비밀번호 해시 함수
F.25.3. PGP 암호 함수
F.25.4. 저수준 암복호화 함수
F.25.5. 난수 생성 함수
F.25.6. 참고
F.25.7. 만든이
F.26. pg_freespacemap
F.26.1. 함수들
F.26.2. 출력 예제
F.26.3. 만든이
F.27. pg_prewarm
F.27.1. Functions
F.27.2. Configuration Parameters
F.27.3. Author
F.28. pgrowlocks
F.28.1. Overview
F.28.2. Sample Output
F.28.3. Author
F.29. pg_stat_statements
F.29.1. pg_stat_statements
F.29.2. 함수들
F.29.3. 환경 설정 매개 변수들
F.29.4. 예제 출력
F.29.5. 만든이
F.30. pgstattuple
F.30.1. Functions
F.30.2. Authors
F.31. pg_trgm
F.31.1. Trigram (or Trigraph) Concepts
F.31.2. Functions and Operators
F.31.3. GUC Parameters
F.31.4. Index Support
F.31.5. Text Search Integration
F.31.6. References
F.31.7. Authors
F.32. pg_visibility
F.32.1. Functions
F.32.2. Author
F.33. postgres_fdw
F.33.1. FDW Options of postgres_fdw
F.33.2. Connection Management
F.33.3. Transaction Management
F.33.4. Remote Query Optimization
F.33.5. Remote Query Execution Environment
F.33.6. Cross-Version Compatibility
F.33.7. Examples
F.33.8. Author
F.34. seg
F.34.1. Rationale
F.34.2. Syntax
F.34.3. Precision
F.34.4. Usage
F.34.5. Notes
F.34.6. Credits
F.35. sepgsql
F.35.1. Overview
F.35.2. Installation
F.35.3. Regression Tests
F.35.4. GUC Parameters
F.35.5. Features
F.35.6. Sepgsql Functions
F.35.7. Limitations
F.35.8. External Resources
F.35.9. Author
F.36. spi
F.36.1. refint — Functions for Implementing Referential Integrity
F.36.2. autoinc — Functions for Autoincrementing Fields
F.36.3. insert_username — Functions for Tracking Who Changed a Table
F.36.4. moddatetime — Functions for Tracking Last Modification Time
F.37. sslinfo
F.37.1. Functions Provided
F.37.2. Author
F.38. tablefunc
F.38.1. Functions Provided
F.38.2. Author
F.39. tcn
F.40. test_decoding
F.41. tsm_system_rows
F.41.1. Examples
F.42. tsm_system_time
F.42.1. Examples
F.43. unaccent
F.43.1. Configuration
F.43.2. Usage
F.43.3. Functions
F.44. uuid-ossp
F.44.1. uuid-ossp Functions
F.44.2. Building uuid-ossp
F.44.3. Author
F.45. xml2
F.45.1. Deprecation Notice
F.45.2. Description of Functions
F.45.3. xpath_table
F.45.4. XSLT Functions
F.45.5. Author

이 부록과 다음 부록에는 PostgreSQL 배포판의 contrib 디렉터리에 포함 되어 있는 확장 모듈과 확장 응용 프로그램들에 대한 정보를 다룬다. 여기서는 소개하고 있는 포팅 도구들, 분석 도구들, 기본 PostgreSQL 시스템에 포함되어 있지 않은 부가 모듈들은 실험적이거나, 범용적이지 않은 것들이지만, 유용하게 쓰일 수 있으며, 충분히 안정적이다.

여기서는 contrib 안에 있는 서버 확장 모듈들에 대해서 소개한다. 부가 확장 응용 프로그램에 대해서는 부록 G에서 소개한다.

소스 배포판에서 이 확장 모듈들은 자동으로 만들어지지 않는다. 만들려면, "world" 타켓을 지정해야한다 (단계 2 참조). contrib 디렉터리에서 직접 만들고 설치하려면:

make
make install

이 작업은 먼저 configure 명령으로 빌드 환경이 구축되어야 한다. 각 개별 모듈을 각각 설치하려면, 그 해당 디렉터리로 이동해서 같은 작업을 하면 된다. 또한 많은 모듈들이 단위 테스트를 지원함으로 이 작업을 하려면 다음 명령어로 진행할 수 있다:

make check

설치 전 테스트는 다음과 같이 한다:

make installcheck

이 작업은 PostgreSQL 서버가 실행 중이어야 한다.

미리 컴파일 된 패키지들로 이 모듈을 설치하려면, PostgreSQL 패키지들 가운데, postgresql-contrib 이름으로 패키지 이름으로 대부분 배포된다. 이것을 설치하면 된다.

많은 모듈들이 새로운 사용자 정의 함수, 연산자, 자료형을 제공한다. 이 모듈에서 제공하는 이것들을 사용하려면, 코드에서 설치를 끝내고 나서 데이터베이스 시스템에 새로운 SQL 객체들을 등록해 주어야 사용할 수 있다. 이런 일련의 작업을 CREATE EXTENSION 명령어로 손쉽게 할 수 있다. 새로운 확장 모듈을 해당 데이터베이스 설치하려면, 데이터베이스 접속 후 다음과 같은 명령을 실행하면 된다:

CREATE EXTENSION 확장모듈이름;

이 작업은 현재 접속해 있는 데이터베이스에 한정 되어 작동한다. 필요하다면, 서버에 있는 여러 데이터베이스에 해당 모듈을 사용하고싶다면, 각각 이 명령을 실행해 주거나, template1 데이터베이스에 설치해서 새로 만들어지는 데이터베이스에 대해서는 자동으로 설치되도록 할 수도 있을 것이다.

trusted 표시가된 모듈이 아니면, 신뢰할 수 없는 모듈임으로 이런 모듈들은 데이터베이스 슈퍼유저이거나, 해당 데이터베이스를 대상으로 CREATE 권한이 있는 사용자만 설치할 수 있다. 신뢰할 수 있는 모듈은 다음 다음 섹션들에서 각각 언급한다. 일반적으로, 신뢰할 수 있는 모듈이란 데이터베이스 범위 밖의 일은 하지 못하도록 기능이 한정적인 것들을 말한다.

많은 모듈들은 설치될 스키마를 직접 지정할 수 있도록 한다. 이렇게 하려면, CREATE EXTENSION 명령 구문에, SCHEMA 스키마이름 형태로 추가해 주면 된다. 이 값을 지정하지 않으면, public 스키마에 필요한 객체들이 만들어진다.

하나 주의할 사항은 몇 확장 모듈은 shared_preload_libraries 환경 설정 값으로 해당 라이브러리가 서버 실행 시 먼저 로딩 되어야하는 경우도 있다. 이런 모듈들은 개별 모듈 설명서에서 소개하고 있으니, 그 부분을 참고 해야한다.