이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

9.25. 시스템 롤 토토 기능

표 9-56세션 및 시스템 롤 토토를 추출하는 여러 함수를 보여줍니다.

이 섹션에 나열된 기능 외에도 시스템 롤 토토를 제공하는 통계 시스템과 관련된 기능이 많이 있습니다. 보다Section 27.2.2자세한 내용은.

표 9-56. 세션 롤 토토 기능

이름 반환 유형 설명
current_catalog 이름 현재 데이터베이스 이름(호칭"카탈로그"SQL 표준에서)
현재_데이터베이스() 이름 현재 데이터베이스 이름
현재_쿼리() 텍스트 클라이언트가 제출한 현재 실행 중인 쿼리의 텍스트(두 개 이상의 명령문을 포함할 수 있음)
현재_역할 이름 다음과 동일함현재_롤 토토
current_schema[()] 이름 현재 스키마 이름
현재_스키마(부울) 이름[] 검색 경로의 스키마 이름, 선택적으로 암시적 스키마 포함
현재_롤 토토 이름 현재 실행 컨텍스트의 롤 토토 이름
inet_client_addr() inet 원격 연결 주소
inet_client_port() int 원격 연결 포트
inet_server_addr() inet 로컬 연결 주소
inet_server_port() int 로컬 연결 포트
pg_backend_pid() int 현재 세션에 연결된 서버 프로세스의 프로세스 ID
pg_conf_load_time() 시간대가 포함된 타임스탬프 구성 로드 시간
pg_is_other_temp_schema(oid) 부울 스키마는 다른 세션의 임시 스키마입니까?
pg_listening_channels() 텍스트 집합 세션이 현재 수신 중인 채널 이름
pg_my_temp_schema() oid 세션 임시 스키마의 OID, 또는 없으면 0
pg_postmaster_start_time() 시간대가 포함된 타임스탬프 서버 시작 시간
pg_trigger_깊이() int current nesting level ofPostgreSQL트리거(트리거 내부에서 직접 또는 간접적으로 호출되지 않은 경우 0)
session_user 이름 session user name
user 이름 동등함현재_롤 토토
버전() 텍스트 PostgreSQL버전 롤 토토

참고: 현재_카탈로그, 현재_역할, current_schema, 현재_롤 토토, session_user롤 토토다음에 특별한 구문 상태가 있습니다.SQL: 후행 괄호 없이 호출해야 합니다. (PostgreSQL에서는 선택적으로 괄호를 사용할 수 있습니다.current_schema, 하지만 다른 것들은 그렇지 않습니다.)

session_user은 일반적으로 현재 데이터베이스 연결을 시작한 롤 토토입니다. 하지만 슈퍼유저는 다음을 사용하여 이 설정을 변경할 수 있습니다.세션 승인 설정. 그만큼현재_롤 토토은 권한 확인에 적용할 수 있는 롤 토토 식별자입니다. 일반적으로 세션 롤 토토와 동일하지만 다음을 사용하여 변경할 수 있습니다.PostgreSQL : 문서 : 9.4 : 윈 토토 설정. 또한 속성이 있는 함수를 실행하는 동안에도 변경됩니다.보안 정의자. Unix 용어로 세션 롤 토토는 다음과 같습니다."실제 롤 토토"and the current user is the"유효 롤 토토". 현재_역할그리고롤 토토are synonyms for현재_롤 토토. (SQL 표준은 다음을 구별합니다.현재_역할그리고현재_롤 토토하지만PostgreSQL그렇지 않습니다. 롤 토토와 역할을 단일 종류의 엔터티로 통합하기 때문입니다.)

current_schema검색 경로의 첫 번째 스키마 이름을 반환합니다(또는 검색 경로가 비어 있는 경우 null 값). 이는 대상 스키마를 지정하지 않고 생성된 모든 테이블 또는 기타 명명된 개체에 사용되는 스키마입니다.current_schemas(boolean)현재 검색 경로에 있는 모든 스키마의 이름 배열을 반환합니다. 부울 옵션은 다음과 같은 시스템 스키마를 암시적으로 포함할지 여부를 결정합니다.pg_catalog반환된 검색 경로에 포함됩니다.

참고:검색 경로는 런타임에 변경될 수 있습니다. 명령은 다음과 같습니다:

검색_경로를 다음으로 설정스키마 [, 스키마, ...]

pg_listening_channels현재 세션이 청취 중인 채널 이름 세트를 반환합니다. 보다무지개 토토 : 문서 : 9.4 : 듣기for more information.

