Системные функции¶
Picodata поддерживает следующий набор системных SQL-функций.
INSTANCE_UUID¶
Скалярная функция instance_uuid позволяет узнать uuid инстанса, на котором
выполняется запрос. Разрешено использовать только в проекциях.
Внимание
Функция instance_uuid объявлена
устаревшей и будет удалена в следующих релизах Picodata. Используйте
вместо нее pico_instance_uuid
Синтаксис
Примеры использования
SELECT instance_uuid();
PICO_INSTANCE_UUID¶
Скалярная функция pico_instance_uuid позволяет узнать текстовое
значение UUID инстанса, на котором выполняется запрос. Разрешено
использовать только в проекциях.
Синтаксис
Пример использования
SELECT pico_instance_uuid();
вернет значение UUID текущего инстанса.
PICO_INSTANCE_NAME¶
Скалярная функция pico_instance_name позволяет узнать имя инстанса,
предоставив текстовое значение его UUID. Функция вернет NULL если инстанс с
указанным значением UUID не существует.
Синтаксис
Пример использования
SELECT pico_instance_name(pico_instance_uuid());
вернет имя инстанса, на котором выполняется запрос.
PICO_REPLICASET_NAME¶
Скалярная функция pico_replicaset_name позволяет узнать имя репликасета, к
которому относится текущий инстанс, предоставив текстовое значение его UUID.
Синтаксис
Примеры использования
SELECT pico_replicaset_name(pico_instance_uuid());
SELECT pico_replicaset_name('bd2eff94-9c4f-4526-a3b6-3c379b7e2c4a');
вернет имя репликасета, участником которого является текущий инстанс.
PICO_TIER_NAME¶
Скалярная функция pico_tier_name позволяет узнать имя тира, к
которому относится текущий инстанс, предоставив текстовое значение его UUID.
Синтаксис
Примеры использования
SELECT pico_tier_name(pico_instance_uuid());
SELECT pico_tier_name('bd2eff94-9c4f-4526-a3b6-3c379b7e2c4a');
вернет имя тира, участником которого является текущий инстанс.
PICO_INSTANCE_DIR¶
Скалярная функция pico_instance_dir позволяет узнать абсолютный или
относительный путь к рабочей директории инстанса (в зависимости от
конфигурации запуска), предоставив текстовое значение его UUID. В случае,
если рабочая директория не была задана явно, функция вернет полный путь к
расположению, из которого был запущен инстанс.
Разрешено использовать только в проекциях.
Внимание
Функция возвращает путь к рабочей директории инстанса, даже если он более не существует (например, директория была удалена). Существование пути не валидируется — это должен выполнить администратор самостоятельно.
Синтаксис
Примеры использования
SELECT pico_instance_dir(pico_instance_uuid());
SELECT pico_instance_dir('bd2eff94-9c4f-4526-a3b6-3c379b7e2c4a');
вернет путь к рабочей директории инстанса.
PICO_CONFIG_FILE_PATH¶
Скалярная функция pico_config_file_path позволяет узнать полный путь к файлу
конфигурации инстанса, предоставив текстовое значение его UUID. Функция
вернет NULL если при запуске инстанса не использовался файл конфигурации.
Разрешено использовать только в проекциях.
Синтаксис
Примеры использования
SELECT pico_config_file_path(pico_instance_uuid());
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). Поскольку распространение изменений по кластеру занимает время,
в случае смены лидера функция может возвращать разные значения при подключении к разным узлам.
Разрешено использовать только в проекциях.
Синтаксис
Примеры использования
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-группы. Поскольку распространение изменений по кластеру занимает
время, в случае смены лидера функция может возвращать разные значения при
подключении к разным узлам.
Разрешено использовать только в проекциях.
Синтаксис
Пример использования
SELECT pico_raft_leader_uuid();
VERSION¶
Скалярная функция version позволяет узнать версию Picodata инстанса,
на котором выполняется запрос. Разрешено использовать только в
проекциях.
Синтаксис
Примеры использования
Вызов функции не требует привилегий и таблиц, поэтому запрос:
SELECT version();
вернет полную версию инстанса, к которому подключена текущая сессия.