Перейти к основному содержимому

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