Skip to content

open-sdbl 0.4.0

Choose a tag to compare

@dobpilot dobpilot released this 16 Sep 14:50
· 40 commits to main since this release

Первый публичный релиз с момента 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.