Перейти к содержанию

Системные функции

Picodata поддерживает следующий набор системных SQL-функций.

INSTANCE_UUID

Скалярная функция instance_uuid позволяет узнать uuid инстанса, на котором выполняется запрос. Разрешено использовать только в проекциях.

Внимание

Функция instance_uuid объявлена устаревшей и будет удалена в следующих релизах Picodata. Используйте вместо нее pico_instance_uuid

Синтаксис

INSTANCE_UUID ( )

Примеры использования

SELECT instance_uuid();

PICO_INSTANCE_UUID

Скалярная функция pico_instance_uuid позволяет узнать текстовое значение UUID инстанса, на котором выполняется запрос. Разрешено использовать только в проекциях.

Синтаксис

PICO_INSTANCE_UUID ( )

Пример использования

SELECT pico_instance_uuid();

вернет значение UUID текущего инстанса.

PICO_INSTANCE_NAME

Скалярная функция pico_instance_name позволяет узнать имя инстанса, предоставив текстовое значение его UUID. Функция вернет NULL если инстанс с указанным значением UUID не существует.

Синтаксис

PICO_INSTANCE_NAME ( text )

Пример использования

SELECT pico_instance_name(pico_instance_uuid());

вернет имя инстанса, на котором выполняется запрос.

PICO_REPLICASET_NAME

Скалярная функция pico_replicaset_name позволяет узнать имя репликасета, к которому относится текущий инстанс, предоставив текстовое значение его UUID.

Синтаксис

PICO_REPLICASET_NAME ( text )

Примеры использования

Универсальный пример
SELECT pico_replicaset_name(pico_instance_uuid());
Пример для bd2eff94-9c4f-4526-a3b6-3c379b7e2c4a
SELECT pico_replicaset_name('bd2eff94-9c4f-4526-a3b6-3c379b7e2c4a');

вернет имя репликасета, участником которого является текущий инстанс.

PICO_TIER_NAME

Скалярная функция pico_tier_name позволяет узнать имя тира, к которому относится текущий инстанс, предоставив текстовое значение его UUID.

Синтаксис

PICO_TIER_NAME ( text )

Примеры использования

Универсальный пример
SELECT pico_tier_name(pico_instance_uuid());
Пример для bd2eff94-9c4f-4526-a3b6-3c379b7e2c4a
SELECT pico_tier_name('bd2eff94-9c4f-4526-a3b6-3c379b7e2c4a');

вернет имя тира, участником которого является текущий инстанс.

PICO_INSTANCE_DIR

Скалярная функция pico_instance_dir позволяет узнать абсолютный или относительный путь к рабочей директории инстанса (в зависимости от конфигурации запуска), предоставив текстовое значение его UUID. В случае, если рабочая директория не была задана явно, функция вернет полный путь к расположению, из которого был запущен инстанс.

Разрешено использовать только в проекциях.

Внимание

Функция возвращает путь к рабочей директории инстанса, даже если он более не существует (например, директория была удалена). Существование пути не валидируется — это должен выполнить администратор самостоятельно.

Синтаксис

PICO_INSTANCE_DIR ( text )

Примеры использования

Универсальный пример
SELECT pico_instance_dir(pico_instance_uuid());
Пример для bd2eff94-9c4f-4526-a3b6-3c379b7e2c4a
SELECT pico_instance_dir('bd2eff94-9c4f-4526-a3b6-3c379b7e2c4a');

вернет путь к рабочей директории инстанса.

PICO_CONFIG_FILE_PATH

Скалярная функция pico_config_file_path позволяет узнать полный путь к файлу конфигурации инстанса, предоставив текстовое значение его UUID. Функция вернет NULL если при запуске инстанса не использовался файл конфигурации.

Разрешено использовать только в проекциях.

Синтаксис

PICO_CONFIG_FILE_PATH ( text )

Примеры использования

Универсальный пример
SELECT pico_config_file_path(pico_instance_uuid());
Пример для bd2eff94-9c4f-4526-a3b6-3c379b7e2c4a
SELECT pico_config_file_path('bd2eff94-9c4f-4526-a3b6-3c379b7e2c4a');

вернет путь к использованному файлу конфигурации или NULL.

PICO_RAFT_LEADER_ID

Скалярная функция pico_raft_leader_id позволяет узнать идентификатор лидера raft-группы (значение поля raft_id из таблицы _pico_peer_address). Поскольку распространение изменений по кластеру занимает время, в случае смены лидера функция может возвращать разные значения при подключении к разным узлам.

Разрешено использовать только в проекциях.

Синтаксис

PICO_RAFT_LEADER_ID ( )

Примеры использования

SELECT pico_raft_leader_id();

Следующий запрос выведет имя узла, являющегося лидером:

SELECT name FROM _pico_instance WHERE raft_id IN (SELECT pico_raft_leader_id());

PICO_RAFT_LEADER_UUID

Скалярная функция pico_raft_leader_uuid возвращает текстовое значение UUID лидера raft-группы. Поскольку распространение изменений по кластеру занимает время, в случае смены лидера функция может возвращать разные значения при подключении к разным узлам.

Разрешено использовать только в проекциях.

Синтаксис

PICO_RAFT_LEADER_UUID ( )

Пример использования

SELECT pico_raft_leader_uuid();

VERSION

Скалярная функция version позволяет узнать версию Picodata инстанса, на котором выполняется запрос. Разрешено использовать только в проекциях.

Синтаксис

VERSION ( )

Примеры использования

Вызов функции не требует привилегий и таблиц, поэтому запрос:

SELECT version();

вернет полную версию инстанса, к которому подключена текущая сессия.