Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Data types

Goal

Справочник поддерживаемых типов данных AngaraBase и правила приведения типов.

Supported types

SQL typeAliasStorageNotes
INTEGERINT, INT432-bit signedPrimary numeric type
BIGINTINT864-bit signedLarge counters, IDs
VARCHAR(n)Variable-length textBounded by n characters
TEXTVariable-length textUnbounded text
BOOLEANBOOL1-byteTRUE / FALSE / NULL (OID 16)
TIMESTAMPText-backed compatISO 8601 UTC (OID 1114)
DATEText-backed compatISO 8601 date portion (OID 1082)

Text-backed temporal types

TIMESTAMP и DATE хранятся в text-backed compatibility mode. Это означает:

  • Сравнения выполняются как текстовые (лексикографические); ISO 8601 формат гарантирует корректный порядок.
  • Serialization (RM-0.6.5.5): TIMESTAMP всегда сериализуется в UTC без смещения (например, 2026-05-07 14:30:00.123). Трейлинг-нули микросекунд обрезаются.
  • Арифметика (INTERVAL и пр.) не поддерживается — 0A000.
  • BRIN-индексы на date / timestamp / timestamptz колонках поддерживаются (используют текстовые min/max).

Planned types

SQL typeStatus
DECIMAL / NUMERICPlanned
UUIDPlanned

Попытка использовать неподдерживаемый тип приведёт к ошибке парсера или 0A000 feature_not_supported.

NULL handling

  • Все типы допускают NULL, если колонка не объявлена как NOT NULL.
  • В ORDER BY ASC значения NULL трактуются как наибольшие (выводятся последними).
  • Явное управление NULLS FIRST / NULLS LAST не поддерживается — 0A000.

Type casting

AngaraBase поддерживает PostgreSQL-синтаксис приведения типов:

SELECT '42'::INTEGER;
SELECT id::TEXT FROM t;

Приведение между несовместимыми типами приводит к runtime-ошибке с соответствующим SQLSTATE.

Expected SQLSTATE

СитуацияSQLSTATE
Неподдерживаемый тип в DDL0A000
INTERVAL арифметика0A000
NULLS FIRST / NULLS LAST0A000
Невалидный castRuntime error