PostgreSQL용 신뢰할 수 있는 언어 확장에 대한 함수 참조 - Amazon Relational Database Service

PostgreSQL용 신뢰할 수 있는 언어 확장에 대한 함수 참조

PostgreSQL용 신뢰할 수 있는 언어 확장에서 사용할 수 있는 함수에 대한 다음 참조 설명서를 참조하세요. 이러한 함수를 사용하면 TLE 확장, 즉 신뢰할 수 있는 언어 확장 개발 키트를 사용하여 개발한 PostgreSQL 확장을 설치, 등록, 업데이트 및 관리할 수 있습니다.

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 ExtensionExtension Files를 참조하세요.

출력

이 함수는 성공 시 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 EXTENSIONALTER 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 EXTENSIONALTER 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');