DuckDB_% 메타데이터 함수

DuckDB_% 메타데이터 함수 (DuckDB_% Metadata Functions)

DuckDB는 현재 데이터베이스에 대한 메타데이터를 제공하는 테이블 함수 모음을 제공해요. 이 함수들은 main 스키마에 있고 이름이 duckdb_ 접두사로 시작해요. 카탈로그 객체를 SQL로 직접 들여다볼 수 있는 강력한 도구예요.

출처: 문서

본문

DuckDB는 현재 데이터베이스에 대한 메타데이터를 제공하는 테이블 함수 모음을 제공해요. 이 함수들은 main 스키마에 있으며 이름이 duckdb_ 접두사로 시작해요.

duckdb_ 테이블 함수가 반환하는 결과 집합은 일반 테이블이나 뷰처럼 사용할 수 있어요. 예를 들어 SELECT 문의 FROM 절에서 duckdb_ 함수 호출을 사용하고, 반환된 결과 집합의 컬럼을 문의 다른 곳(예: WHERE 절)에서 참조할 수 있어요.

테이블 함수는 여전히 함수이므로, 반환된 결과 집합을 얻으려면 함수 이름 뒤에 괄호를 써서 호출해야 해요:

SELECT * FROM duckdb_settings();

또는 CALL 문법으로 테이블 함수를 실행할 수도 있어요:

CALL duckdb_settings();

이 경우에도 괄호는 필수예요.

일부 duckdb_% 함수에는 같은 이름의 뷰도 있으며, 역시 main 스키마에 있어요. 일반적으로 이 뷰들은 같은 이름의 duckdb_ 테이블 함수에 대해 SELECT를 수행하면서 internal로 표시된 객체를 걸러내요. 이 점을 언급하는 이유는, duckdb_ 테이블 함수 호출에서 괄호를 실수로 생략해도 결과를 얻을 수는 있지만 같은 이름의 뷰에서 얻기 때문이에요.

예시:

duckdb_views() _테이블 함수_는 internal로 표시된 것을 포함한 모든 뷰를 반환해요:

SELECT * FROM duckdb_views();

duckdb_views _뷰_는 internal로 표시되지 않은 뷰를 반환해요:

SELECT * FROM duckdb_views;

duckdb_columns

duckdb_columns() 함수는 DuckDB 인스턴스에서 사용 가능한 컬럼에 대한 메타데이터를 제공해요.

컬럼 설명 타입
database_name 컬럼 객체를 담는 데이터베이스의 이름. VARCHAR
database_oid 컬럼 객체를 담는 데이터베이스의 내부 식별자. BIGINT
schema_name 이 컬럼을 정의하는 테이블 객체를 담는 스키마의 SQL 이름. VARCHAR
schema_oid 컬럼의 테이블을 담는 스키마 객체의 내부 식별자. BIGINT
table_name 컬럼을 정의하는 테이블의 SQL 이름. VARCHAR
table_oid 컬럼을 정의하는 테이블 객체의 내부 식별자(이름). BIGINT
column_name 컬럼의 SQL 이름. VARCHAR
column_index 테이블 내 컬럼의 고유 위치. INTEGER
comment COMMENT ON으로 만든 주석. VARCHAR
internal 이 컬럼이 내장(built-in)이면 true, 사용자 정의이면 false. BOOLEAN
column_default 컬럼의 기본값(SQL로 표현) VARCHAR
is_nullable 컬럼이 NULL 값을 가질 수 있으면 true, NULL 값을 가질 수 없으면 false. BOOLEAN
data_type 컬럼 데이터 타입의 이름. VARCHAR
data_type_id 컬럼 데이터 타입의 내부 식별자. BIGINT
character_maximum_length 항상 NULL. DuckDB text 타입은 길이 타입 파라미터에 기반한 값 길이 제한을 강제하지 않아요. INTEGER
numeric_precision 컬럼 값을 저장하는 데 사용되는 단위 수(numeric_precision_radix가 나타내는 진법 기준). 정수·근사 숫자 타입은 비트 수, decimal 타입은 자릿수. INTEGER
numeric_precision_radix numeric_precision 컬럼의 단위 진법. 정수·근사 숫자 타입은 2(정밀도가 비트 수로 표시됨), decimal 타입은 10(정밀도가 십진 자릿수로 표시됨). INTEGER
numeric_scale decimal 타입에 적용. 최대 소수 자릿수(즉 소수 구분자 뒤에 나타날 수 있는 자릿수)를 나타냄. INTEGER

