Spec-Zone.ru › DuckDB

DuckDB_% Функции метаданных

DuckDB предоставляет набор функций таблиц, которые предоставляют метаданные о текущей базе данных. Эти функции находятся в схеме main и их имена начинаются с duckdb_.

Результат, возвращаемый функцией таблицы duckdb_, может использоваться как обычная таблица или представление. Например, вы можете использовать вызов функции duckdb_ в FROM-запуске SELECT-запроса, и вы можете ссылаться на столбцы возвращенного набора результатов в другом месте запроса, например, в WHERE-запуске.

Функции таблиц всё ещё являются функциями, и вы должны писать скобки после имени функции, чтобы вызвать её и получить возвращаемый набор результатов:

SELECT * FROM duckdb_settings();

В качестве альтернативы, вы можете также выполнить функции таблиц с использованием CALL-синтаксиса:

CALL duckdb_settings();

И в этом случае скобки обязательны.

Для некоторых функций duckdb_%, также доступно одноимённое представление, которое также находится в схеме main. Обычно эти представления выполняют SELECT на функции таблицы duckdb_ с тем же именем, отфильтровывая те объекты, которые помечены как внутренние. Мы упоминаем об этом, потому что если вы случайно опустите скобки в вызове функции таблицы duckdb_, вы всё равно можете получить результат, но из одноимённого представления.

Пример:

Функция таблицы duckdb_views() возвращает все представления, включая те, которые помечены как внутренние:

SELECT * FROM duckdb_views();

Представление duckdb_views возвращает представления, которые не помечены как внутренние:

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
internal true если столбец встроенный, false если он пользовательский. BOOLEAN
column_default Значение по умолчанию столбца (выраженное в SQL). VARCHAR
is_nullable true если столбец может содержать значения NULL, false если столбец не может содержать значения NULL. BOOLEAN
data_type Имя типа данных столбца. VARCHAR
data_type_id Внутренний идентификатор типа данных столбца. BIGINT
character_maximum_length Всегда NULL. DuckDB текстовые типы не накладывают ограничений на длину значения на основе параметра типа длины. INTEGER
numeric_precision Количество единиц (в основании, указанном numeric_precision_radix) используемых для хранения значений столбца. Для целочисленных и приблизительных числовых типов это количество битов. Для десятичных типов это количество позиций цифр. INTEGER
numeric_precision_radix Система счисления единиц в столбце numeric_precision. Для целочисленных и приблизительных числовых типов это 2, что указывает, что точность выражается как количество битов. Для типа decimal это 10, что указывает, что точность выражается как количество десятичных знаков. INTEGER
numeric_scale Применимо к типу decimal. Указывает максимальное количество дробных цифр (т.е. количество цифр, которые могут появиться после десятичной точки). INTEGER