inet_client_addr현재 클라이언트의 IP 주소를 반환하고inet_client_port포트 번호를 반환합니다.inet_server_addr서버가 현재 연결을 수락한 IP 주소를 반환합니다.inet_server_port포트 번호를 반환합니다. 현재 연결이 Unix 도메인 소켓을 통한 경우 이러한 함수는 모두 NULL을 반환합니다.

pg_my_temp_schema현재 세션의 임시 스키마의 OID를 반환하거나, 없는 경우 0을 반환합니다(임시 테이블을 생성하지 않았기 때문입니다).pg_is_other_temp_schema주어진 OID가 다른 세션의 임시 스키마 OID인 경우 true를 반환합니다. (예를 들어 카탈로그 표시에서 다른 세션의 임시 테이블을 제외하는 데 유용할 수 있습니다.)

pg_postmaster_start_time반환시간대가 포함된 타임스탬프서버가 시작되었을 때.

pg_conf_load_time반환시간대가 포함된 타임스탬프when the server configuration files were last loaded. (현재 세션이 당시 활성 상태였다면 세션 자체가 구성 파일을 다시 읽는 시간이 되므로 세션마다 읽는 내용이 조금씩 다를 수 있습니다. 그렇지 않으면 포스트마스터 프로세스가 구성 파일을 다시 읽는 시간입니다.)

버전다음을 설명하는 문자열을 반환합니다.PostgreSQL서버 버전.

표 9-57롤 토토가 프로그래밍 방식으로 개체 액세스 권한을 쿼리할 수 있는 함수를 나열합니다. 보다PostgreSQL :권한에 대한 자세한 내용은.

표 9-57. 접근 권한 조회 기능

이름 반환 유형 Description
has_any_column_privilege(롤 토토, 테이블, 특권) 부울 롤 토토가 테이블의 모든 열에 대한 권한을 가지고 있습니까
has_any_column_privilege(table, 특권) boolean 현재 롤 토토가 테이블의 모든 열에 대한 권한을 가지고 있습니까
has_column_privilege(롤 토토, table, , 특권) 부울 롤 토토에게 열에 대한 권한이 있습니까
has_column_privilege(테이블, , 권한) 부울 현재 롤 토토가 열에 대한 권한을 가지고 있습니까
has_database_privilege(롤 토토, 데이터베이스, 권한) 부울 롤 토토에게 데이터베이스에 대한 권한이 있습니까
has_database_privilege(데이터베이스, 권한) 부울 현재 롤 토토가 데이터베이스에 대한 권한을 가지고 있습니까
has_foreign_data_wrapper_privilege(롤 토토, fdw, privilege) 부울 롤 토토에게 외부 데이터 래퍼에 대한 권한이 있습니까
has_foreign_data_wrapper_privilege(fdw, 특권) 부울 does current user have privilege for foreign-data wrapper
has_function_privilege(롤 토토, 함수, 권한) 부울 롤 토토에게 기능에 대한 권한이 있습니까
has_function_privilege(함수, 권한) 부울 현재 롤 토토에게 기능에 대한 권한이 있습니까
has_language_privilege(롤 토토, 언어, 권한) 부울 롤 토토에게 언어에 대한 권한이 있습니까
has_lang_privilege(언어, 특권) 부울 현재 롤 토토는 언어에 대한 권한을 가지고 있습니까
has_schema_privilege(롤 토토, 스키마, 권한) 부울 롤 토토에게 스키마에 대한 권한이 있습니까
has_schema_privilege(스키마, 특권) 부울 현재 롤 토토가 스키마에 대한 권한을 가지고 있습니까
has_sequence_privilege(롤 토토, sequence, 특권) 부울 롤 토토에게 시퀀스에 대한 권한이 있습니까
has_sequence_privilege(시퀀스, 특권) 부울 현재 롤 토토에게 시퀀스에 대한 권한이 있습니까
has_server_privilege(롤 토토, 서버, 권한) 부울 롤 토토는 외부 서버에 대한 권한을 가지고 있습니까
has_server_privilege(서버, 권한) 부울 현재 롤 토토는 외부 서버에 대한 권한을 가지고 있습니까
has_table_privilege(롤 토토, 테이블, 권한) 부울 롤 토토에게 테이블에 대한 권한이 있습니까
has_table_privilege(테이블, 권한) 부울 현재 롤 토토가 테이블에 대한 권한을 가지고 있습니까
has_tablespace_privilege(롤 토토, 테이블스페이스, 권한) 부울 롤 토토에게 테이블스페이스에 대한 권한이 있습니까
has_tablespace_privilege(테이블스페이스, 권한) 부울 현재 롤 토토가 테이블스페이스에 대한 권한을 가지고 있습니까
has_type_privilege(롤 토토, 유형, 권한) 부울 롤 토토에게 유형에 대한 권한이 있습니까
has_type_privilege(유형, privilege) 부울 현재 롤 토토에게 유형에 대한 권한이 있습니까
pg_has_role(롤 토토, 역할, 권한) 부울 롤 토토에게 역할에 대한 권한이 있습니까
pg_has_role(역할, 권한) 부울 현재 롤 토토에게 역할에 대한 권한이 있습니까

has_table_privilege롤 토토가 특정 방식으로 테이블에 액세스할 수 있는지 확인합니다. 롤 토토는 이름, OID()로 지정할 수 있습니다.pg_authid.oid), 공개PUBLIC 의사 역할을 나타내거나 인수가 생략된 경우현재_롤 토토가정됩니다. 테이블은 이름이나 OID로 지정할 수 있습니다. (따라서 실제로는 6가지 변형이 있습니다.has_table_privilege, 인수의 수와 유형으로 구별할 수 있습니다.) 이름으로 지정할 때 필요한 경우 이름을 스키마로 한정할 수 있습니다. 원하는 액세스 권한 유형은 텍스트 문자열로 지정되며 값 중 하나로 평가되어야 합니다.선택, 삽입, 업데이트, 삭제, 잘라내기, 참조또는트리거. 선택적으로,부여 옵션 포함권한 유형에 추가하여 부여 옵션으로 권한이 유지되는지 테스트할 수 있습니다. 또한 여러 권한 유형을 쉼표로 구분하여 나열할 수 있으며, 이 경우 결과는 다음과 같습니다.나열된 권한 중 하나라도 보유하고 있는 경우. (권한 문자열의 대/소문자는 중요하지 않으며 권한 이름 사이에는 추가 공백이 허용되지만 내부에는 허용되지 않습니다.) 몇 가지 예:

SELECT has_table_privilege('myschema.mytable', 'select');
SELECT has_table_privilege('joe', 'mytable', 'INSERT, GRANT OPTION으로 선택');

has_sequence_privilege롤 토토가 특정 방식으로 시퀀스에 액세스할 수 있는지 확인합니다. 그 주장에 대한 가능성은 다음과 유사합니다.has_table_privilege. 원하는 액세스 권한 유형은 다음 중 하나로 평가되어야 합니다.사용, 선택또는업데이트.

has_any_column_privilege롤 토토가 특정 방식으로 테이블의 열에 액세스할 수 있는지 여부를 확인합니다. 인수 가능성은 다음과 유사합니다.has_table_privilege, 단, 원하는 액세스 권한 유형은 다음의 조합으로 평가되어야 합니다.선택, 삽입, 업데이트, 또는참조. 테이블 수준에서 이러한 권한을 가지면 테이블의 각 열에 대해 암시적으로 권한이 부여됩니다. 따라서has_any_column_privilege항상 반환됩니다ifhas_table_privilege동일한 인수에 대해 수행됩니다. 하지만has_any_column_privilege적어도 하나의 열에 대한 열 수준 권한 부여가 있는 경우에도 성공합니다.

has_column_privilege롤 토토가 특정 방식으로 열에 액세스할 수 있는지 확인합니다. 인수 가능성은 다음과 유사합니다.has_table_privilege, 이름이나 속성 번호로 열을 지정할 수 있다는 점이 추가되었습니다. 원하는 액세스 권한 유형은 다음의 조합으로 평가되어야 합니다.선택, 삽입, 업데이트또는참조. 테이블 수준에서 이러한 권한을 가지면 테이블의 각 열에 암시적으로 권한이 부여됩니다.

has_database_privilege롤 토토가 특정 방식으로 데이터베이스에 액세스할 수 있는지 확인합니다. 인수 가능성은 다음과 유사합니다.has_table_privilege. 원하는 액세스 권한 유형은 다음의 조합으로 평가되어야 합니다.만들기, 연결, 임시, 또는온도(동등함TEMPORARY).

has_function_privilege롤 토토가 특정 방식으로 기능에 액세스할 수 있는지 확인합니다. 인수 가능성은 다음과 유사합니다.has_table_privilege. OID가 아닌 텍스트 문자열로 함수를 지정할 때 허용되는 입력은regproceduredata type (seePostgreSQL : 문서 : 9.4 : 객체 식별자 토토 사이트). 원하는 액세스 권한 유형은 다음과 같이 평가되어야 합니다.실행. 예는 다음과 같습니다:

SELECT has_function_privilege('joeuser', 'myfunc(int, text)', 'execute');

has_foreign_data_wrapper_privilege롤 토토가 특정 방식으로 외부 데이터 래퍼에 액세스할 수 있는지 확인합니다. 인수 가능성은 다음과 유사합니다.has_table_privilege. 원하는 액세스 권한 유형은 다음과 같이 평가되어야 합니다.사용.

has_lang_privilege롤 토토가 특정 방식으로 절차적 언어에 액세스할 수 있는지 확인합니다. 인수 가능성은 다음과 유사합니다.has_table_privilege. 원하는 액세스 권한 유형은 다음과 같이 평가되어야 합니다.USAGE.

has_schema_privilege롤 토토가 특정 방식으로 스키마에 액세스할 수 있는지 확인합니다. 인수 가능성은 다음과 유사합니다.has_table_privilege. 원하는 액세스 권한 유형은 다음의 조합으로 평가되어야 합니다.생성또는사용.

has_server_privilege롤 토토가 특정 방식으로 외부 서버에 액세스할 수 있는지 확인합니다. 인수 가능성은 다음과 유사합니다.has_table_privilege. 원하는 액세스 권한 유형은 다음과 같이 평가되어야 합니다.사용.

has_tablespace_privilege롤 토토가 특정 방식으로 테이블스페이스에 액세스할 수 있는지 확인합니다. 인수 가능성은 다음과 유사합니다.has_table_privilege. 원하는 액세스 권한 유형은 다음과 같이 평가되어야 합니다.생성.

has_type_privilege롤 토토가 특정 방식으로 유형에 액세스할 수 있는지 확인합니다. 인수 가능성은 다음과 유사합니다.has_table_privilege. OID가 아닌 텍스트 문자열로 타입을 지정하는 경우 허용되는 입력은regtypedata type (seePostgreSQL : 문서 : 9.4 : 객체 식별자 토토 사이트). 원하는 액세스 권한 유형은 다음과 같이 평가되어야 합니다.사용.

pg_has_role롤 토토가 특정 방식으로 역할에 액세스할 수 있는지 확인합니다. 인수 가능성은 다음과 유사합니다.has_table_privilege, 그 외에는공개is not allowed as a user name. 원하는 액세스 권한 유형은 다음의 조합으로 평가되어야 합니다.회원또는사용법. 회원역할의 직접적 또는 간접적인 멤버십을 나타냅니다(즉, 다음을 수행할 수 있는 권한역할 설정), 반면사용법역할의 권한을 수행하지 않고 즉시 사용할 수 있는지 여부를 나타냅니다.역할 설정.

표 9-58특정 개체가 다음과 같은지 여부를 결정하는 함수를 보여줍니다.표시현재 스키마 검색 경로에 있습니다. 예를 들어, 포함된 스키마가 검색 경로에 있고 동일한 이름의 테이블이 검색 경로 앞부분에 나타나지 않으면 테이블이 표시된다고 합니다. 이는 명시적인 스키마 한정 없이 이름으로 테이블을 참조할 수 있다는 명령문과 동일합니다. 표시되는 모든 테이블의 이름을 나열하려면 다음을 수행하세요.

pg_class WHERE pg_table_is_visible(oid)에서 relname 선택;

표 9-58. 스키마 가시성 조회 기능

이름 반환 유형 설명
pg_collation_is_visible(collation_oid) 부울 검색 경로에 데이터 정렬이 표시됩니다.
pg_conversion_is_visible(conversion_oid) 부울 검색 경로에 전환이 표시됩니다.
pg_function_is_visible(function_oid) 부울 검색 경로에 기능이 표시됩니다.
pg_opclass_is_visible(opclass_oid) 부울 검색 경로에 연산자 클래스가 표시됩니다.
pg_operator_is_visible(operator_oid) 부울 검색 경로에 연산자가 표시됩니다.
pg_opfamily_is_visible(opclass_oid) boolean 검색 경로에 연산자 계열이 표시됩니다.
pg_table_is_visible(table_oid) 부울 검색 경로에 테이블이 표시됩니다.
pg_ts_config_is_visible(config_oid) 부울 검색 경로에 텍스트 검색 구성이 표시됩니다.
pg_ts_dict_is_visible(dict_oid) 부울 텍스트 검색 사전이 검색 경로에 표시됩니다.
pg_ts_parser_is_visible(parser_oid) boolean is text search parser visible in search path
pg_ts_template_is_visible(template_oid) 부울 검색 경로에 텍스트 검색 템플릿이 표시됩니다.
pg_type_is_visible(type_oid) 부울 검색 경로에 유형(또는 도메인)이 표시됩니다.

