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

Типы данных

Каждый тип в Picodata в дополнение к поддерживаемым значениям позволяет хранить NULL (UNKNOWN в терминологии троичной логики).

Типы данных в Picodata делятся на две категории:

  • Базовые типы — фундаментальные типы, которые можно использовать везде (в определениях таблиц, определениях процедур, кастах и т.д.)

  • Доменные типы — специализированные типы, построенные на основе базовых с добавлением ограничений

    • На данный момент поддерживаются только в DDL (определение таблиц)

    • В DQL/DML (запросы и модификация данных) доменные типы не разрешены

Базовые типы

На данный момент в Picodata поддерживаются следующие базовые типы:

BOOLEAN

Логический тип данных, поддерживаемые значения: FALSE и TRUE. По правилам сравнения FALSE меньше TRUE.

Синонимы: BOOLEAN, BOOL.

DECIMAL

Числа с фиксированной запятой, содержащие до 38 цифр и принимающие значения в диапазоне от -99999999999999999999999999999999999999 до 99999999999999999999999999999999999999;

Примечание

Тип NUMERIC, поддерживаемый в клиентах PostgreSQL, будет приведен в Picodata к типу DECIMAL. Ограничения PostgreSQL на количество знаков в целой и дробной части будут проигнорированы.

DOUBLE

Числа с плавающей запятой стандарта IEEE 754, принимающие значения в диапазоне от -1.79769E308 до 1.79769E308. Помимо стандартной записи дробного числа (например, 0.5) поддерживается и экспоненциальная форма (например, 5E-1).

INTEGER

Целые числа в диапазоне от −9223372036854775808 до +18446744073709551615.

Синонимы: INTEGER, INT.

Примечание

Типы INT2, INT4, INT8, SMALLINT, BIGINT, поддерживаемые в клиентах PostgreSQL, будут приведены в Picodata к типу INT.

JSON

Тип JSON предназначен для хранения данных JSON (JavaScript Object Notation, Запись объекта JavaScript) согласно стандарту RFC-7159.

Примечание

На данный момент тип JSON для колонки можно указать только при создании таблицы. Операции DML/DQL с типом JSON пока не поддерживаются.

TEXT

Текстовый тип данных. Позволяет хранить текстовую строку переменной длины. Максимальная длина составляет 2,147,483,647 байт.

Синонимы: TEXT, STRING.

UUID

Тип универсального уникального идентификатора. Позволяет хранить 32 шестнадцатеричные цифры. Текстовое представление UUID — это строка, разделенная дефисами на пять групп в формате 8-4-4-4-12 (например, 102be9bf-215f-4180-b4c9-cc11983e988d).

VARCHAR

Текстовый тип данных с явно заданной длиной строки.

DATETIME

Тип данных для хранения даты и времени. Диапазон корректных значений даты и времени должен находиться между -9999-12-31 23:59:59 и 9999-12-31 23:59:59. Данный тип соответствует международному стандарту формата даты и времени (ISO 8601) в части RFC-3339. Для указания часового пояса следует использовать смещение от -12 до +14 относительно UTC. Допускается несколько вариантов записи, в том числе с указанием минут (от 0 до 59). Примеры допустимых значений:

  • 2025-10-18 02:59:59Z (нет смещения, Z означает зону UTC)
  • 2025-10-18 02:59:59 +1 (смещение на 1 час к востоку)
  • 2025-10-18 02:59:59 -01:00 (смещение на 1 час к западу)
  • 2025-10-18 02:59:59 +1245 (смещение на 12 часов 45 минут к востоку)

При некорректном вводе смещения, оно будет отсечено; значение времени при этом сохранится для зоны UTC.

Доменные типы

Следующие типы могут использоваться только при определении колонок таблиц:

UNSIGNED

Тип целого беззнакового числа в диапазоне от 0 до +18446744073709551615. Другими словами — базовый тип INTEGER и ограничение >= 0.

См. также: