Database EdgeDB er omdannet til Gel. Udgivelsen Gel 6.0

Udviklerne af database EdgeDB har annonceret omdækningen af projektet til Gel. Samtidig er der udgivet en ny betydelig version — Gel 6.0. Årsagen til navneskiftet nævnes som et ønske om at fjerne forvirrende konnotationer forårsaget af brugen af ordet "edge", da mange opfatter projektet som en database til edge computing eller som en graforienteret database. Omdøbningen berører kun brandets elementer. Projektets struktur, mål og team forbliver de samme. Værktøjer og biblioteker er blevet omdøbt i den nye version, men for at sikre bagudkompatibilitet er muligheden for at bruge de gamle navne bevaret gennem symbolske links og wrappers.

Projektet udvikles som et lag oven på PostgreSQL, som implementerer en relationelt-grafisk datamodel og forespørgselssproget EdgeQL, der er optimeret til arbejde med komplekse hierarkiske data. Koden er skrevet i Python og Rust (parser og performance-kritiske dele) og distribueres under Apache 2.0-licensen. Klientbiblioteker er tilgængelige for Python, Go, Rust, .NET, Elixir og TypeScript/Javascript. Der tilbydes et kommandolinjeværktøj til at administrere databasen og interaktivt udføre forespørgsler (REPL).

I Gel anvendes et deklarativt system baseret på objektte typer i stedet for en tabelbaseret datamodel. I stedet for udenlandske nøgler (foreign key) til at definere relationer mellem typer anvendes binding med links (et objekt kan bruges som en egenskab for et andet objekt).

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

Muligheder såsom streng typificering af egenskaber, begrænsninger for egenskabsværdier, beregnede egenskaber og gemte procedurer understøttes. Af særlige træk ved den objektbaserede lagringsskema Gel, som minder om ORM, bemærkes muligheden for at blande skemaer, binde egenskaber fra forskellige objekter og integreret støtte til JSON. Indekser kan anvendes til at fremskynde forespørgselsbehandlingen.

Indbyggede værktøjer til migrationsskema tilbydes — efter ændring af skemaet, der defineres i en separat esdl-fil, er det tilstrækkeligt at udføre kommandoen "gel migration create", og databasen analyserer forskellene i skemaet og genererer interaktivt et script til overgangen til det nye skema. Historikken for skemaændringer overvåges automatisk.

For query formation, the query language GraphQL and a custom EdgeQL language are supported, representing an adaptation of SQL for hierarchical data. Instead of lists, the results of the query are presented in a structured manner, and instead of subqueries and JOIN operations, it is possible to specify one EdgeQL query as an expression within another query. Transactions and loops are supported.

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’ } ) }

Main changes in Gel 6.0:

  • The ability to use traditional SQL queries when connecting to the DBMS using the Gel protocol or in PostgreSQL protocol mode has been added. It is expected that SQL support will simplify the migration to Gel of existing projects, which can now be gradually transitioned from SQL, while continuing to use old SQL clients and SQL ORM. Projects originally using EdgeQL will be able to leverage the additional capabilities available in SQL that have not yet been implemented in EdgeQL, such as window functions, recursive queries, and explicit locks.
  • Support for in-place updates has been added, which does not require creating and re-uploading the database dump when transitioning to a new major release. When upgrading from EdgeDB 5.x to Gil 6.0, the old method must be used, but transitioning from Gil 6.x to 7.0 will not require re-uploading the dump.
  • Statistical information about query performance, which is available through sys::QueryStats objects, has been retained.
  • Support for the PostgreSQL extension PostGIS for storing spatial data used in geographic information systems has been added.
  • The std::net library for sending network requests (HTTP supported) in asynchronous mode has been added.
  • In addition to ext::auth, support for configuring OpenID Connect providers has been added.
  • In addition to ext::ai, the list of supported large language models from OpenAI, Anthropic, and Mistral has been updated.
  • The ability to connect additional handlers for commands in the gel utility has been provided.
  • In EdgeQL, the semantics for finding paths between nodes in the graph have been simplified.
  • The "[[watch]]" setting has been added to gel.toml, allowing scripts to run when specified files change.
  • Support for Gel has been implemented in the ORM Drizzle.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster