PostgreSQL용 신뢰할 수 있는 언어 확장에 대한 함수 참조
PostgreSQL용 신뢰할 수 있는 언어 확장에서 사용할 수 있는 함수에 대한 다음 참조 설명서를 참조하세요. 이러한 함수를 사용하면 TLE 확장, 즉 신뢰할 수 있는 언어 확장 개발 키트를 사용하여 개발한 PostgreSQL 확장을 설치, 등록, 업데이트 및 관리할 수 있습니다.
함수
- pgtle.available_extensions
- pgtle.available_extension_versions
- pgtle.extension_update_paths
- pgtle.install_extension
- pgtle.install_update_path
- pgtle.register_feature
- pgtle.register_feature_if_not_exists
- pgtle.set_default_version
- pgtle.uninstall_extension(name)
- pgtle.uninstall_extension(name, version)
- pgtle.uninstall_extension_if_exists
- pgtle.uninstall_update_path
- pgtle.uninstall_update_path_if_exists
- pgtle.unregister_feature
- pgtle.unregister_feature_if_exists
pgtle.available_extensions
pgtle.available_extensions
함수는 집합을 반환하는 함수입니다. 이 함수는 데이터베이스에서 사용 가능한 모든 TLE 확장을 반환합니다. 반환된 각 행에는 단일 TLE 확장에 대한 정보가 포함되어 있습니다.
함수 프로토타입
pgtle.available_extensions()
역할
없음.
인수
없음.
출력
name
- TLE 확장의 이름입니다.default_version
- 버전을 지정하지 않고CREATE EXTENSION
을 호출할 때 사용할 TLE 확장의 버전입니다.description
- TLE 확장에 대한 자세한 설명입니다.
사용 예
SELECT * FROM pgtle.available_extensions();
pgtle.available_extension_versions
available_extension_versions
함수는 집합을 반환하는 함수입니다. 이 함수는 사용 가능한 모든 TLE 확장 및 버전의 목록을 반환합니다. 각 행에는 특정 역할이 필요한지 여부를 포함하여 지정된 TLE 확장의 특정 버전에 대한 정보가 포함되어 있습니다.
함수 프로토타입
pgtle.available_extension_versions()
역할
없음.
인수
없음.
출력
name
- TLE 확장의 이름입니다.version
- TLE 확장의 버전입니다.superuser
- TLE 확장의 경우 이 값은 항상false
입니다. TLE 확장을 생성하거나 업데이트하는 데 필요한 권한은 지정된 데이터베이스에서 다른 객체를 만드는 데 필요한 권한과 동일합니다.trusted
- TLE 확장의 경우 이 값은 항상false
입니다.relocatable
- TLE 확장의 경우 이 값은 항상false
입니다.schema
- TLE 확장이 설치된 스키마의 이름을 지정합니다.requires
- 이 TLE 확장에 필요한 다른 확장의 이름을 포함하는 배열입니다.description
- TLE 확장에 대한 자세한 설명입니다.
출력 값에 대한 자세한 내용은 PostgreSQL 설명서에서 Packaging Related Objects into an Extension > Extension Files
사용 예
SELECT * FROM pgtle.available_extension_versions();
pgtle.extension_update_paths
extension_update_paths
함수는 집합을 반환하는 함수입니다. 이 함수는 TLE 확장에 가능한 모든 업데이트 경로 목록을 반환합니다. 각 행에는 해당 TLE 확장에 사용할 수 있는 업그레이드 또는 다운그레이드가 포함됩니다.
함수 프로토타입
pgtle.extension_update_paths(name)
역할
없음.
인수
name
- 업그레이드 경로를 가져올 TLE 확장의 이름입니다.
출력
source
- 업데이트의 소스 버전입니다.target
- 업데이트의 대상 버전입니다.path
- TLE 확장을source
버전에서target
버전으로 업데이트하는 데 사용되는 업그레이드 경로입니다(예:0.1--0.2
).
사용 예
SELECT * FROM pgtle.extension_update_paths('
your-TLE
');
pgtle.install_extension
install_extension
함수를 사용하면 데이터베이스에 TLE 확장을 구성하는 아티팩트를 설치한 다음 CREATE
EXTENSION
명령을 사용하여 TLE 확장을 생성할 수 있습니다.
함수 프로토타입
pgtle.install_extension(name text, version text, description text, ext text, requires text[] DEFAULT NULL::text[])
역할
없음.
인수
name
- TLE 확장의 이름입니다. 이 값은CREATE EXTENSION
호출에 사용됩니다.version
- TLE 확장의 버전입니다.description
- TLE 확장에 대한 자세한 설명입니다. 이 설명은pgtle.available_extensions()
의comment
필드에 표시됩니다.ext
- TLE 확장의 콘텐츠입니다. 이 값에는 함수와 같은 객체가 포함됩니다.requires
- 이 TLE 확장의 종속성을 지정하는 선택적 파라미터입니다.pg_tle
확장은 종속성으로 자동 추가됩니다.
이러한 인수 중 다수는 PostgreSQL 인스턴스의 파일 시스템에 PostgreSQL 확장을 설치하기 위한 확장 제어 파일에 포함된 인수와 동일합니다. PostgreSQL 확장에 대한 자세한 내용은 PostgreSQL 설명서에서 Packaging Related Objects into an Extension
출력
이 함수는 성공 시 OK
를, 오류 시 NULL
을 반환합니다.
OK
- TLE 확장이 데이터베이스에 성공적으로 설치되었습니다.NULL
- TLE 확장이 데이터베이스에 성공적으로 설치되지 않았습니다.
사용 예
SELECT pgtle.install_extension( 'pg_tle_test', '0.1', 'My first pg_tle extension', $_pgtle_$ CREATE FUNCTION my_test() RETURNS INT AS $$ SELECT 42; $$ LANGUAGE SQL IMMUTABLE; $_pgtle_$ );
pgtle.install_update_path
install_update_path
함수는 서로 다른 두 버전의 TLE 확장 간의 업데이트 경로를 제공합니다. 이 함수를 사용하면 TLE 확장의 사용자가 ALTER EXTENSION ... UPDATE
구문을 사용하여 버전을 업데이트할 수 있습니다.
함수 프로토타입
pgtle.install_update_path(name text, fromvers text, tovers text, ext text)
역할
pgtle_admin
인수
name
- TLE 확장의 이름입니다. 이 값은CREATE EXTENSION
호출에 사용됩니다.fromvers
- 업그레이드를 위한 TLE 확장의 소스 버전입니다.tovers
- 업그레이드를 위한 TLE 확장의 대상 버전입니다.ext
- 업데이트의 콘텐츠입니다. 이 값에는 함수와 같은 객체가 포함됩니다.
출력
없음.
사용 예
SELECT pgtle.install_update_path('pg_tle_test', '0.1', '0.2', $_pgtle_$ CREATE OR REPLACE FUNCTION my_test() RETURNS INT AS $$ SELECT 21; $$ LANGUAGE SQL IMMUTABLE; $_pgtle_$ );
pgtle.register_feature
register_feature
함수는 지정된 내부 PostgreSQL 기능을 pgtle.feature_info
테이블에 추가합니다. PostgreSQL 후크는 내부 PostgreSQL 기능의 예입니다. 신뢰할 수 있는 언어 확장 개발 키트는 PostgreSQL 후크 사용을 지원합니다. 현재 이 함수는 다음 기능을 지원합니다.
passcheck
- PostgreSQL의 암호 확인 동작을 사용자 지정하는 프로시저 또는 함수에 암호 확인 후크를 등록합니다.
함수 프로토타입
pgtle.register_feature(proc regproc, feature pg_tle_feature)
역할
pgtle_admin
인수
proc
- 기능에 사용할 저장 프로시저 또는 함수의 이름입니다.feature
- 함수에 등록할pg_tle
기능(예:passcheck
)의 이름입니다.
출력
없음.
사용 예
SELECT pgtle.register_feature('pw_hook', 'passcheck');
pgtle.register_feature_if_not_exists
pgtle.register_feature_if_not_exists
함수는 지정된 PostgreSQL 기능을 pgtle.feature_info
테이블에 추가하고 해당 기능을 사용하는 TLE 확장 또는 기타 프로시저나 함수를 식별합니다. 후크 및 신뢰할 수 있는 언어 확장에 대한 자세한 내용은 TLE 확장과 함께 PostgreSQL 후크 사용 섹션을 참조하세요.
함수 프로토타입
pgtle.register_feature_if_not_exists(proc regproc, feature pg_tle_feature)
역할
pgtle_admin
인수
proc
- TLE 확장을 위한 기능으로 사용할 로직(코드)이 포함된 저장 프로시저 또는 함수의 이름입니다.pw_hook
코드가 그 예입니다.feature
- TLE 함수에 등록할 PostgreSQL 기능의 이름입니다. 현재 사용 가능한 기능은passcheck
후크뿐입니다. 자세한 내용은 암호-확인 후크(passcheck) 단원을 참조하십시오.
출력
지정된 확장에 대한 기능을 등록한 후 true
를 반환합니다. 기능이 이미 등록된 경우 false
를 반환합니다.
사용 예
SELECT pgtle.register_feature_if_not_exists('pw_hook', 'passcheck');
pgtle.set_default_version
set_default_version
함수를 사용하면 TLE 확장의 default_version
을 지정할 수 있습니다. 이 함수를 사용하여 업그레이드 경로를 정의하고 해당 버전을 TLE 확장의 기본값으로 지정할 수 있습니다. 데이터베이스 사용자가 CREATE EXTENSION
및 ALTER EXTENSION ... UPDATE
명령에서 TLE 확장을 지정하면 해당 버전의 TLE 확장이 해당 사용자의 데이터베이스에 생성됩니다.
이 함수는 성공 시 true
를 반환합니다. name
인수에 지정된 TLE 확장자가 없는 경우에는 함수가 오류를 반환합니다. 마찬가지로 TLE 확장의 version
이 존재하지 않으면 오류가 반환됩니다.
함수 프로토타입
pgtle.set_default_version(name text, version text)
역할
pgtle_admin
인수
name
- TLE 확장의 이름입니다. 이 값은CREATE EXTENSION
호출에 사용됩니다.version
- 기본값을 설정할 TLE 확장의 버전입니다.
출력
true
- 기본 버전 설정에 성공하면 함수가true
를 반환합니다.ERROR
- 지정된 이름 또는 버전의 TLE 확장이 존재하지 않는 경우 오류 메시지를 반환합니다.
사용 예
SELECT * FROM pgtle.set_default_version('my-extension', '1.1');
pgtle.uninstall_extension(name)
uninstall_extension
함수는 데이터베이스에서 TLE 확장의 모든 버전을 제거합니다. 이 함수는 CREATE EXTENSION
의 이후 호출이 TLE 확장을 설치하는것을 방지합니다. 데이터베이스에 TLE 확장자가 없으면 오류가 발생합니다.
uninstall_extension
함수는 현재 데이터베이스에서 활성 상태인 TLE 확장은 제거하지 않습니다. 현재 활성 상태인 TLE 확장을 제거하려면 명시적으로 DROP EXTENSION
을 호출하여 제거해야 합니다.
함수 프로토타입
pgtle.uninstall_extension(extname text)
역할
pgtle_admin
인수
extname
- 제거할 TLE 확장의 이름입니다. 이 이름은 지정된 데이터베이스에서 사용할 TLE 확장을 로드하기 위해CREATE EXTENSION
과 함께 사용되는 이름과 같습니다.
출력
없음.
사용 예
SELECT * FROM pgtle.uninstall_extension('pg_tle_test');
pgtle.uninstall_extension(name, version)
uninstall_extension(name, version)
함수는 지정된 버전의 TLE 확장을 데이터베이스에서 제거합니다. 이 기능은 CREATE
EXTENSION
및 ALTER EXTENSION
이 TLE 확장을 설치하거나 지정된 버전으로 업데이트하는 것을 방지합니다. 이 함수는 TLE 확장의 모든 업데이트 경로도 제공합니다. 이 함수는 현재 데이터베이스에서 활성 상태인 TLE 확장은 제거하지 않습니다. TLE 확장을 제거하려면 명시적으로 DROP EXTENSION
을 호출해야 합니다. TLE 확장의 모든 버전을 제거하려면 pgtle.uninstall_extension(name)을 참조하세요.
함수 프로토타입
pgtle.uninstall_extension(extname text, version text)
역할
pgtle_admin
인수
extname
- TLE 확장의 이름입니다. 이 값은CREATE EXTENSION
호출에 사용됩니다.version
- 데이터베이스에서 제거할 TLE 확장의 버전입니다.
출력
없음.
사용 예
SELECT * FROM pgtle.uninstall_extension('pg_tle_test', '0.2');
pgtle.uninstall_extension_if_exists
uninstall_extension_if_exists
함수는 지정된 데이터베이스에서 TLE 확장의 모든 버전을 제거합니다. TLE 확장자가 존재하지 않는 경우 함수는 아무것도 반환하지 않습니다(오류 메시지가 표시되지 않음). 지정된 확장이 현재 데이터베이스 내에서 활성 상태인 경우 이 함수는 해당 확장을 삭제하지 않습니다. 이 함수를 사용하여 아티팩트를 제거하려면 먼저 명시적으로 DROP EXTENSION
을 호출하여 TLE 확장을 제거해야 합니다.
함수 프로토타입
pgtle.uninstall_extension_if_exists(extname text)
역할
pgtle_admin
인수
extname
- TLE 확장의 이름입니다. 이 값은CREATE EXTENSION
호출에 사용됩니다.
출력
uninstall_extension_if_exists
함수는 지정된 확장을 제거한 true
를 반환합니다. 지정된 확장이 없는 경우 함수는 false
를 반환합니다.
true
- TLE 확장을 제거한 후true
를 반환합니다.false
- 데이터베이스에 TLE 확장자가 없으면false
를 반환합니다.
사용 예
SELECT * FROM pgtle.uninstall_extension_if_exists('pg_tle_test');
pgtle.uninstall_update_path
uninstall_update_path
함수는 TLE 확장에서 특정 업데이트 경로를 제거합니다. 이렇게 하면 ALTER EXTENSION ... UPDATE TO
가 이 경로를 업데이트 경로로 사용할 수 없습니다.
이 업데이트 경로의 버전 중 하나가 현재 사용 중인 TLE 확장은 데이터베이스에 남아 있습니다.
지정한 업데이트 경로가 존재하지 않는 경우 이 함수는 오류를 반환합니다.
함수 프로토타입
pgtle.uninstall_update_path(extname text, fromvers text, tovers text)
역할
pgtle_admin
인수
extname
- TLE 확장의 이름입니다. 이 값은CREATE EXTENSION
호출에 사용됩니다.fromvers
- 업데이트 경로에서 사용할 TLE 확장의 소스 버전입니다.tovers
- 업데이트 경로에서 사용할 TLE 확장의 대상 버전입니다.
출력
없음.
사용 예
SELECT * FROM pgtle.uninstall_update_path('pg_tle_test', '0.1', '0.2');
pgtle.uninstall_update_path_if_exists
uninstall_update_path_if_exists
함수는 TLE 확장에서 지정된 업데이트 경로를 제거한다는 점에서 uninstall_update_path
와 비슷합니다. 하지만 업데이트 경로가 존재하지 않는 경우 이 함수는 오류 메시지를 표시하지 않습니다. 대신 함수는 false
를 반환합니다.
함수 프로토타입
pgtle.uninstall_update_path_if_exists(extname text, fromvers text, tovers text)
역할
pgtle_admin
인수
extname
- TLE 확장의 이름입니다. 이 값은CREATE EXTENSION
호출에 사용됩니다.fromvers
- 업데이트 경로에서 사용할 TLE 확장의 소스 버전입니다.tovers
- 업데이트 경로에서 사용할 TLE 확장의 대상 버전입니다.
출력
true
- 함수가 TLE 확장 경로를 성공적으로 업데이트했습니다.false
- 함수가 TLE 확장의 경로를 업데이트하지 못했습니다.
사용 예
SELECT * FROM pgtle.uninstall_update_path_if_exists('pg_tle_test', '0.1', '0.2');
pgtle.unregister_feature
unregister_feature
함수는 후크 등 pg_tle
기능을 사용하도록 등록된 함수를 제거하는 방법을 제공합니다. 기능 등록에 대한 자세한 내용은 pgtle.register_feature 섹션을 참조하세요.
함수 프로토타입
pgtle.unregister_feature(proc regproc, feature pg_tle_features)
역할
pgtle_admin
인수
proc
-pg_tle
기능에 등록할 저장된 함수의 이름입니다.feature
- 함수에 등록할pg_tle
기능의 이름입니다. 예를 들어passcheck
는 개발하는 신뢰할 수 있는 언어 확장에서 사용하도록 등록할 수 있는 기능입니다. 자세한 내용은 암호-확인 후크(passcheck) 단원을 참조하십시오.
출력
없음.
사용 예
SELECT * FROM pgtle.unregister_feature('pw_hook', 'passcheck');
pgtle.unregister_feature_if_exists
unregister_feature
함수는 후크 등 pg_tle
기능을 사용하도록 등록된 함수를 제거하는 방법을 제공합니다. 자세한 내용은 TLE 확장과 함께 PostgreSQL 후크 사용 단원을 참조하십시오. 기능을 성공적으로 등록 취소한 후 true
를 반환합니다. 기능이 등록되지 않은 경우 false
를 반환합니다.
TLE 확장의 pg_tle
기능 등록에 대한 자세한 내용은 pgtle.register_feature 섹션을 참조하세요.
함수 프로토타입
pgtle.unregister_feature_if_exists('proc regproc', 'feature pg_tle_features')
역할
pgtle_admin
인수
proc
-pg_tle
기능을 포함하도록 등록된 저장된 함수의 이름입니다.feature
- 신뢰할 수 있는 언어 확장에 등록된pg_tle
기능의 이름입니다.
출력
다음과 같이 true
또는false
를 반환합니다.
true
- 함수가 확장에서 성공적으로 기능 등록을 취소했습니다.false
- 함수가 TLE 확장에서 기능을 등록 취소하지 못했습니다.
사용 예
SELECT * FROM pgtle.unregister_feature_if_exists('pw_hook', 'passcheck');