Repository navigation
open-sdbl 0.4.0
Первый публичный релиз с момента 0.3.6: 62 промежуточные версии, 72 изменения поведения, каждое — со своей спецификацией OpenSpec и сверкой с платформой 1С.
Язык запросов
Корпус реальных запросов демо-конфигурации компилируется на 377 из 381 — остальные четыре отказа платформа разделяет либо они защищают от заведомо неверного ответа.
- Табличная часть как колонка выборки.
Д.Товары,Д.Товары.(Поле, …)иД.Товары.*возвращаются вложенным результатом: главный оператор плюс по одному вложенному на секцию, со структурной связью по ссылке владельца. Замерено, что платформа отвечает так же — через временную таблицу ключей. ПОЛНОЕ СОЕДИНЕНИЕ→ нативныйFULL JOIN: снят запрет на цепочку, агрегаты и группировку, разыменование вПОвыносится внутрь своей стороны.- Элемент списка через запятую присоединяется целиком — прежний плоский рендер давал неверный ответ для внешних соединений внутри элемента.
- Разыменование любой глубины, в том числе через составные ссылки; цели берутся из описания типа в
Config, категории ссылок — из платформенных констант. ИТОГИ … ПО(включаяОБЩИЕ,ИЕРАРХИЯ,ТОЛЬКО ИЕРАРХИЯ), виртуальные таблицы регистров (срезы, остатки, обороты,ОстаткиИОборотыс периодичностью), журналы документов, критерии отбора,КонстантыиКонстанта.<Имя>.- Условие по колонке табличной части компилируется в коррелированный
EXISTS;В ИЕРАРХИИпринимает составную ссылку;ПРЕДСТАВЛЕНИЕберётся от агрегата и отВЫБОРс разнотипными ветвями. - Функции дат и строк,
ТИП/ТИПЗНАЧЕНИЯ/НЕОПРЕДЕЛЕНО,ССЫЛКА,МЕЖДУ,ВЫРАЗИТЬ, параметры запроса и сеанса, разделители данных, ограничения доступаРАЗРЕШЕННЫЕ, временные таблицы.
Публичный API
CompiledQuery помечен #[non_exhaustive] и получил nested — вложенные результаты табличных частей со связью, описанной данными, а не текстом SQL, — и service_columns. Добавлен тип NestedResult. Генерируемый PostgreSQL рассчитан на версию 13 и новее.
CLI
Сессия MSSQL больше не опрашивает сервер перед чтением: права учётной записи и уровень изоляции — решение администратора, а компилятор порождает только SELECT. Read-only application intent, транзакция вокруг чтения и её откат сохранены.
Приложение разобрано по модулям: точка входа, контроллер команд, фасад сессии, консоль из восьми модулей и по три модуля на провайдера. Тесты вынесены в отдельный каталог.
Проверки
Три независимые сети: голдены компиляции, 256 проб против живой платформы 8.3.27 (расхождений нет) и исполнение всего корпуса на настоящей базе PostgreSQL. CI собирает релиз, выкладывает архив исходников и исполняемый файл для Windows MSVC.