information_schema.columns 시스템 뷰는 데이터베이스 컬럼에 대한 메타데이터를 얻는 더 표준화된 방법을 제공하지만, duckdb_columns 함수는 DuckDB 내부 객체에 대한 메타데이터도 반환해요. (실제로 information_schema.columnsduckdb_columns() 위의 쿼리로 구현돼요)

duckdb_constraints

duckdb_constraints() 함수는 DuckDB 인스턴스에서 사용 가능한 제약 조건에 대한 메타데이터를 제공해요.

컬럼 설명 타입
database_name 제약 조건을 담는 데이터베이스의 이름. VARCHAR
database_oid 제약 조건을 담는 데이터베이스의 내부 식별자. BIGINT
schema_name 제약 조건이 정의된 테이블을 담는 스키마의 SQL 이름. VARCHAR
schema_oid 제약 조건이 정의된 테이블을 담는 스키마 객체의 내부 식별자. BIGINT
table_name 제약 조건이 정의된 테이블의 SQL 이름. VARCHAR
table_oid 제약 조건이 정의된 테이블 객체의 내부 식별자(이름). BIGINT
constraint_index 테이블 정의에 나타나는 제약 조건의 위치. BIGINT
constraint_type 제약 조건의 유형. 적용 값: CHECK, FOREIGN KEY, PRIMARY KEY, NOT NULL, UNIQUE. VARCHAR
constraint_text SQL 구(phrase)로 표현된 제약 조건의 정의. (반드시 완전하거나 문법적으로 유효한 DDL 문일 필요는 없음) VARCHAR
expression 제약 조건이 체크 제약이라면 검사되는 조건의 정의, 그렇지 않으면 NULL. VARCHAR
constraint_column_indexes 제약 조건 정의에 나타나는 컬럼을 가리키는 테이블 컬럼 인덱스 배열. BIGINT[]
constraint_column_names 제약 조건 정의에 나타나는 테이블 컬럼 이름 배열. VARCHAR[]
constraint_name 제약 조건의 이름. VARCHAR
referenced_table 제약 조건이 참조하는 테이블. VARCHAR
referenced_column_names 제약 조건이 참조하는 컬럼 이름. VARCHAR[]

information_schema.referential_constraintsinformation_schema.table_constraints 시스템 뷰는 제약 조건에 대한 메타데이터를 얻는 더 표준화된 방법을 제공하지만, duckdb_constraints 함수는 DuckDB 내부 객체에 대한 메타데이터도 반환해요. (실제로 information_schema.referential_constraintsinformation_schema.table_constraintsduckdb_constraints() 위의 쿼리로 구현돼요)

duckdb_coordinate_systems

duckdb_coordinate_systems() 함수는 GEOMETRY 데이터 타입과 함께 사용할 수 있는 좌표 참조 시스템(CRS)을 나열해요.

컬럼 설명 타입
database_name CRS 정의를 저장하는 데이터베이스의 이름. VARCHAR
database_oid CRS 정의를 저장하는 데이터베이스의 내부 식별자. BIGINT
schema_name CRS 정의를 저장하는 스키마의 SQL 이름. VARCHAR
schema_oid CRS 정의를 저장하는 스키마의 내부 식별자. BIGINT
crs_oid CRS의 고유 내부 식별자. BIGINT
crs_name CRS를 식별하는 고유 이름. (일반적으로 auth_nameauth_code를 콜론으로 구분한 값과 동일) VARCHAR
auth_name CRS를 정의한 권위(authority)의 이름. VARCHAR
auth_code 그 권위 내에서 CRS를 정의한 코드. VARCHAR
projjson CRS의 projjson 인코딩. VARCHAR
wkt2_2019 CRS의 Well-Known Text (WKT) 표현. VARCHAR

이 함수는 내장 CRS와 익스텐션(예: SPATIAL 익스텐션)이 설치한 CRS를 모두 나열해요.

duckdb_databases

duckdb_databases() 함수는 현재 DuckDB 프로세스에서 접근할 수 있는 데이터베이스를 나열해요. 시작 시 연결된 데이터베이스 외에도 나중에 DuckDB 프로세스에 연결된 데이터베이스도 포함돼요.

