Zhvilluesit e DBMS EdgeDB shpallĂ«n ndryshimin e emrit tĂ« projektit nĂ« Gel. NjĂ«kohĂ«sisht, Ă«shtĂ« formuar njĂ« version i ri i rĂ«ndĂ«sishĂ«m â Gel 6.0. Arsyeja e ndryshimit tĂ« emrit Ă«shtĂ« dĂ«shira pĂ«r tĂ« eliminuar konotacione tĂ« pasakta tĂ« shkaktuara nga pĂ«rdorimi i fjalĂ«s "edge", e cila ka bĂ«rĂ« qĂ« shumĂ« tĂ« pĂ«rceptojnĂ« projektin si njĂ« DBMS pĂ«r llogaritjet nĂ« skaj ose si njĂ« DBMS tĂ« orientuar ndaj grafike. Ndryshimi i emrit ka prekur vetĂ«m elementĂ«t e markĂ«s. Struktura e projektit, qĂ«llimet dhe ekipi kanĂ« mbetur tĂ« njĂ«jta. UtilitarĂ«t dhe bibliotekat nĂ« versionin e ri janĂ« riemĂ«ruar, por pĂ«r tĂ« siguruar pĂ«rputhshmĂ«rinĂ« prapa, Ă«shtĂ« ruajtur mundĂ«sia pĂ«r tĂ« pĂ«rdorur emrat e vjetĂ«r pĂ«rmes lidhjeve simbolike dhe mbĂ«shtetjes.
Projekti zhvillohet si një shtesë mbi PostgreSQL, duke implementuar modelin relacional-grafik të të dhënave dhe gjuhën e pyetjeve EdgeQL, të optimizuar për punë me të dhëna hierarkike të komplikuara. Kodi është shkruar në gjuhët Python dhe Rust (parser dhe pjesët kritike për performancën), dhe shpërndahet nën licencën Apache 2.0. Bibliotekat për klientët janë përgatitur për gjuhët Python, Go, Rust, .NET, Elixir dhe TypeScript/Javascript. Ofrohet një mjet komandash për menaxhimin e DBMS-së dhe ekzekutimin interaktiv të pyetjeve (REPL).
Në Gel zbatohet një sistem deklarativ i bazuar në tipe objektesh, në vend të modelit të të dhënave të bazuar në tabela. Në vend të çelësave të jashtëm (foreign key) për të përcaktuar lidhjet midis tipeve, përdoret lidhja me referenca (një objekt mund të përdoret si një pronë e një objekti tjetër).
type Person { required name: str; } type Movie { required title: str; multi actors: Person; }
Përkrahje e mundësive si tipizimi i rreptë i pronave, kufizimet e vlerave të pronave, pronat e llogaritura dhe procedurat e ruajtura. Nga veçoritë e skemës objektive të ruajtjes në Gel, e cila ngjan disi me ORM, vlen të theksohet mundësia e përzierjes së skemave, lidhjes së pronave nga objekte të ndryshme dhe mbështetje e integruar për JSON. Për të përshpejtuar përpunimin e pyetjeve, mund të përdoren indekset.
Ofrohen mjete tĂ« integruara pĂ«r migrimin e skemĂ«s sĂ« ruajtjes â pas ndryshimit tĂ« skemĂ«s, e cila pĂ«rcaktohet nĂ« njĂ« skedar tĂ« veçantĂ« esdl, mjafton tĂ« kryhet komanda "gel migration create" dhe DBMS do tĂ« analizojĂ« diferencat nĂ« skemĂ« dhe nĂ« mĂ«nyrĂ« interaktive do tĂ« gjenerojĂ« njĂ« skenar pĂ«r kalimin nĂ« skemĂ«n e re. Historia e ndryshimeve tĂ« skemĂ«s ndiqet automatikisht.
Për formimin e pyetjeve mbështetet gjuhë pyetjesh GraphQL dhe gjuhë e vetme EdgeQL, e cila përfaqëson një adaptim të SQL për të dhëna hierarkike. Në vend të listave, rezultatet e pyetjeve paraqiten në një formë të strukturuar, dhe në vend të nënpyetjeve dhe operacioneve JOIN, ofrohet mundësia e specifikimit të një pyetje EdgeQL si një shprehje brenda një pyetje tjetër. Janë mbështetur transaksionet dhe ciklet.
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â } ) }
Ndryshimet kryesore në Gel 6.0:
- Shtuar mundësia e përdorimit të pyetjeve tradicionale SQL kur lidhemi me DBMS përmes protokollit Gel ose në mënyrë protokolli PostgreSQL. Parashihet se mbështetje e SQL do të thjeshtojë migrimin në Gel të projekteve ekzistuese, që tani mund të kalojnë gradualisht nga SQL, duke vazhduar të përdorin klientët e vjetër SQL dhe SQL ORM. Projektet, që fillimisht përdorin EdgeQL, do të jenë në gjendje të shfrytëzojnë mundësitë shtesë, që janë në SQL, por ende nuk janë realizuar në EdgeQL, si funksionet e dritarave, pyetjet rekursive dhe bllokimet e qarta.
- Shtuar mbështetje për përditësimin në vend, që nuk kërkon krijimin dhe ngarkimin e një dump-i të DB-së gjatë kalimit në një version të ri të rëndësishëm. Në përditësimin nga EdgeDB 5.x në Gel 6.0 do të duhet të përdoret metoda e vjetër, por gjatë kalimit nga Gel 6.x në 7.0 nuk do të nevojitet ngarkimi i dump-it.
- Siguruar ruajtja e statistikave për performancën e pyetjeve, të cilat janë të disponueshme përmes objekteve sys::QueryStats.
- Shtuar mbështetje për zgjerimin PostGIS të PostgreSQL për ruajtjen e të dhënave hapësinore, që përdoren në sistemet e informacionit gjeografik.
- Shtuar biblioteka std::net për dërgimin e kërkesave rrjetësore (mbështetet HTTP) në mënyrë asinkrone.
- Shtuar mbështetje e konfiguruar për furnizues OpenID Connect, përveç ext::auth.
- Në përkushtimin ext::ai është përditësuar lista e modeleve të mëdha të gjuhës të mbështetura nga OpenAI, Anthropic dhe Mistral.
- Ofruar mundësia e lidhjes së menaxherëve të tjerë për komandat në utilitarin gel.
- Në EdgeQL është thjeshtuar semantika për gjetjen e rrugëve ndërmjet nyjave të grafit.
- Në gel.toml është shtuar konfigurimi «[[watch]]», që lejon ekzekutimin e skriptëve kur ndryshojnë skedarët e caktuar.
- Në ORM Drizzle është realizuar mbështetje për Gel.
Burimi: opennet.ru