각 함수는 한 가지 유형의 데이터베이스 개체에 대한 가시성 검사를 수행합니다. 참고하세요pg_table_is_visible뷰, 인덱스 및 시퀀스에도 사용할 수 있습니다.pg_type_is_visible도메인과 함께 사용할 수도 있습니다. 함수 및 연산자의 경우 동일한 이름의 개체가 없으면 검색 경로의 개체가 표시됩니다.및 인수 데이터 유형earlier in the path. 연산자 클래스의 경우 이름과 관련 인덱스 액세스 방법이 모두 고려됩니다.

이러한 모든 기능에는 검사할 개체를 식별하기 위한 개체 OID가 필요합니다. 이름으로 객체를 테스트하려면 OID 별칭 유형()을 사용하는 것이 편리합니다.regclass, regtype, regprocedure, regoperator, regconfig, 또는regdictionary), 예:

SELECT pg_type_is_visible('myschema.widget'::regtype);

Note that it would not make much sense to test a non-schema-qualified type name in this way — if the name can be recognized at all, it must be visible.

표 9-59시스템 카탈로그에서 롤 토토를 추출하는 함수를 나열합니다.

표 9-59. 시스템 카탈로그 롤 토토 기능

이름 반환 유형 설명
형식_유형(type_oid, 유형모드) 텍스트 데이터 유형의 SQL 이름 가져오기
pg_describe_object(catalog_id, 객체_ID, object_sub_id) 텍스트 데이터베이스 개체에 대한 설명 가져오기
pg_identify_object(catalog_id oid, 객체_ID oid, object_sub_id integer) 유형 텍스트, 스키마 텍스트, 이름 텍스트, 정체성 텍스트 get identity of a database object
pg_get_constraintdef(constraint_oid) 텍스트 제약조건 정의 가져오기
pg_get_constraintdef(constraint_oid, pretty_bool) 텍스트 제약조건 정의 가져오기
pg_get_expr(pg_node_tree, relation_oid) 텍스트 식의 내부 형식을 디컴파일하고, 그 안의 Var가 두 번째 매개변수가 나타내는 관계를 참조한다고 가정합니다.
pg_get_expr(pg_node_tree, relation_oid, pretty_bool) 텍스트 decompile internal form of an expression, assuming that any Vars in it refer to the relation indicated by the second parameter
pg_get_functiondef(func_oid) 텍스트 함수 정의 얻기
pg_get_function_arguments(func_oid) 텍스트 함수 정의의 인수 목록 가져오기(기본값 포함)
pg_get_function_identity_arguments(func_oid) 텍스트 함수를 식별하기 위한 인수 목록 가져오기(기본값 없음)
pg_get_function_result(func_oid) 텍스트 얻기반품함수에 대한 절
pg_get_indexdef(index_oid) 텍스트 얻기CREATE INDEX색인 명령
pg_get_indexdef(index_oid, column_no, pretty_bool) 텍스트 얻기색인 생성인덱스 명령, 또는 단 하나의 인덱스 열 정의column_no0이 아닙니다
pg_get_keywords() 레코드 집합 SQL 키워드 및 해당 카테고리 목록 가져오기
pg_get_ruledef(rule_oid) 텍스트 얻기규칙 생성규칙 명령
pg_get_ruledef(rule_oid, pretty_bool) 텍스트 얻기규칙 생성규칙 명령
pg_get_serial_sequence(테이블_이름, 열_이름) text a 시퀀스의 이름을 가져옵니다.연재, smallserial또는큰 직렬열 사용
pg_get_triggerdef(trigger_oid) 텍스트 얻기[제약] 트리거 생성트리거 명령
pg_get_triggerdef(trigger_oid, pretty_bool) 텍스트 얻기[ 제약 ] 트리거 생성트리거 명령
pg_get_userbyid(role_oid) 이름 주어진 OID를 가진 역할 이름 가져오기
pg_get_viewdef(view_name) 텍스트 get underlying선택뷰 또는 구체화된 뷰에 대한 명령(지원 중단됨)
pg_get_viewdef(view_name, pretty_bool) 텍스트 get underlying선택뷰 또는 구체화된 뷰에 대한 명령(지원 중단됨)
pg_get_viewdef(view_oid) 텍스트 기본 가져오기선택뷰 또는 구체화된 뷰에 대한 명령
pg_get_viewdef(view_oid, pretty_bool) 텍스트 기본 가져오기선택뷰 또는 구체화된 뷰에 대한 명령
pg_get_viewdef(view_oid, wrap_column_int) 텍스트 get underlying선택보기 또는 구체화된 보기에 대한 명령; 필드가 있는 줄은 지정된 수의 열로 줄바꿈되며 보기 좋은 인쇄가 암시됩니다.
pg_options_to_table(reloptions) 레코드 세트 저장소 옵션 이름/값 쌍 세트 가져오기
pg_tablespace_databases(tablespace_oid) oid 세트 테이블스페이스에 객체가 있는 데이터베이스 OID 세트 가져오기
pg_tablespace_location(tablespace_oid) 텍스트 이 테이블스페이스가 위치한 파일 시스템의 경로를 가져옵니다.
pg_typeof(아무거나) regtype 모든 값의 데이터 유형 가져오기
(에 대한 대조모든) 텍스트 인수의 대조를 얻습니다
to_regclass(rel_name) regclass 이름이 지정된 관계의 OID를 가져옵니다
to_regproc(func_name) regproc 이름이 지정된 함수의 OID를 가져옵니다
to_regprocedure(func_name) regprocedure 이름이 지정된 함수의 OID를 가져옵니다
to_regoper(operator_name) regoper 이름이 지정된 연산자의 OID를 가져옵니다
to_regoperator(operator_name) regoperator 이름이 지정된 연산자의 OID를 가져옵니다
to_regtype(유형_이름) regtype 이름이 지정된 유형의 OID 가져오기

형식_유형해당 OID 유형 및 유형 수정자로 식별되는 데이터 유형의 SQL 이름을 반환합니다. 특정 수정자가 알려지지 않은 경우 유형 수정자로 NULL을 전달합니다.

pg_get_keywords서버가 인식하는 SQL 키워드를 설명하는 레코드 세트를 반환합니다. 그만큼단어열에 키워드가 포함되어 있습니다. 그만큼catcodecolumn contains a category code:U예약되지 않은 경우,C열 이름의 경우,T유형 또는 함수 이름의 경우, 또는R예약용. 그만큼catdesc열에는 카테고리를 설명하는 현지화된 문자열이 포함되어 있습니다.

pg_get_constraintdef, pg_get_indexdef, pg_get_ruledefpg_get_triggerdef은 각각 제약 조건, 인덱스, 규칙 또는 트리거에 대한 생성 명령을 재구성합니다. (이것은 명령의 원본 텍스트가 아닌 디컴파일된 재구성입니다.)pg_get_expr열의 기본값과 같은 개별 표현식의 내부 형식을 디컴파일합니다. 시스템 카탈로그의 내용을 검사할 때 유용할 수 있습니다. 표현식에 Var가 포함될 수 있는 경우 두 번째 매개변수로 참조하는 관계의 OID를 지정하십시오. Var가 예상되지 않으면 0이면 충분합니다.pg_get_viewdefreconstructs the선택query that defines a view. 이러한 함수의 대부분은 두 가지 변형으로 제공되며 그 중 하나는 선택적으로 가능합니다."예쁜 인쇄"결과입니다. 예쁘게 인쇄된 형식이 더 읽기 쉽지만 기본 형식은 향후 버전의에서도 동일한 방식으로 해석될 가능성이 높습니다.포스트그레SQL; 덤프 목적으로 예쁘게 인쇄된 출력을 사용하지 마십시오. 통과거짓pretty-print 매개변수의 경우 매개변수가 전혀 없는 변형과 동일한 결과를 산출합니다.

pg_get_functiondef전체를 반환합니다함수 생성 또는 교체함수에 대한 설명입니다.pg_get_function_arguments함수의 인수 목록을 내부에 표시되어야 하는 형식으로 반환합니다.함수 생성. pg_get_function_result마찬가지로 적절한 값을 반환합니다반환함수에 대한 절입니다.pg_get_function_identity_arguments함수를 식별하는 데 필요한 인수 목록을 내부에 표시되어야 하는 형식으로 반환합니다.함수 변경52648_52697