컬럼 설명 타입
database_name 데이터베이스의 이름, 또는 ALIAS 절로 연결됐다면 별칭. VARCHAR
database_oid 데이터베이스의 내부 식별자. VARCHAR
path 데이터베이스와 연결된 파일 경로. VARCHAR
comment COMMENT ON으로 만든 주석. VARCHAR
tags 문자열 키-값 쌍의 맵. MAP(VARCHAR, VARCHAR)
internal true는 시스템 또는 내장 데이터베이스, false는 사용자 정의 데이터베이스. BOOLEAN
type 연결된 데이터베이스가 구현하는 RDBMS 유형. DuckDB 데이터베이스의 경우 duckdb. VARCHAR
readonly 데이터베이스가 읽기 전용인지 여부. BOOLEAN
options ATTACH 문에 사용된 옵션(옵션 이름 → 문자열 값 맵). MAP(VARCHAR, VARCHAR)

duckdb_dependencies

duckdb_dependencies() 함수는 DuckDB 인스턴스에서 사용 가능한 의존성에 대한 메타데이터를 제공해요.

컬럼 설명 타입
classid 항상 0 BIGINT
objid 객체의 내부 id. BIGINT
objsubid 항상 0 INTEGER
refclassid 항상 0 BIGINT
refobjid 의존 객체의 내부 id. BIGINT
refobjsubid 항상 0 INTEGER
deptype 의존성 유형. regular(n) 또는 automatic(a). VARCHAR

duckdb_extensions

duckdb_extensions() 함수는 DuckDB 인스턴스에서 사용 가능한 익스텐션에 대한 메타데이터를 제공해요.

컬럼 설명 타입
extension_name 익스텐션의 이름. VARCHAR
loaded 익스텐션이 로드됐으면 true, 아니면 false. BOOLEAN
installed 익스텐션이 설치됐으면 true, 아니면 false. BOOLEAN
install_path 익스텐션이 내장이면 (BUILT-IN), 그렇지 않으면 익스텐션을 구현하는 바이너리가 있는 파일시스템 경로. VARCHAR
description 익스텐션의 기능을 설명하는 사람이 읽을 수 있는 텍스트. VARCHAR
aliases 이 익스텐션의 대체 이름 목록. VARCHAR[]
extension_version 익스텐션의 버전(안정 버전은 vX.Y.Z, 불안정 버전은 6자리 해시). VARCHAR
install_mode 익스텐션 설치에 사용된 설치 모드: UNKNOWN, REPOSITORY, CUSTOM_PATH, STATICALLY_LINKED, NOT_INSTALLED, NULL. VARCHAR
installed_from 익스텐션이 설치된 저장소의 이름(예: community, core_nightly). 빈 문자열은 core 저장소를 나타냄. VARCHAR

duckdb_functions

duckdb_functions() 함수는 DuckDB 인스턴스에서 사용 가능한 함수(매크로 포함)에 대한 메타데이터를 제공해요.

컬럼 설명 타입
database_name 이 함수를 담는 데이터베이스의 이름. VARCHAR
database_oid 인덱스를 담는 데이터베이스의 내부 식별자. BIGINT
schema_name 함수가 존재하는 스키마의 SQL 이름. VARCHAR
function_name 함수의 SQL 이름. VARCHAR
alias_of 이 함수가 별칭인 함수의 이름, 별칭이 아니면 NULL. VARCHAR
function_type 함수 종류. 값: table, scalar, aggregate, pragma, macro, table_macro VARCHAR
description 이 함수의 설명, 등록된 게 없으면 NULL. VARCHAR
comment COMMENT ON으로 만든 주석. VARCHAR
tags 문자열 키-값 쌍의 맵. MAP(VARCHAR, VARCHAR)
return_type 반환 값의 논리 데이터 타입 이름. 스칼라·집계 함수에 적용. VARCHAR
parameters 함수에 파라미터가 있으면 파라미터 이름 목록. VARCHAR[]
parameter_types 함수에 파라미터가 있으면 파라미터 목록에 대응하는 논리 데이터 타입 이름 목록. VARCHAR[]
varargs 함수에 가변 인자 수가 있으면 데이터 타입 이름, 가변 인자 수가 없으면 NULL. VARCHAR
macro_definition 매크로라면 이를 정의하는 SQL 표현식. VARCHAR
has_side_effects 순수 함수면 false. 상태를 바꾸는 함수(시퀀스 함수 nextval(), curval() 등)면 true. BOOLEAN
internal 함수가 내장(DuckDB 또는 익스텐션 정의)이면 true, CREATE MACRO으로 정의됐으면 false. BOOLEAN
function_oid 이 함수의 내부 식별자. BIGINT
examples 함수 사용 예시. 문서 생성에 사용. VARCHAR[]
stability 함수의 안정성(CONSISTENT, VOLATILE, CONSISTENT_WITHIN_QUERY 또는 NULL) VARCHAR

