СУБД EdgeDB е преименувана на Gel. Издание на Gel 6.0

Разработчиците на СУБД EdgeDB обявиха за преименуването на проекта в Gel. В същото време бе оформен нов важен релийз — Gel 6.0. Причината за смяната на името е желанието да се избегнат заблуждаващи конотации, породени от използването на думата „edge“, което води до възприемането на проекта като СУБД за edge изчисления или като графо-ориентирована СУБД. Преименуването засяга единствено елементите на бранда. Структурата на проекта, целите и екипът остават същите. Утилитите и библиотеките в новото издание са преименувани, но за осигуряване на обратна съвместимост е запазена възможността за използване на старите имена чрез символични връзки и обвивки.

Проектът се развива под формата на надстройка над PostgreSQL, реализираща релационно-графова модел на данни и език за заявки EdgeQL, оптимизиран за работа със сложни йерархични данни. Кодът е написан на Python и Rust (парсер и критични за производителността части) и се разпространява под лицензия Apache 2.0. Подготвени са клиентски библиотеки за Python, Go, Rust, .NET, Elixir и TypeScript/Javascript. Предоставя се инструментарий за команден ред за управление на СУБД и интерактивно изпълнение на заявки (REPL).

Вместо модел на данни, базиран на таблици, Gel прилага декларативна система, базирана на обектни типове. Вместо външни ключове (foreign key) за определяне на връзките между типовете, се използва свързване чрез референции (един обект може да се използва като собственост на друг обект).

type Person { required name: str; } type Movie { required title: str; multi actors: Person; }

Поддържат се функции като строга типизация на свойствата, ограничения на стойностите на свойствата, изчисляеми свойства и храниме процедури. От особеностите на обектната схема за съхранение в Gel, която наподобява ORM, се отличава възможността за смесване на схеми, свързване на свойства от различни обекти и интегрирана поддръжка на JSON. За ускоряване на обработката на заявки могат да се използват индекси.

Предоставят се вградени инструменти за миграция на схемата за съхранение — след промяна на схемата, зададена в отделен esdl-файл, е достатъчно да се изпълни командата «gel migration create» и СУБД ще анализира разликите в схемата и интерактивно ще генерира скрипт за преход към новата схема. Автоматично се следи историята на промените в схемата.

За формирането на запитвания се поддържа езикът за запитвания GraphQL и собствен език EdgeQL, представляващ адаптация на SQL за йерархични данни. Вместо списъци, резултатите от запитванията се оформят в структурирана форма, а вместо подзапитвания и операции JOIN се предоставя възможност за указване на едно EdgeQL запитване като израз в рамките на друго запитване. Поддържат се транзакции и цикли.

select Movie { title, actors: { name } } filter .title = «The Matrix» insert Movie { title := «The Matrix Resurrections», actors := ( select Person filter .name in { ‘Keanu Reeves’, ‘Carrie-Anne Moss’, ‘Laurence Fishburne’ } ) }

Основни промени в Gel 6.0:

  • Добавена е възможността за използване на традиционни SQL-запитвания при свързване с СУБД чрез протокола Gel или в режим на протокол PostgreSQL. Предполага се, че поддръжката на SQL ще улесни миграцията към Gel на съществуващи проекти, които сега могат постепенно да бъдат преведени от SQL, продължавайки да използват стари SQL-клиенти и SQL ORM. Проектите, които първоначално използват EdgeQL, ще могат да използват допълнителните възможности, налични в SQL, но все още не реализирани в EdgeQL, като прозоречни функции, рекурсивни запитвания и явни блокировки.
  • Добавена е поддръжка за актуализация на място, която не изисква създаване и повторно качване на дампа на БД при прехвърляне на ново значително издание. При актуализиране от EdgeDB 5.x до Gil 6.0 е необходимо да се използва старият метод, но при прехвърляне на c Gil 6.x на 7.0 повторното качване на дампа няма да е необходимо.
  • Осигурено е запазването на статистика за производителността на запитванията, която е достъпна чрез обектите sys::QueryStats.
  • Добавена е поддръжка на PostgreSQL-разширение PostGIS за съхранение на пространствени данни, използвани в географските информационни системи.
  • Добавена е библиотеката std::net за изпращане на мрежови запитвания (поддържа се HTTP) в асинхронен режим.​
  • В допълнение към ext::auth е добавена поддръжка за настройка на доставчици OpenID Connect.
  • В допълнението ext::ai​ е актуализиран списъкът на поддържаните големи езикови модели от OpenAI, Anthropic и Mistral.
  • Предоставена е възможността за свързване на допълнителни обработвачи за команди в утилитата gel.
  • В EdgeQL семантиката за намиране на пътища между възли на графа е опростена.
  • В gel.toml е добавена настройка «[[watch]]», позволяваща стартиране на скриптове при промяна на указаните файлове.
  • В ORM Drizzle е реализирана поддръжка на Gel.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster