PostgreSQL
Этот раздел посвящен библиотеке для работы с базами данных PostgreSQL. На данной странице описаны все действия, необходимые для полноценного начала работы
О реализованных методах
Данная библиотека состоит из двух частей: основных методов, вроде подключения и выполнения SQL-запросов, и небольшой ORM для часто встречающихся операций, вроде CREATE, SELECT, INSERT, DELETE и пр. Работа через ORM и через тексты запросов, выполняемые функцией ВыполнитьЗапросSQL()
, технически не отличается: ORM просто формирует текст SQL-запроса на основе макетов, но далее также выполняет их этой функцией
По умолчанию, все запросы SELECT возвращают массив выбранных данных, а остальные запросы - только true
в поле result
при успехе, либо false
и текст ошибки в полях result
и error
соответственно. Для выполнения запросов, требующих возврата данных, но не являющихся запросами SELECT, в функции ВыполнитьЗапросSQL()
есть параметр ФорсироватьРезультат
Параметры запросов
Коннектор PostgreSQL поддерживает использование позиционных параметров. Все значения, передаваемые как при прямом выполнении запросов через функцию ВыполнитьЗапросSQL()
, так и в ORM методах с установкой значений, вроде ДобавитьЗаписи
и ОбновитьЗаписи
, должный представлять из себя структуру вида {'Тип данных': 'Значение'}
. Поддерживаются следующие типы данных:
🟢 - Реализовано, проверено; 🟡 - Реализовано, не проверено
Тип | Поддержка | Синонимы | Допустимые нативные типы |
---|---|---|---|
BOOL | 🟢 | - | Булево |
"char" | 🟢 | OLDCHAR | Число |
SMALLINT | 🟢 | - | Число |
SMALLSERIAL | 🟢 | - | Число |
INT | 🟢 | - | Число |
SERIAL | 🟢 | - | Число |
BIGINT | 🟢 | - | Число |
BIGSERIAL | 🟢 | - | Число |
OID | 🟢 | - | Число |
REAL | 🟢 | - | Число |
DOUBLE PRECISION | 🟢 | DOUBLE_PRECISION | Число |
VARCHAR | 🟢 | - | Строка |
TEXT | 🟢 | - | Строка |
CHAR | 🟢 | - | Строка |
CITEXT | 🟢 | - | Строка |
NAME | 🟢 | - | Строка |
INET | 🟢 | - | Строка |
UUID | 🟢 | - | Строка, УникальныйИдентификатор |
TIMESTAMP | 🟢 | - | Дата, Строка (ISO 8601, RFC 3339) |
TIMESTAMP WITH TIME ZONE | 🟢 | TIMESTAMP_WITH_TIME_ZONE | Дата (часовой пояс будет указан как UTC), Строка (RFC 3339) |
DATE | 🟢 | - | Дата (с любым временем), Строка (ISO 8601, RFC 3339) |
TIME | 🟢 | - | Дата (с любой датой), Строка (ISO 8601, RFC 3339) |
BYTEA | 🟢 | - | ДвоичныеДанные, Путь к файлу, Base64 строка (все приводится к Base64 строке) |
JSON | 🟢 | - | Массив, Структура, Соответствие, Строка (в JSON формате) |
JSONB | 🟢 | - | Массив, Структура, Соответствие, Строка (в JSON формате) |
LTREE | 🟡 | - | Строка |
LQUERY | 🟡 | - | Строка |
LTXTQUERY | 🟡 | - | Строка |
HSTORE | 🟡 | - | Структура, Соответствие |
Аналогичный список типов доступен и для получения в качестве результатов запросов из PostgreSQL
Совместимость
Технически, реализация коннектора представляет из себя Native компоненту на Rust. Она поставляется в формате zip-архива со сборками для всех основных платформ: x86 и x64 Windows и Linux. Фактическое тестирование проводилось на Windows x64 и, косвенно (через OneScript), на Linux x64