Система представлений information_schema.columns предоставляет более стандартизированный способ получения метаданных о столбцах базы данных, но функция duckdb_columns также возвращает метаданные об внутренних объектах DuckDB. (Фактически, information_schema.columns реализована как запрос поверх duckdb_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-фразе. (Не обязательно полное или синтаксически правильное DDL-утверждение.) VARCHAR
expression Если ограничение — ограничение проверки, определение проверяемого условия, иначе NULL. VARCHAR
constraint_column_indexes Массив индексов столбцов таблицы, ссылающихся на столбцы, которые появляются в определении ограничения. BIGINT[]
constraint_column_names Массив имён столбцов таблицы, которые появляются в определении ограничения. VARCHAR[]

Система представлений information_schema.referential_constraints и information_schema.table_constraints предоставляют более стандартизированный способ получения метаданных о ограничениях, но функция duckdb_constraints также возвращает метаданные об внутренних объектах DuckDB. (Фактически, information_schema.referential_constraints и information_schema.table_constraints реализованы как запрос поверх duckdb_constraints())

duckdb_databases

Функция duckdb_databases() перечисляет базы данных, доступные в текущем процессе DuckDB. Помимо базы данных, связанной при запуске, список также включает базы данных, которые были подключены позже к процессу DuckDB.

Column Description Type
database_name Имя базы данных или псевдоним, если база данных была подключена с использованием ALIAS-описания. VARCHAR
database_oid Внутренний идентификатор базы данных. VARCHAR
path Путь к файлу, связанный с базой данных. VARCHAR
internal true указывает на системную или встроенную базу данных. Ложь указывает на базу данных, определённую пользователем. BOOLEAN
type Тип указывает на тип RDBMS, реализованный подключенной базой данных. Для баз данных DuckDB это значение равно duckdb. VARCHAR

duckdb_dependencies

Функция duckdb_dependencies() предоставляет метаданные о зависимостях, доступных в экземпляре DuckDB.

Column Description Type
classid Всегда 0 BIGINT
objid Внутренний идентификатор объекта. BIGINT
objsubid Всегда 0 INTEGER
refclassid Всегда 0 BIGINT
refobjid Внутренний идентификатор зависимого объекта. BIGINT
refobjsubid Всегда 0 INTEGER
deptype Тип зависимости. Либо обычный (n), либо автоматический (a). VARCHAR

duckdb_extensions

Функция duckdb_extensions() предоставляет метаданные о доступных расширениях в экземпляре DuckDB.

Column Description Type
extension_name Имя расширения. VARCHAR
loaded Загружено, если расширение загружено, не загружено, если нет. BOOLEAN
installed Установлено, если расширение установлено, не установлено, если нет. BOOLEAN
install_path Встроенное, если расширение встроенное, иначе путь к файлу исполняемого файла, реализующего расширение. VARCHAR
description Читаемый человеком текст, описывающий функциональность расширения. VARCHAR
aliases Список альтернативных имён для этого расширения. VARCHAR[]

duckdb_functions

Функция duckdb_functions() предоставляет метаданные о функциях (включая макросы), доступных в экземпляре DuckDB.

Column Description Type
database_name Имя базы данных, содержащей эту функцию. VARCHAR
schema_name Имя SQL схемы, в которой находится функция. VARCHAR
function_name Имя SQL функции. VARCHAR
function_type Вид функции. Значение — одно из: table,scalar,aggregate,pragma,macro VARCHAR
description Описание этой функции (всегда NULL) VARCHAR
return_type Логическое имя типа данных возвращаемого значения. Применимо для скалярных и агрегатных функций. VARCHAR
parameters Если у функции есть параметры, список имён параметров. VARCHAR[]
parameter_types Если у функции есть параметры, список логических имён типов данных, соответствующих списку параметров. VARCHAR[]
varargs Имя типа данных в случае, если функция имеет переменное количество аргументов, или NULL, если функция не имеет переменного количества аргументов. VARCHAR
macro_definition Если это макрос, выражение SQL, которое его определяет. VARCHAR
has_side_effects Чистая функция, если это чистая функция. Изменяет состояние базы данных (например, функции последовательности nextval(), и curval()) если функция изменяет состояние базы данных. BOOLEAN
function_oid Внутренний идентификатор этой функции BIGINT

duckdb_indexes

Функция duckdb_indexes() предоставляет метаданные о вторичных индексах, доступных в экземпляре DuckDB.

Column Description Type
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
is_unique Создан с модификатором UNIQUE, если индекс был создан с модификатором UNIQUE, не создан, если нет. 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 Указывает категорию ключевого слова. Значения — column_name, reserved, type_function и unreserved. 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() предоставляет метаданные о правилах оптимизации (например, expression_rewriter, filter_pushdown) доступных в экземпляре DuckDB. Их можно выборочно отключить с помощью PRAGMA disabled_optimizers.

Столбец Описание Тип
name Имя правила оптимизации. VARCHAR

duckdb_schemas

Функция duckdb_schemas() предоставляет метаданные о схемах, доступных в экземпляре DuckDB.

Столбец Описание Тип
oid Внутренний идентификатор объекта схемы. BIGINT
database_name Имя базы данных, содержащей эту схему. VARCHAR
database_oid Внутренний идентификатор базы данных, содержащей схему. BIGINT
schema_name SQL-имя схемы. VARCHAR
internal true если это внутренняя (встроенная) схема, false если это схема, определенная пользователем. BOOLEAN
sql Всегда NULL VARCHAR

Представление системы information_schema.schemata обеспечивает более стандартизованный способ получения метаданных о схемах баз данных.

duckdb_secrets

Функция duckdb_secrets() предоставляет метаданные о секретах, доступных в экземпляре DuckDB.

Столбец Описание Тип
name Имя секрета. VARCHAR
type Тип секрета, например, S3, GCS, R2, AZURE. VARCHAR
provider Поставщик секрета. VARCHAR
persistent Указывает, является ли секрет постоянным. BOOLEAN
storage Бэкенд для хранения секрета. VARCHAR
scope Область действия секрета. VARCHAR[]
secret_string Возвращает содержимое секрета как строку. Конфиденциальная информация, например, ключи доступа, замаскирована. VARCHAR

duckdb_sequences

Функция duckdb_sequences() предоставляет метаданные о последовательностях, доступных в экземпляре DuckDB.

Столбец Описание Тип
database_name Имя базы данных, содержащей эту последовательность VARCHAR
database_oid Внутренний идентификатор базы данных, содержащей последовательность. BIGINT
schema_name SQL-имя схемы, содержащей объект последовательности. VARCHAR
schema_oid Внутренний идентификатор объекта схемы, содержащего объект последовательности. BIGINT
sequence_name SQL-имя, идентифицирующее последовательность в рамках схемы. VARCHAR
... (rest of the table) ...

Атрибуты, такие как temporary, start_value и т. д., соответствуют различным параметрам, доступным в операторе CREATE SEQUENCE, и подробно документированы там. Обратите внимание, что атрибуты всегда будут заполнены в результирующем наборе duckdb_sequences, даже если они не были явно указаны в операторе CREATE SEQUENCE.

  1. Название колонки last_value предполагает, что она содержит последнее значение, которое было извлечено из последовательности, но это не так. Это либо null , если значение никогда не извлекалось из последовательности, или 1 (если из последовательности когда-либо извлекалось значение).

  2. Если последовательность циклическая, то она начнётся заново с границы своего диапазона, а не обязательно со значения, указанного в качестве начального.

duckdb_settings

Функция duckdb_settings() предоставляет метаданные о настройках, доступных в экземпляре DuckDB.

Столбец Описание Тип
name Имя настройки. VARCHAR
value Текущее значение настройки. VARCHAR
description Описание настройки. VARCHAR
input_type Логический тип данных значения настройки. VARCHAR

Различные настройки описаны на странице конфигурации.

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
internal false если это таблица, определённая пользователем. BOOLEAN
temporary Является ли это временной таблицей. Временные таблицы не сохраняются и видны только в текущем соединении. BOOLEAN
has_primary_key true если этот объект таблицы определяет PRIMARY KEY. BOOLEAN
estimated_size Приблизительное число строк в таблице. BIGINT
column_count Количество столбцов, определённых этим объектом. BIGINT
index_count Количество индексов, связанных с этой таблицей. Это число включает все вторичные индексы, а также внутренние индексы, сгенерированные для поддержания PRIMARY KEY и/или UNIQUE ограничений. BIGINT
check_constraint_count Число ограничений CHECK, активных для столбцов в таблице. 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 «Каноническое» имя этого типа данных. Один и тот же logical_type может ссылаться на несколько типов, имеющих разные type_name. VARCHAR
type_category Категория, к которой принадлежит этот тип. Типы данных в одной категории обычно демонстрируют сходное поведение, когда значения этого типа используются в выражениях. Например, категория типа NUMERIC включает целые числа, десятичные и числа с плавающей точкой. VARCHAR
internal Внутренний (встроенный) или пользовательский объект. BOOLEAN

duckdb_variables

Функция duckdb_variables() предоставляет метаданные о переменных, доступных в экземпляре DuckDB.

Столбец Описание Тип
name Имя переменной, например, x. VARCHAR
value Значение переменной, например, 12. VARCHAR
type Тип переменной, например, INTEGER. VARCHAR

duckdb_views

Функция duckdb_views() предоставляет метаданные о представлениях, доступных в экземпляре DuckDB.

Column Описание Тип
database_name Имя базы данных, содержащей этот вид. VARCHAR
database_oid Внутренний идентификатор базы данных, содержащей этот вид. BIGINT
schema_name Имя схемы SQL, в которой находится вид. VARCHAR
schema_oid Внутренний идентификатор объекта схемы, содержащего вид. BIGINT
view_name Имя SQL объекта вида. VARCHAR
view_oid Внутренний идентификатор этого объекта вида. BIGINT
internal true если это внутренний (встроенный) вид, false если это пользовательский вид. BOOLEAN
temporary true если это временный вид. Временные виды не сохраняются и видны только в текущем подключении. BOOLEAN
column_count Количество столбцов, определенных этим объектом вида. BIGINT
sql Определение этого объекта, выраженное как SQL DDL-выражение. VARCHAR

Система information_schema.tables предоставляет более стандартизированный способ получения метаданных о представлениях базы данных, которые также включают базовые таблицы. Но результат, возвращаемый duckdb_views, также содержит определения внутренних объектов представления, а также несколько столбцов, которые не включены в information_schema.tables.

© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/sql/meta/duckdb_table_functions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API