Новые возможности и изменения в Celesta

6 views
Skip to first unread message

Ivan Ponomarev

unread,
Apr 19, 2018, 4:27:56 AM4/19/18
to curs-group
Коллеги,

сообщаю о новых возможностях и изменениях в Celesta, доступных как минимум со сборки №103.

Возможность дробления CelestaSQL-файлов и orm-модулей на несколько файлов


Большое изменение: score теперь имеет другой формат. Наличие в папке гранулы скрипта с названием _<имягранулы>.sql больше не является обязательным требованием: теперь в папке и её подпапках может быть произвольное количество произвольно именованных sql файлов. Обход этих файлов осуществляется в алфавитном порядке и в глубину. Celesta ожидает, что в первом из попавшихся ей при таком обходе файлов первой командой должна идти CREATE GRAIN (команда, "идемпотнентно создающая" гранулу), а в остальных -- SET GRAIN (команда, "переключающая контекст" на созданную ранее гранулу).


Под каждый из SQL-файлов генерируется файл с курсорами с названием <имя_файла>_orm.py. Таким образом, если гранулы имеют старый формат, то для вас ничего не поменяется. В то же время, с помощью такого дробления решается старая проблема со слишком длинными DDL-файлами.


И кстати, теперь ключевое слово GRAIN в языке CelestaSQL имеет синоним -- SCHEMA. Ведь по сути, гранула -- это SCHEMA и есть. Не секрет, что эти изменения производились для поддержки проекта 2bass.


Поддержка новых типов данных


В языке CelestaSQL поддерживаются два новых типа данных: число с фиксированной точкой DECIMAL(p,s) и дата с таймзоной DATETIME WITH TIME ZONE. При генерации курсоров им соответствуют объекты с типами java.math.BigDecimal и java.time.ZonedDateTime. Обновлённую сводную таблицу с типами данных можно посмотреть здесь.


Удаление поддержки функциональности IDENTITY


Сведения о ключевом слове IDENTITY в языке CelestaSQL удалены из WIKI. Эта функциональность не рекомендуется к использованию -- вместо неё везде следует использовать комбинацию SEQUENCE и DEFAULT NEXTVAL, как существенно более быструю на SQL Server и более техничную во всех остальных случаях. Со временем данная функциональность будет удалена вовсе, т. к. она блокирует развитие Celesta. В этой связи ещё раз напоминаю о необходимости апгрейда системных гранул, кейс http://jira.curs.ru:8090/browse/PK-61


Будущие планы


Активно идёт работа по созданию поддержки использования Celesta в 'pure Java'-проектах. Реализуется функциональность кодогенерации курсоров на Java и работы с Celesta-инфраструктурой в чистом Java-коде. Это то, что мы должны увидеть в ближайшие недели.


С уважением,


Иван Пономарёв


Reply all
Reply to author
Forward
0 new messages