duckdb_indexes

duckdb_indexes() 함수는 DuckDB 인스턴스에서 사용 가능한 보조 인덱스에 대한 메타데이터를 제공해요.

컬럼 설명 타입
database_name 이 인덱스를 담는 데이터베이스의 이름. VARCHAR
database_oid 인덱스를 담는 데이터베이스의 내부 식별자. BIGINT
schema_name 보조 인덱스가 있는 테이블을 담는 스키마의 SQL 이름. VARCHAR
schema_oid 스키마 객체의 내부 식별자. BIGINT
index_name 이 보조 인덱스의 SQL 이름. VARCHAR
index_oid 이 인덱스의 객체 식별자. BIGINT
table_name 인덱스가 있는 테이블의 이름. VARCHAR
table_oid 테이블 객체의 내부 식별자(이름). BIGINT
comment COMMENT ON으로 만든 주석. VARCHAR
tags 문자열 키-값 쌍의 맵. MAP(VARCHAR, VARCHAR)
is_unique UNIQUE 수식어로 만들어진 인덱스면 true, 아니면 false. BOOLEAN
is_primary 항상 false. BOOLEAN
expressions 항상 NULL. VARCHAR
sql 인덱스의 정의를 CREATE INDEX SQL 문으로 표현. VARCHAR

duckdb_indexes는 보조 인덱스, 즉 명시적 CREATE INDEX 문으로 만들어진 인덱스에 대한 메타데이터만 제공한다는 점을 참고해요. 기본 키, 외래 키, UNIQUE 제약 조건은 인덱스를 사용해 유지되지만 그 세부 내용은 duckdb_constraints() 함수에 포함돼요.

duckdb_keywords

duckdb_keywords() 함수는 DuckDB의 키워드와 예약어에 대한 메타데이터를 제공해요.

컬럼 설명 타입
keyword_name 키워드. VARCHAR
keyword_category 키워드의 범주: reserved(인용 없이 식별자로 사용 불가), unreserved(식별자로 사용 가능), column_name(컬럼 이름으로는 사용 가능하지만 타입·함수 이름으로는 불가), type_function(타입·함수 이름으로는 사용 가능하지만 컬럼 이름으로는 불가). Keywords and Identifiers 참고. VARCHAR

duckdb_log_contexts

duckdb_log_contexts() 함수는 DuckDB 로그 항목의 컨텍스트에 대한 정보를 제공해요.

컬럼 설명 타입
context_id 컨텍스트의 식별자. duckdb_logs 테이블의 context_id 컬럼은 이 컬럼을 가리키는 외래 키. UBIGINT
scope 컨텍스트의 범위(connection, database 또는 file_opener). VARCHAR
connection_id 연결의 식별자. UBIGINT
transaction_id 트랜잭션의 식별자. UBIGINT
query_id 쿼리의 식별자. UBIGINT
thread_id 스레드의 식별자. UBIGINT

duckdb_logs

duckdb_logs() 함수는 DuckDB 로그 항목의 테이블을 반환해요.

컬럼 설명 타입
context_id 로그 항목 컨텍스트의 식별자. duckdb_log_contexts 테이블의 외래 키. UBIGINT
timestamp 로그 항목의 타임스탬프. TIMESTAMP
type 로그 항목의 유형. VARCHAR
log_level 로그 항목의 수준(TRACE, DEBUG, INFO, WARN, ERROR 또는 FATAL). VARCHAR
message 로그 항목의 메시지. VARCHAR

duckdb_memory

duckdb_memory() 함수는 DuckDB의 버퍼 매니저에 대한 메타데이터를 제공해요.

컬럼 설명 타입
tag 메모리 태그. 다음 값 중 하나: BASE_TABLE, HASH_TABLE, PARQUET_READER, CSV_READER, ORDER_BY, ART_INDEX, COLUMN_DATA, METADATA, OVERFLOW_STRINGS, IN_MEMORY_TABLE, ALLOCATOR, EXTENSION. VARCHAR
memory_usage_bytes 사용된 메모리(바이트). BIGINT
temporary_storage_bytes 사용된 디스크 저장 공간(바이트). BIGINT

duckdb_optimizers

duckdb_optimizers() 함수는 DuckDB 인스턴스에서 사용 가능한 최적화 규칙(예: expression_rewriter, filter_pushdown)에 대한 메타데이터를 제공해요. 이들은 PRAGMA disabled_optimizers로 선택적으로 끌 수 있어요.

컬럼 설명 타입
name 최적화 규칙의 이름. VARCHAR

duckdb_prepared_statements

duckdb_prepared_statements() 함수는 현재 DuckDB 세션에 존재하는 준비된 문에 대한 메타데이터를 제공해요.

컬럼 설명 타입
name 준비된 문의 이름. VARCHAR
statement SQL 문. VARCHAR
parameter_types 문 파라미터의 예상 파라미터 타입. 현재 모든 파라미터에 UNKNOWN 반환. VARCHAR[]
result_types 준비된 문이 반환하는 테이블의 컬럼 타입. VARCHAR[]

duckdb_profiling_settings

duckdb_profiling_settings() 매크로는 duckdb_settings()에서 현재 프로파일링 관련 설정을 반환해요.

컬럼 설명 타입
name 프로파일링 설정의 이름. VARCHAR
value 설정의 현재 값. VARCHAR
description 설정에 대한 설명. VARCHAR

duckdb_schemas

duckdb_schemas() 함수는 DuckDB 인스턴스에서 사용 가능한 스키마에 대한 메타데이터를 제공해요.

컬럼 설명 타입
oid 스키마 객체의 내부 식별자. BIGINT
database_name 이 스키마를 담는 데이터베이스의 이름. VARCHAR
database_oid 스키마를 담는 데이터베이스의 내부 식별자. BIGINT
schema_name 스키마의 SQL 이름. VARCHAR
comment COMMENT ON으로 만든 주석. VARCHAR
tags 문자열 키-값 쌍의 맵. MAP(VARCHAR, VARCHAR)
internal 내부(내장) 스키마면 true, 사용자 정의 스키마면 false. BOOLEAN
sql 항상 NULL VARCHAR

information_schema.schemata 시스템 뷰는 데이터베이스 스키마에 대한 메타데이터를 얻는 더 표준화된 방법을 제공해요.

duckdb_secret_types

duckdb_secret_types()는 현재 DuckDB 세션에서 지원되는 시크릿 타입을 나열해요.

컬럼 설명 타입
type 시크릿 타입의 이름(예: s3). VARCHAR
default_provider 기본 시크릿 제공자(예: config). VARCHAR
extension 시크릿 타입을 등록한 익스텐션(예: aws). VARCHAR

duckdb_secrets

duckdb_secrets() 함수는 DuckDB 인스턴스에서 사용 가능한 시크릿에 대한 메타데이터를 제공해요.

컬럼 설명 타입
name 시크릿의 이름. VARCHAR
type 시크릿의 타입(예: S3, GCS, R2, AZURE). VARCHAR
provider 시크릿의 제공자. VARCHAR
persistent 시크릿이 영구적인지 여부. BOOLEAN
storage 시크릿을 저장하는 백엔드. VARCHAR
scope 시크릿의 범위. VARCHAR[]
secret_string 시크릿의 내용을 문자열로 반환. 접근 키 같은 민감한 정보는 가려짐(redacted). VARCHAR

duckdb_sequences

duckdb_sequences() 함수는 DuckDB 인스턴스에서 사용 가능한 시퀀스에 대한 메타데이터를 제공해요.

