Data types
Goal
Справочник поддерживаемых типов данных AngaraBase и правила приведения типов.
Supported types
| SQL type | Alias | Storage | Notes |
|---|---|---|---|
INTEGER | INT, INT4 | 32-bit signed | Primary numeric type |
BIGINT | INT8 | 64-bit signed | Large counters, IDs |
VARCHAR(n) | — | Variable-length text | Bounded by n characters |
TEXT | — | Variable-length text | Unbounded text |
BOOLEAN | BOOL | 1-byte | TRUE / FALSE / NULL (OID 16) |
TIMESTAMP | — | Text-backed compat | ISO 8601 UTC (OID 1114) |
DATE | — | Text-backed compat | ISO 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 type | Status |
|---|---|
DECIMAL / NUMERIC | Planned |
UUID | Planned |
Попытка использовать неподдерживаемый тип приведёт к ошибке парсера или 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 |
|---|---|
| Неподдерживаемый тип в DDL | 0A000 |
INTERVAL арифметика | 0A000 |
NULLS FIRST / NULLS LAST | 0A000 |
| Невалидный cast | Runtime error |
Links
- SQL compatibility overview: overview.md
- DDL (CREATE TABLE с типами): ddl.md
- Known issues: Known issues