DBMS SQLite 3.42 eta DuckDB 0.8.0 kaleratzea. CG/SQL SQLite-rako gordetako prozeduren ezarpenarekin

SQLite 3.42 bertsioa argitaratu da, plug-in liburutegi gisa diseinatutako DBMS arina. SQLite kodea domeinu publikoan banatzen da, hau da. mugarik gabe eta doan erabil daiteke edozein helburutarako. SQLite garatzaileentzako laguntza ekonomikoa bereziki sortutako partzuergo batek eskaintzen du, Adobe, Oracle, Mozilla, Bentley eta Bloomberg bezalako enpresak barne hartzen dituena.

Aldaketa nagusiak:

  • FTS5 testu osoko indizeetarako, ezabatu seguruaren komandoa ezarri da, ezabatu ondoren hondar datu guztiak guztiz garbitzen dituena.
  • JSON datuak prozesatzeko funtzioek JSON5 luzapenak onartzen dituzte orain.
  • Kontsulten planifikatzailea hobetua. Lehenespenez, ikus-zenbakiaren optimizazioa gaituta dago. Azpikontsultetan erabiltzen ez diren zutabeen prozesamendua ezabatzen da. Push-down optimizazioaren ezarpen hobetua.
  • Komando-lerroko interfazeari "--unsafe-testing" aukera gehitu zaio, eta horrek komando arriskutsu batzuk erabiltzeko aukera ematen du, hala nola ".testctrl", probetan erabiltzeko pentsatua. Modu seguruan (“-safe”), “.log on” eta “.log off” komandoak erabiltzea onartzen da. “—” mugatzaileari euskarria gehitu zaio, aukera prozesatzea desgaitu ondoren argumentuetarako. Infinituarekin eta NaN balioekin lotutako ":inf" eta ":nan" parametroak gehitu dira.
  • Aplikazioek definitutako SQL funtzioen izenek GURUTZEA, OSOA, BARRUA, EZKER, NATURALA, KANPOA eta ESKUBIA gako-hitzak elkartzea ahalbidetzen dute.
  • PRAGMA integrity_check-en gaitasunak zabaldu dira. NOT NULL baldintza duten zutabeetan NaN balioak zehazteko egiaztapena gehitu da. Errore-mezuen informazio-edukia hobetu da.
  • Saioaren gehigarriak tauletako aldaketak atzematea ahalbidetzen du ROWID gabe.
  • "Subsec" modifikatzailea gehitu da orduak eta datak segundo zatiak erabiltzeko funtzioetan lan egiteko.
  • Array eta JSON objektuen errekurtsio-sakonera lehenetsia 2000tik 1000ra murriztu da.

Horrez gain, DuckDB 0.8.0 DBMS bertsioa sortu da, SQLite-ren bertsio bat garatzen duena, biltegiratutako datuen zati garrantzitsu bat estaltzen duten kontsulta analitikoak exekutatzeko gaitasun eta optimizazioekin hedatua, adibidez, eduki osoaren agregazioa eginez. taulak edo hainbat mahai handi batuz. SQL-ren dialekto hobetua eskaintzen du, oso kontsulta konplexuak eta denbora asko eskatzen dituztenak prozesatzeko gaitasun gehigarriak barne hartzen dituena, baita mota konplexuetarako laguntza ere (matrizeak, egiturak, batasunak), hainbat kontsulta aldi berean exekutatzeko eta CSV, JSON eta zuzenean kontsultak exekutatzeko. Parquet fitxategiak. Posible da PostgreSQL DBMStik inportatzea.

SQLite-ren shell kodeaz gain, proiektuak PostgreSQL-ren analizatzaile bat erabiltzen du beste liburutegi batean, MonetDB-ko Date Math osagaia, leiho-funtzioen inplementazio propioa (Segment Tree Aggregation algoritmoan oinarrituta), adierazpen erregular prozesadorea. RE2 liburutegia, bere kontsulta-optimizatzailea eta MVCC kontrol-mekanismoa zereginen aldibereko exekuzioa (Multi-Version Concurrency Control), baita Hyper-Pipelining Query Execution algoritmoan oinarritutako kontsulta exekutatzeko motor bektorializatu bat ere, balio multzo handiak ahalbidetzen dituena. eragiketa batean aldi berean prozesatu behar da. Proiektuaren kodea MIT lizentziapean banatzen da.

DuckDB-ren bertsio berrian:

  • "PIVOT" eta "UNPIVOT" esamolde berriak gehitu dira errenkadak zutabe bihurtzeko eta alderantziz.
  • Paralelizazioa hobetu da datuak inportatzean eta esportatzean. Lehenespenez, CSV fitxategietatik hari anitzeko irakurketa eta hari anitzeko idazketa ezartzen dira Parquet, CSV eta JSON formatuak erabiltzean.
  • "**" operadorea gehitu da fitxategien bideak zehazten direnean direktorioetan errekurtsiboki errepikatzeko (adibidez, FROM "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Eragiketak bateratzeko (JOIN) euskarria gehitu da denbora serie moduan (parametroen balioen xerrak denbora-tarte zehatzetan), zeinetan erregistroak batzeko irizpidea ez den balioen kointzidentzia zehatza, baizik eta gutxi gorabehera. denborarekin eremu batean (adibidez, erregistroak batu ditzakezu, minutu 1 baino gehiago ez duten denbora).
  • Datu-baseen metadatuen karga alferra inplementatu da, eta horri esker, DBMS abiarazte hamar aldiz bizkortu da.
  • Python-en funtzio pertsonalizatuak konektatzeko laguntza gehitu da.
  • Apache Arrow erabiliz datuak transferitzeko ADBC ​​(Arrow Database Connectivity) APIrako laguntza gehitu da.
  • Lotura bat ezarri da Swift kodearekin integratzeko.
  • Zatiketa-operadorearen portaera ("/") aldatu da lehenespenez osoko eragiketen ordez koma mugikorreko kalkuluak egiteko. Osoen zatiketa egiteko “//” eragile berri bat proposatzen da. Portaera zaharra itzul daiteke "SET integer_division=true;" ezarriz.
  • Ordenatzerakoan zero erregistroak kontuan hartzeko metodoa "NULLS FIRST"tik "NULLS LAST" izatera aldatu da, hau da. NULL balioak zerrendaren hasieran baino amaieran inprimatuko dira. Portaera zaharra itzul daiteke "SET default_null_order='nulls_first';" ezarriz.

Gainera, Facebook-ek garatutako CG/SQL proiektua nabarmentzen dugu, SQLite-rekin gordetako prozedurak erabiltzeko kode-sorgailu bat eskaintzen duena. CG/SQL-k gordetako prozedurak T-SQLren dialekto berezi batean idazteko aukera ematen du (Transact-SQL), eta horrek C liburutegi estandarreko funtzioak deitzeko eta SQLite-ko datuak atzitzeko aukera ematen du. Sortutako gordetako prozedurak SQLite C APIa erabiltzen duen C kodean biltzen dira zehaztutako ekintzak egiteko eta kontsulta konplexuak prozesatzeko. Biltegiratutako prozedurak C, Java eta Objective-C programetara konekta daitezke. Proiektuaren kodea C-n idatzita dago eta MIT lizentziapean banatzen da.

Iturria: opennet.ru

Gehitu iruzkin berria