pg_get_serial_sequence열과 연결된 시퀀스의 이름을 반환하거나, 열과 연결된 시퀀스가 ​​없으면 NULL을 반환합니다. 첫 번째 입력 매개변수는 선택적 스키마가 포함된 테이블 이름이고, 두 번째 매개변수는 열 이름입니다. 첫 번째 매개변수는 잠재적으로 스키마 및 테이블이므로 큰따옴표로 묶인 식별자로 처리되지 않습니다. 즉, 기본적으로 소문자로 처리되는 반면, 열 이름인 두 번째 매개변수는 큰따옴표로 처리되고 대소문자가 유지됩니다. 이 함수는 시퀀스 함수에 전달하기에 적합한 형식의 값을 반환합니다(참조PostgreSQL : 문서 : 9.4 : 토토 핫 조작 함수). 이 연결은 다음을 사용하여 수정하거나 제거할 수 있습니다.다음 소유자가 시퀀스 변경. (함수는 아마도 호출되었을 것입니다.pg_get_owned_sequence; 현재 이름은 일반적으로 다음과 함께 사용된다는 사실을 반영합니다.연재또는큰 직렬열.)

pg_get_userbyidOID가 지정된 역할 이름을 추출합니다.

pg_options_to_table저장소 옵션 이름/값 쌍 세트를 반환합니다(옵션_이름/옵션_값) 통과 시pg_class.reloptions또는pg_attribute.attoptions.

pg_tablespace_databasesallows a tablespace to be examined. 테이블스페이스에 객체가 저장된 데이터베이스의 OID 집합을 반환합니다. 이 함수가 행을 반환하는 경우 테이블스페이스는 비어 있지 않으며 삭제할 수 없습니다. 테이블스페이스를 채우는 특정 개체를 표시하려면 다음으로 식별된 데이터베이스에 연결해야 합니다.pg_tablespace_databases그리고 그들의 질문pg_class카탈로그.

pg_describe_object카탈로그 OID, 개체 OID 및 (0일 수도 있음) 하위 개체 ID로 지정된 데이터베이스 개체에 대한 텍스트 설명을 반환합니다. 이 설명은 사람이 읽을 수 있도록 작성되었으며 서버 구성에 따라 번역될 수 있습니다. 이는에 저장된 객체의 ID를 확인하는 데 유용합니다.pg_dependent카탈로그.

pg_identify_object카탈로그 OID, 개체 OID 및 하위 개체 ID(0일 수도 있음)로 지정된 데이터베이스 개체를 고유하게 식별하는 데 충분한 롤 토토가 포함된 행을 반환합니다. 이 롤 토토는 기계 판독이 가능하며 번역되지 않습니다.유형데이터베이스 개체의 유형을 식별합니다.스키마객체가 속한 스키마 이름이거나NULL스키마에 속하지 않는 객체 유형의 경우;이름필요한 경우 인용된 개체의 이름입니다. 개체의 고유 식별자로 사용할 수 있는 경우에만 존재합니다(해당되는 경우 스키마 이름과 함께). 그렇지 않은 경우NULL; 정체성is the complete object identity, with the precise format depending on object type, and each part within the format being schema-qualified and quoted as necessary.

pg_typeof전달된 값의 데이터 유형의 OID를 반환합니다. 이는 문제를 해결하거나 SQL 쿼리를 동적으로 구성하는 데 도움이 될 수 있습니다. 함수는 반환으로 선언됩니다.regtype56290_56326PostgreSQL : 문서 : 9.4 : 객체 식별자 토토 사이트); 즉, 비교 목적으로는 OID와 동일하지만 유형 이름으로 표시됩니다. 예를 들어:

SELECT pg_typeof(33);

 pg_typeof 
-----------
 정수
(1줄)

pg_type WHERE에서 typlen 선택 oid = pg_typeof(33);
 타이플렌 
--------
      4
(1행)

표현식에 대한 대조전달된 값의 대조를 반환합니다. 예:

(설명) FROM pg_description LIMIT 1에 대한 데이터 정렬 선택;
 pg_collation_for 
------------------
 "기본"
(1줄)

('foo' COLLATE "de_DE")에 대한 SELECT 데이터 정렬;
 pg_collation_for 
------------------
 "de_DE"
(1행)

값은 인용되고 스키마로 한정될 수 있습니다. 인수 표현식에 대한 데이터 정렬이 파생되지 않으면 null 값이 반환됩니다. 인수가 조합 가능한 데이터 유형이 아닌 경우 오류가 발생합니다.

to_regclass, to_regproc, to_regprocedure, to_regoper, to_regoperatorto_regtype함수는 관계, 함수, 연산자 및 유형 이름을 유형의 객체로 변환합니다.regclass, regproc, regprocedure, regoper, regoperatorregtype입니다. 이러한 함수는 숫자 OID를 허용하지 않고 이름을 찾을 수 없는 경우(또는 forto_regproc그리고to_regoper, 지정된 이름이 여러 개체와 일치하는 경우).