컬럼 설명 타입
database_name 이 시퀀스를 담는 데이터베이스의 이름 VARCHAR
database_oid 시퀀스를 담는 데이터베이스의 내부 식별자. BIGINT
schema_name 시퀀스 객체를 담는 스키마의 SQL 이름. VARCHAR
schema_oid 시퀀스 객체를 담는 스키마 객체의 내부 식별자. BIGINT
sequence_name 스키마 내 시퀀스를 식별하는 SQL 이름. VARCHAR
sequence_oid 이 시퀀스 객체의 내부 식별자. BIGINT
comment COMMENT ON으로 만든 주석. VARCHAR
tags 문자열 키-값 쌍의 맵. MAP(VARCHAR, VARCHAR)
temporary 이 시퀀스가 임시인지 여부. 임시 시퀀스는 일시적이며 현재 연결 내에서만 보임. BOOLEAN
start_value 시퀀스의 초기 값. 이 시퀀스에 nextval()을 처음 호출할 때 이 값이 반환됨. BIGINT
min_value 시퀀스의 최소 값. BIGINT
max_value 시퀀스의 최대 값. BIGINT
increment_by 시퀀스에서 다음 값을 꺼낼 때 현재 값에 더해지는 값. BIGINT
cycle 다음 값을 꺼낼 때 범위를 벗어나는 값이 된다면 시퀀스가 다시 시작할지 여부. BOOLEAN
last_value nextval(...)로 시퀀스에서 값을 한 번도 꺼낸 적이 없으면 NULL. 값을 꺼낸 적이 있으면 1. BIGINT
sql 이 객체의 정의를 SQL DDL 문으로 표현. VARCHAR

temporary, start_value 같은 속성은 CREATE SEQUENCE 문의 다양한 옵션에 대응하며 거기에 전체 문서화돼 있어요. CREATE SEQUENCE 문에서 명시적으로 지정하지 않았어도 duckdb_sequences 결과 집합에는 항상 채워진다는 점을 참고해요.

  1. last_value라는 컬럼 이름은 시퀀스에서 꺼낸 마지막 값을 담고 있는 것처럼 보이지만 실제로는 그렇지 않아요. 시퀀스에서 값을 한 번도 꺼낸 적이 없으면 NULL, (언젠가 한 번이라도) 값을 꺼낸 적이 있으면 1이에요.

  2. 시퀀스가 순환하면 시퀀스는 시작 값으로 지정된 값이 아니라 범위의 경계에서 다시 시작해요.

duckdb_settings

duckdb_settings() 함수는 DuckDB 인스턴스에서 사용 가능한 설정에 대한 메타데이터를 제공해요.

컬럼 설명 타입
name 설정의 이름. VARCHAR
value 설정의 현재 값. VARCHAR
description 설정에 대한 설명. VARCHAR
input_type 설정 값의 논리 데이터 타입. VARCHAR
scope 설정의 범위(LOCAL 또는 GLOBAL). VARCHAR

다양한 설정은 configuration 페이지에 설명돼 있어요.

duckdb_tables

duckdb_tables() 함수는 DuckDB 인스턴스에서 사용 가능한 기본 테이블에 대한 메타데이터를 제공해요.

컬럼 설명 타입
database_name 이 테이블을 담는 데이터베이스의 이름 VARCHAR
database_oid 테이블을 담는 데이터베이스의 내부 식별자. BIGINT
schema_name 기본 테이블을 담는 스키마의 SQL 이름. VARCHAR
schema_oid 기본 테이블을 담는 스키마 객체의 내부 식별자. BIGINT
table_name 기본 테이블의 SQL 이름. VARCHAR
table_oid 기본 테이블 객체의 내부 식별자. BIGINT
comment COMMENT ON으로 만든 주석. VARCHAR
tags 문자열 키-값 쌍의 맵. MAP(VARCHAR, VARCHAR)
internal 사용자 정의 테이블이면 false. BOOLEAN
temporary 임시 테이블인지 여부. 임시 테이블은 영속되지 않고 현재 연결 내에서만 보임. BOOLEAN
has_primary_key 이 테이블 객체가 PRIMARY KEY를 정의하면 true. BOOLEAN
estimated_size 테이블의 추정 행 수. BIGINT
column_count 이 객체가 정의한 컬럼 수. BIGINT
index_count 이 테이블과 연관된 인덱스 수. 모든 보조 인덱스와 PRIMARY KEY 및/또는 UNIQUE 제약 조건을 유지하기 위해 생성된 내부 인덱스를 포함. BIGINT
check_constraint_count 테이블 내 컬럼에서 활성화된 체크 제약 조건 수. BIGINT
sql 이 객체의 정의를 SQL CREATE TABLE으로 표현. VARCHAR

information_schema.tables 시스템 뷰는 뷰도 포함한 데이터베이스 테이블에 대한 메타데이터를 얻는 더 표준화된 방법을 제공해요. 하지만 duckdb_tables가 반환하는 결과 집합에는 information_schema.tables에 없는 몇몇 컬럼이 있어요.

duckdb_temporary_files

duckdb_temporary_files() 함수는 DuckDB가 메모리에서 데이터를 내려놓기 위해 디스크에 쓴 임시 파일에 대한 메타데이터를 제공해요. 이 함수는 주로 디버깅·테스트 용도로 존재해요.

컬럼 설명 타입
path 임시 파일의 이름. VARCHAR
size 임시 파일의 크기(바이트). BIGINT

duckdb_types

duckdb_types() 함수는 DuckDB 인스턴스에서 사용 가능한 데이터 타입에 대한 메타데이터를 제공해요.

컬럼 설명 타입
database_name 이 스키마를 담는 데이터베이스의 이름. VARCHAR
database_oid 데이터 타입을 담는 데이터베이스의 내부 식별자. BIGINT
schema_name 타입 정의를 담는 스키마의 SQL 이름. 항상 main. VARCHAR
schema_oid 스키마 객체의 내부 식별자. BIGINT
type_name 이 데이터 타입의 이름 또는 별칭. VARCHAR
type_oid 데이터 타입 객체의 내부 식별자. NULL이면 logical_type 컬럼의 값이 식별하는 타입의 별칭. BIGINT
type_size 이 타입의 값을 메모리에 표현하는 데 필요한 바이트 수. BIGINT
logical_type 이 데이터 타입의 '정식(canonical)' 이름. 같은 logical_type을 여러 type_name이 참조할 수 있음. VARCHAR
type_category 이 타입이 속한 범주. 같은 범주의 데이터 타입은 이 타입의 값이 표현식에 사용될 때 일반적으로 유사한 동작을 노출해요. 예를 들어 NUMERIC type_category에는 정수, decimal, 부동소수점 숫자가 포함됨. VARCHAR
comment COMMENT ON으로 만든 주석. VARCHAR
tags 문자열 키-값 쌍의 맵. MAP(VARCHAR, VARCHAR)
internal 내부(내장) 객체인지 사용자 객체인지. BOOLEAN
labels 타입 분류용 라벨. 문서 생성에 사용. VARCHAR[]

duckdb_variables

duckdb_variables() 함수는 DuckDB 인스턴스에서 사용 가능한 변수에 대한 메타데이터를 제공해요.

컬럼 설명 타입
name 변수의 이름(예: x). VARCHAR
value 변수의 값(예: 12). VARCHAR
type 변수의 타입(예: INTEGER). VARCHAR

duckdb_views

duckdb_views() 함수는 DuckDB 인스턴스에서 사용 가능한 뷰에 대한 메타데이터를 제공해요.

컬럼 설명 타입
database_name 이 뷰를 담는 데이터베이스의 이름. VARCHAR
database_oid 이 뷰를 담는 데이터베이스의 내부 식별자. BIGINT
schema_name 뷰가 존재하는 스키마의 SQL 이름. VARCHAR
schema_oid 뷰를 담는 스키마 객체의 내부 식별자. BIGINT
view_name 뷰 객체의 SQL 이름. VARCHAR
view_oid 이 뷰 객체의 내부 식별자. BIGINT
comment COMMENT ON으로 만든 주석. VARCHAR
tags 문자열 키-값 쌍의 맵. MAP(VARCHAR, VARCHAR)
internal 내부(내장) 뷰면 true, 사용자 정의 뷰면 false. BOOLEAN
temporary 임시 뷰면 true. 임시 뷰는 영속되지 않고 현재 연결 내에서만 보임. BOOLEAN
column_count 이 뷰 객체가 정의한 컬럼 수. BIGINT
sql 이 객체의 정의를 SQL DDL 문으로 표현. VARCHAR

information_schema.tables 시스템 뷰는 기본 테이블도 포함한 데이터베이스 뷰에 대한 메타데이터를 얻는 더 표준화된 방법을 제공해요. 하지만 duckdb_views가 반환하는 결과 집합에는 내부 뷰 객체의 정의와 information_schema.tables에 없는 몇몇 컬럼도 있어요.

더 알아보기 (Learn more)