

# PostgreSQL용 신뢰할 수 있는 언어 확장에 대한 함수 참조
<a name="PostgreSQL_trusted_language_extension-functions-reference"></a>

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

**Topics**
+ [pgtle.available\$1extensions](#pgtle.available_extensions)
+ [pgtle.available\$1extension\$1versions](#pgtle.available_extension_versions)
+ [pgtle.extension\$1update\$1paths](#pgtle.extension_update_paths)
+ [pgtle.install\$1extension](#pgtle.install_extension)
+ [pgtle.install\$1update\$1path](#pgtle.install_update_path)
+ [pgtle.register\$1feature](#pgtle.register_feature)
+ [pgtle.register\$1feature\$1if\$1not\$1exists](#pgtle.register_feature_if_not_exists)
+ [pgtle.set\$1default\$1version](#pgtle.set_default_version)
+ [pgtle.uninstall\$1extension(name)](#pgtle.uninstall_extension-name)
+ [pgtle.uninstall\$1extension(name, version)](#pgtle.uninstall_extension-name-version)
+ [pgtle.uninstall\$1extension\$1if\$1exists](#pgtle.uninstall_extension_if_exists)
+ [pgtle.uninstall\$1update\$1path](#pgtle.uninstall_update_path)
+ [pgtle.uninstall\$1update\$1path\$1if\$1exists](#pgtle.uninstall_update_path_if_exists)
+ [pgtle.unregister\$1feature](#pgtle.unregister_feature)
+ [pgtle.unregister\$1feature\$1if\$1exists](#pgtle.unregister_feature_if_exists)

## pgtle.available\$1extensions
<a name="pgtle.available_extensions"></a>

`pgtle.available_extensions` 함수는 집합을 반환하는 함수입니다. 이 함수는 데이터베이스에서 사용 가능한 모든 TLE 확장을 반환합니다. 반환된 각 행에는 단일 TLE 확장에 대한 정보가 포함되어 있습니다.

### 함수 프로토타입
<a name="pgtle.available_extensions-prototype"></a>

```
pgtle.available_extensions()
```

### 역할
<a name="pgtle.available_extensions-role"></a>

없음.

### 인수
<a name="pgtle.available_extensions-arguments"></a>

없음.

### 출력
<a name="pgtle.available_extensions-output"></a>
+ `name` - TLE 확장의 이름입니다.
+ `default_version` - 버전을 지정하지 않고 `CREATE EXTENSION`을 호출할 때 사용할 TLE 확장의 버전입니다.
+ `description` - TLE 확장에 대한 자세한 설명입니다.

### 사용 예
<a name="pgtle.available_extensions-usage-example"></a>

```
SELECT * FROM pgtle.available_extensions();
```

## pgtle.available\$1extension\$1versions
<a name="pgtle.available_extension_versions"></a>

`available_extension_versions` 함수는 집합을 반환하는 함수입니다. 이 함수는 사용 가능한 모든 TLE 확장 및 버전의 목록을 반환합니다. 각 행에는 특정 역할이 필요한지 여부를 포함하여 지정된 TLE 확장의 특정 버전에 대한 정보가 포함되어 있습니다.

### 함수 프로토타입
<a name="pgtle.available_extension_versions-prototype"></a>

```
pgtle.available_extension_versions()
```

### 역할
<a name="pgtle.available_extension_versions-role"></a>

없음.

### 인수
<a name="pgtle.available_extension_versions-arguments"></a>

없음.

### 출력
<a name="pgtle.available_extension_versions-output"></a>
+ `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](https://www.postgresql.org/docs/current/extend-extensions.html#id-1.8.3.20.11)를 참조하세요.

### 사용 예
<a name="pgtle.available_extension_versions-example"></a>

```
SELECT * FROM pgtle.available_extension_versions();
```

## pgtle.extension\$1update\$1paths
<a name="pgtle.extension_update_paths"></a>

`extension_update_paths` 함수는 집합을 반환하는 함수입니다. 이 함수는 TLE 확장에 가능한 모든 업데이트 경로 목록을 반환합니다. 각 행에는 해당 TLE 확장에 사용할 수 있는 업그레이드 또는 다운그레이드가 포함됩니다.

### 함수 프로토타입
<a name="pgtle.extension_update_paths-prototype"></a>

```
pgtle.extension_update_paths(name)
```

### 역할
<a name="pgtle.extension_update_paths-role"></a>

없음.

### 인수
<a name="pgtle.extension_update_paths-arguments"></a>

`name` - 업그레이드 경로를 가져올 TLE 확장의 이름입니다.

### 출력
<a name="pgtle.extension_update_paths-output"></a>
+ `source` - 업데이트의 소스 버전입니다.
+ `target` - 업데이트의 대상 버전입니다.
+ `path` - TLE 확장을 `source` 버전에서 `target` 버전으로 업데이트하는 데 사용되는 업그레이드 경로입니다(예: `0.1--0.2`).

### 사용 예
<a name="pgtle.extension_update_paths-example"></a>

```
SELECT * FROM pgtle.extension_update_paths('your-TLE');
```

## pgtle.install\$1extension
<a name="pgtle.install_extension"></a>

`install_extension` 함수를 사용하면 데이터베이스에 TLE 확장을 구성하는 아티팩트를 설치한 다음 `CREATE EXTENSION` 명령을 사용하여 TLE 확장을 생성할 수 있습니다.

### 함수 프로토타입
<a name="pgtle.install_extension-prototype"></a>

```
pgtle.install_extension(name text, version text, description text, ext text, requires text[] DEFAULT NULL::text[])
```

### 역할
<a name="pgtle.install_extension-role"></a>

없음.

### 인수
<a name="pgtle.install_extension-arguments"></a>
+ `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](https://www.postgresql.org/docs/current/extend-extensions.html)의 [Extension Files](http://www.postgresql.org/docs/current/extend-extensions.html#id-1.8.3.20.11)를 참조하세요.

### 출력
<a name="pgtle.install_extension-output"></a>

이 함수는 성공 시 `OK`를, 오류 시 `NULL`을 반환합니다.
+ `OK` - TLE 확장이 데이터베이스에 성공적으로 설치되었습니다.
+ `NULL` - TLE 확장이 데이터베이스에 성공적으로 설치되지 않았습니다.

### 사용 예
<a name="pgtle.install_extension-example"></a>

```
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\$1update\$1path
<a name="pgtle.install_update_path"></a>

`install_update_path` 함수는 서로 다른 두 버전의 TLE 확장 간의 업데이트 경로를 제공합니다. 이 함수를 사용하면 TLE 확장의 사용자가 `ALTER EXTENSION ... UPDATE` 구문을 사용하여 버전을 업데이트할 수 있습니다.

### 함수 프로토타입
<a name="pgtle.install_update_path-prototype"></a>

```
pgtle.install_update_path(name text, fromvers text, tovers text, ext text)
```

### 역할
<a name="pgtle.install_update_path-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.install_update_path-arguments"></a>
+ `name` - TLE 확장의 이름입니다. 이 값은 `CREATE EXTENSION` 호출에 사용됩니다.
+ `fromvers` - 업그레이드를 위한 TLE 확장의 소스 버전입니다.
+ `tovers` - 업그레이드를 위한 TLE 확장의 대상 버전입니다.
+ `ext` - 업데이트의 콘텐츠입니다. 이 값에는 함수와 같은 객체가 포함됩니다.

### 출력
<a name="pgtle.install_update_path-output"></a>

없음.

### 사용 예
<a name="pgtle.install_update_path-example"></a>

```
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\$1feature
<a name="pgtle.register_feature"></a>

`register_feature` 함수는 지정된 내부 PostgreSQL 기능을 `pgtle.feature_info` 테이블에 추가합니다. PostgreSQL 후크는 내부 PostgreSQL 기능의 예입니다. 신뢰할 수 있는 언어 확장 개발 키트는 PostgreSQL 후크 사용을 지원합니다. 현재 이 함수는 다음 기능을 지원합니다.
+ `passcheck` - PostgreSQL의 암호 확인 동작을 사용자 지정하는 프로시저 또는 함수에 암호 확인 후크를 등록합니다.

### 함수 프로토타입
<a name="pgtle.register_feature-prototype"></a>

```
pgtle.register_feature(proc regproc, feature pg_tle_feature)
```

### 역할
<a name="pgtle.register_feature-role"></a>

`pgtle_admin` 

### 인수
<a name="pgtle.register_feature-arguments"></a>
+ `proc` - 기능에 사용할 저장 프로시저 또는 함수의 이름입니다.
+ `feature` - 함수에 등록할 `pg_tle` 기능(예: `passcheck`)의 이름입니다.

### 출력
<a name="pgtle.register_feature-output"></a>

없음.

### 사용 예
<a name="pgtle.register_feature-example"></a>

```
SELECT pgtle.register_feature('pw_hook', 'passcheck');
```

## pgtle.register\$1feature\$1if\$1not\$1exists
<a name="pgtle.register_feature_if_not_exists"></a>

`pgtle.register_feature_if_not_exists` 함수는 지정된 PostgreSQL 기능을 `pgtle.feature_info` 테이블에 추가하고 해당 기능을 사용하는 TLE 확장 또는 기타 프로시저나 함수를 식별합니다. 후크 및 신뢰할 수 있는 언어 확장에 대한 자세한 내용은 [TLE 확장과 함께 PostgreSQL 후크 사용](PostgreSQL_trusted_language_extension.overview.tles-and-hooks.md) 섹션을 참조하세요.

### 함수 프로토타입
<a name="pgtle.register_feature_if_not_exists-prototype"></a>

```
pgtle.register_feature_if_not_exists(proc regproc, feature pg_tle_feature)
```

### 역할
<a name="pgtle.register_feature_if_not_exists-role"></a>

`pgtle_admin` 

### 인수
<a name="pgtle.register_feature_if_not_exists-arguments"></a>
+ `proc` - TLE 확장을 위한 기능으로 사용할 로직(코드)이 포함된 저장 프로시저 또는 함수의 이름입니다. `pw_hook` 코드가 그 예입니다.
+ `feature` - TLE 함수에 등록할 PostgreSQL 기능의 이름입니다. 현재 사용 가능한 기능은 `passcheck` 후크뿐입니다. 자세한 내용은 [암호-확인 후크(passcheck)](PostgreSQL_trusted_language_extension-hooks-reference.md#passcheck_hook) 단원을 참조하십시오.

### 출력
<a name="pgtle.register_feature_if_not_exists-output"></a>

지정된 확장에 대한 기능을 등록한 후 `true`를 반환합니다. 기능이 이미 등록된 경우 `false`를 반환합니다.

### 사용 예
<a name="pgtle.register_feature_if_not_exists-example"></a>

```
SELECT pgtle.register_feature_if_not_exists('pw_hook', 'passcheck');
```

## pgtle.set\$1default\$1version
<a name="pgtle.set_default_version"></a>

`set_default_version` 함수를 사용하면 TLE 확장의 `default_version`을 지정할 수 있습니다. 이 함수를 사용하여 업그레이드 경로를 정의하고 해당 버전을 TLE 확장의 기본값으로 지정할 수 있습니다. 데이터베이스 사용자가 `CREATE EXTENSION` 및 `ALTER EXTENSION ... UPDATE` 명령에서 TLE 확장을 지정하면 해당 버전의 TLE 확장이 해당 사용자의 데이터베이스에 생성됩니다.

이 함수는 성공 시 `true`를 반환합니다. `name` 인수에 지정된 TLE 확장자가 없는 경우에는 함수가 오류를 반환합니다. 마찬가지로 TLE 확장의 `version`이 존재하지 않으면 오류가 반환됩니다.

### 함수 프로토타입
<a name="pgtle.set_default_version-prototype"></a>

```
pgtle.set_default_version(name text, version text)
```

### 역할
<a name="pgtle.set_default_version-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.set_default_version-arguments"></a>
+ `name` - TLE 확장의 이름입니다. 이 값은 `CREATE EXTENSION` 호출에 사용됩니다.
+ `version` - 기본값을 설정할 TLE 확장의 버전입니다.

### 출력
<a name="pgtle.set_default_version-output"></a>
+ `true` - 기본 버전 설정에 성공하면 함수가 `true`를 반환합니다.
+ `ERROR` - 지정된 이름 또는 버전의 TLE 확장이 존재하지 않는 경우 오류 메시지를 반환합니다.

### 사용 예
<a name="pgtle.set_default_version-example"></a>

```
SELECT * FROM pgtle.set_default_version('my-extension', '1.1');
```

## pgtle.uninstall\$1extension(name)
<a name="pgtle.uninstall_extension-name"></a>

`uninstall_extension` 함수는 데이터베이스에서 TLE 확장의 모든 버전을 제거합니다. 이 함수는 `CREATE EXTENSION`의 이후 호출이 TLE 확장을 설치하는것을 방지합니다. 데이터베이스에 TLE 확장자가 없으면 오류가 발생합니다.

`uninstall_extension` 함수는 현재 데이터베이스에서 활성 상태인 TLE 확장은 제거하지 않습니다. 현재 활성 상태인 TLE 확장을 제거하려면 명시적으로 `DROP EXTENSION`을 호출하여 제거해야 합니다.

### 함수 프로토타입
<a name="pgtle.uninstall_extension-name-prototype"></a>

```
pgtle.uninstall_extension(extname text)
```

### 역할
<a name="pgtle.uninstall_extension-name-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.uninstall_extension-name-arguments"></a>
+ `extname` - 제거할 TLE 확장의 이름입니다. 이 이름은 지정된 데이터베이스에서 사용할 TLE 확장을 로드하기 위해 `CREATE EXTENSION`과 함께 사용되는 이름과 같습니다.

### 출력
<a name="pgtle.uninstall_extension-name-output"></a>

없음.

### 사용 예
<a name="pgtle.uninstall_extension-name-example"></a>

```
SELECT * FROM pgtle.uninstall_extension('pg_tle_test');
```

## pgtle.uninstall\$1extension(name, version)
<a name="pgtle.uninstall_extension-name-version"></a>

`uninstall_extension(name, version)` 함수는 지정된 버전의 TLE 확장을 데이터베이스에서 제거합니다. 이 기능은 `CREATE EXTENSION` 및 `ALTER EXTENSION`이 TLE 확장을 설치하거나 지정된 버전으로 업데이트하는 것을 방지합니다. 이 함수는 TLE 확장의 모든 업데이트 경로도 제공합니다. 이 함수는 현재 데이터베이스에서 활성 상태인 TLE 확장은 제거하지 않습니다. TLE 확장을 제거하려면 명시적으로 `DROP EXTENSION`을 호출해야 합니다. TLE 확장의 모든 버전을 제거하려면 [pgtle.uninstall\$1extension(name)](#pgtle.uninstall_extension-name)을 참조하세요.

### 함수 프로토타입
<a name="pgtle.uninstall_extension-name-version-prototype"></a>

```
pgtle.uninstall_extension(extname text, version text)
```

### 역할
<a name="pgtle.uninstall_extension-name-version-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.uninstall_extension-name-version-arguments"></a>
+ `extname` - TLE 확장의 이름입니다. 이 값은 `CREATE EXTENSION` 호출에 사용됩니다.
+ `version` - 데이터베이스에서 제거할 TLE 확장의 버전입니다.

### 출력
<a name="pgtle.uninstall_extension-name-version-output"></a>

없음.

### 사용 예
<a name="pgtle.uninstall_extension-name-version-example"></a>

```
SELECT * FROM pgtle.uninstall_extension('pg_tle_test', '0.2');
```

## pgtle.uninstall\$1extension\$1if\$1exists
<a name="pgtle.uninstall_extension_if_exists"></a>

`uninstall_extension_if_exists` 함수는 지정된 데이터베이스에서 TLE 확장의 모든 버전을 제거합니다. TLE 확장자가 존재하지 않는 경우 함수는 아무것도 반환하지 않습니다(오류 메시지가 표시되지 않음). 지정된 확장이 현재 데이터베이스 내에서 활성 상태인 경우 이 함수는 해당 확장을 삭제하지 않습니다. 이 함수를 사용하여 아티팩트를 제거하려면 먼저 명시적으로 `DROP EXTENSION`을 호출하여 TLE 확장을 제거해야 합니다.

### 함수 프로토타입
<a name="pgtle.uninstall_extension_if_exists-prototype"></a>

```
pgtle.uninstall_extension_if_exists(extname text)
```

### 역할
<a name="pgtle.uninstall_extension_if_exists-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.uninstall_extension_if_exists-arguments"></a>
+ `extname` - TLE 확장의 이름입니다. 이 값은 `CREATE EXTENSION` 호출에 사용됩니다.

### 출력
<a name="pgtle.uninstall_extension_if_exists-output"></a>

`uninstall_extension_if_exists` 함수는 지정된 확장을 제거한 `true`를 반환합니다. 지정된 확장이 없는 경우 함수는 `false`를 반환합니다.
+ `true` - TLE 확장을 제거한 후 `true`를 반환합니다.
+ `false` - 데이터베이스에 TLE 확장자가 없으면 `false`를 반환합니다.

### 사용 예
<a name="pgtle.uninstall_extension_if_exists-example"></a>

```
SELECT * FROM pgtle.uninstall_extension_if_exists('pg_tle_test');
```

## pgtle.uninstall\$1update\$1path
<a name="pgtle.uninstall_update_path"></a>

`uninstall_update_path` 함수는 TLE 확장에서 특정 업데이트 경로를 제거합니다. 이렇게 하면 `ALTER EXTENSION ... UPDATE TO`가 이 경로를 업데이트 경로로 사용할 수 없습니다.

이 업데이트 경로의 버전 중 하나가 현재 사용 중인 TLE 확장은 데이터베이스에 남아 있습니다.

지정한 업데이트 경로가 존재하지 않는 경우 이 함수는 오류를 반환합니다.

### 함수 프로토타입
<a name="pgtle.uninstall_update_path-prototype"></a>

```
pgtle.uninstall_update_path(extname text, fromvers text, tovers text)
```

### 역할
<a name="pgtle.uninstall_update_path-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.uninstall_update_path-arguments"></a>
+ `extname` - TLE 확장의 이름입니다. 이 값은 `CREATE EXTENSION` 호출에 사용됩니다.
+ `fromvers` - 업데이트 경로에서 사용할 TLE 확장의 소스 버전입니다.
+  `tovers` - 업데이트 경로에서 사용할 TLE 확장의 대상 버전입니다.

### 출력
<a name="pgtle.uninstall_update_path-output"></a>

없음.

### 사용 예
<a name="pgtle.uninstall_update_path-example"></a>

```
SELECT * FROM pgtle.uninstall_update_path('pg_tle_test', '0.1', '0.2');
```

## pgtle.uninstall\$1update\$1path\$1if\$1exists
<a name="pgtle.uninstall_update_path_if_exists"></a>

`uninstall_update_path_if_exists` 함수는 TLE 확장에서 지정된 업데이트 경로를 제거한다는 점에서 `uninstall_update_path`와 비슷합니다. 하지만 업데이트 경로가 존재하지 않는 경우 이 함수는 오류 메시지를 표시하지 않습니다. 대신 함수는 `false`를 반환합니다.

### 함수 프로토타입
<a name="pgtle.uninstall_update_path_if_exists-prototype"></a>

```
pgtle.uninstall_update_path_if_exists(extname text, fromvers text, tovers text)
```

### 역할
<a name="pgtle.uninstall_update_path_if_exists-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.uninstall_update_path_if_exists-arguments"></a>
+ `extname` - TLE 확장의 이름입니다. 이 값은 `CREATE EXTENSION` 호출에 사용됩니다.
+ `fromvers` - 업데이트 경로에서 사용할 TLE 확장의 소스 버전입니다.
+ `tovers` - 업데이트 경로에서 사용할 TLE 확장의 대상 버전입니다.

### 출력
<a name="pgtle.uninstall_update_path_if_exists-output"></a>
+ `true` - 함수가 TLE 확장 경로를 성공적으로 업데이트했습니다.
+ `false` - 함수가 TLE 확장의 경로를 업데이트하지 못했습니다.

### 사용 예
<a name="pgtle.uninstall_update_path_if_exists-example"></a>

```
SELECT * FROM pgtle.uninstall_update_path_if_exists('pg_tle_test', '0.1', '0.2');
```

## pgtle.unregister\$1feature
<a name="pgtle.unregister_feature"></a>

`unregister_feature` 함수는 후크 등 `pg_tle` 기능을 사용하도록 등록된 함수를 제거하는 방법을 제공합니다. 기능 등록에 대한 자세한 내용은 [pgtle.register\$1feature](#pgtle.register_feature) 섹션을 참조하세요.

### 함수 프로토타입
<a name="pgtle.unregister_feature-prototype"></a>

```
pgtle.unregister_feature(proc regproc, feature pg_tle_features)
```

### 역할
<a name="pgtle.unregister_feature-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.unregister_feature-arguments"></a>
+ `proc` - `pg_tle` 기능에 등록할 저장된 함수의 이름입니다.
+ `feature` - 함수에 등록할 `pg_tle` 기능의 이름입니다. 예를 들어 `passcheck`는 개발하는 신뢰할 수 있는 언어 확장에서 사용하도록 등록할 수 있는 기능입니다. 자세한 내용은 [암호-확인 후크(passcheck)](PostgreSQL_trusted_language_extension-hooks-reference.md#passcheck_hook) 단원을 참조하십시오.

### 출력
<a name="pgtle.unregister_feature-output"></a>

없음.

### 사용 예
<a name="pgtle.unregister_feature-example"></a>

```
SELECT * FROM pgtle.unregister_feature('pw_hook', 'passcheck');
```

## pgtle.unregister\$1feature\$1if\$1exists
<a name="pgtle.unregister_feature_if_exists"></a>

`unregister_feature` 함수는 후크 등 `pg_tle` 기능을 사용하도록 등록된 함수를 제거하는 방법을 제공합니다. 자세한 내용은 [TLE 확장과 함께 PostgreSQL 후크 사용](PostgreSQL_trusted_language_extension.overview.tles-and-hooks.md) 단원을 참조하십시오. 기능을 성공적으로 등록 취소한 후 `true`를 반환합니다. 기능이 등록되지 않은 경우 `false`를 반환합니다.

TLE 확장의 `pg_tle` 기능 등록에 대한 자세한 내용은 [pgtle.register\$1feature](#pgtle.register_feature) 섹션을 참조하세요.

### 함수 프로토타입
<a name="pgtle.unregister_feature_if_exists-prototype"></a>

```
pgtle.unregister_feature_if_exists('proc regproc', 'feature pg_tle_features')
```

### 역할
<a name="pgtle.unregister_feature_if_exists-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.unregister_feature_if_exists-arguments"></a>
+ `proc` - `pg_tle` 기능을 포함하도록 등록된 저장된 함수의 이름입니다.
+ `feature` - 신뢰할 수 있는 언어 확장에 등록된 `pg_tle` 기능의 이름입니다.

### 출력
<a name="pgtle.unregister_feature_if_exists-output"></a>

다음과 같이 `true` 또는`false`를 반환합니다.
+ `true` - 함수가 확장에서 성공적으로 기능 등록을 취소했습니다.
+ `false` - 함수가 TLE 확장에서 기능을 등록 취소하지 못했습니다.

### 사용 예
<a name="pgtle.unregister_feature_if_exists-example"></a>

```
SELECT * FROM pgtle.unregister_feature_if_exists('pw_hook', 'passcheck');
```