다음에 표시된 기능표 9-60이전에 저장된 주석을 추출스포츠 토토 베트맨 : 문서 : 9.4 : 스포츠 토토 베트맨명령. 지정된 매개변수에 대한 설명을 찾을 수 없으면 null 값이 반환됩니다.

표 9-60. 댓글 롤 토토 기능

이름 반환 유형 설명
col_description(table_oid, 열_번호) 텍스트 테이블 열에 대한 설명 가져오기
obj_description(object_oid, catalog_name) 텍스트 데이터베이스 개체에 대한 의견 가져오기
obj_description(object_oid) 텍스트 데이터베이스 개체에 대한 설명 가져오기 (지원 중단됨)
shobj_description(object_oid, catalog_name) 텍스트 공유 데이터베이스 개체에 대한 의견 가져오기

col_description테이블의 OID와 열 번호로 지정된 테이블 열에 대한 설명을 반환합니다. (obj_descriptioncannot be used for table columns since columns do not have OIDs of their own.)

2개의 매개변수 형식obj_descriptionOID와 포함 시스템 카탈로그의 이름으로 지정된 데이터베이스 개체에 대한 설명을 반환합니다. 예를 들어,obj_description(123456,'pg_class')OID가 123456인 테이블에 대한 설명을 검색합니다. 매개변수가 1개인 형식obj_description객체 OID만 필요합니다. OID가 여러 시스템 카탈로그에서 고유하다는 보장이 없으므로 더 이상 사용되지 않습니다. 따라서 잘못된 설명이 반환될 수 있습니다.

shobj_description다음과 같이 사용됩니다obj_description단, 공유 개체에 대한 설명을 검색하는 데 사용됩니다. 일부 시스템 카탈로그는 각 클러스터 내의 모든 데이터베이스에 전역적으로 적용되며, 해당 카탈로그의 개체에 대한 설명도 전역적으로 저장됩니다.

다음에 표시된 기능표 9-61내보낼 수 있는 형식으로 서버 트랜잭션 롤 토토를 제공합니다. 이 함수의 주요 용도는 두 스냅샷 간에 어떤 트랜잭션이 커밋되었는지 확인하는 것입니다.

표 9-61. 거래 ID 및 스냅샷

이름 반환 유형 설명
txid_current() 비긴트 현재 거래 ID 가져오기
txid_current_snapshot() txid_snapshot 현재 스냅샷 가져오기
txid_snapshot_xip(txid_snapshot) setof bigint 스냅샷에서 진행 중인 트랜잭션 ID 가져오기
txid_snapshot_xmax(txid_snapshot) 비긴트 얻기x최대of snapshot
txid_snapshot_xmin(txid_snapshot) 비긴트 얻기xmin스냅샷
txid_visible_in_snapshot(비긴트, txid_snapshot) 부울 트랜잭션 ID가 스냅샷에 표시됩니까? (하위 거래 ID와 함께 사용하지 마십시오)

내부 거래 ID 유형(xid)은 너비가 32비트이고 40억 건의 트랜잭션마다 래핑됩니다. 그러나 이러한 함수는로 확장된 64비트 형식을 내보냅니다."시대"카운터이므로 설치 수명 동안 마무리되지 않습니다. 이 함수에서 사용하는 데이터 유형입니다.txid_snapshot, 특정 순간의 트랜잭션 ID 가시성에 대한 롤 토토를 저장합니다. 그 구성요소는 다음에서 설명됩니다.표 9-62.

표 9-62. 스냅샷 구성요소

이름 설명
xmin 아직 활성 상태인 가장 빠른 트랜잭션 ID(txid)입니다. 이전의 모든 트랜잭션은 커밋되어 표시되거나 롤백되어 종료됩니다.
x최대 아직 할당되지 않은 첫 번째 txid입니다. 이보다 크거나 같은 모든 txid는 스냅샷 시점에 아직 시작되지 않았으므로 표시되지 않습니다.
xip_list 스냅샷 당시 활성 txid. 목록에는 다음 사이의 활성 txid만 포함됩니다.xmin그리고x최대; 다음보다 높은 활성 txid가 있을 수 있습니다.x최대. txid는xmin <= txid < xmax이 목록에는 없지만 스냅샷 시점에 이미 완료되었으므로 커밋 상태에 따라 표시되거나 종료되었습니다. 목록에는 하위 거래의 txid가 포함되지 않습니다.

txid_snapshot의 텍스트 표현은 다음과 같습니다.xmin:x최대:xip_list. 예를 들어10:20:10,14,15의미xmin=10, xmax=20, xip_list=10, 14, 15.