Udgivelse af databasesystemet SQLite 3.42 og DuckDB 0.8.0. CG/SQL med implementation af gemte procedurer til SQLite.

SQLite 3.42 er udgivet, en letvægtsdatabase som er tilgængelig som et tilsluttet bibliotek. SQLite-koden distribueres som offentlig ejendom, dvs. den kan anvendes uden begrænsninger og uden beregning til enhver form for brug. Den økonomiske støtte til udviklerne af SQLite leveres af et særligt oprettet konsortium, som inkluderer virksomheder som Adobe, Oracle, Mozilla, Bentley og Bloomberg.

Vigtige ændringer:

  • For fuldtekstindeksering har FTS5 implementeret kommandoen secure-delete, der renser alle resterende data efter sletning.
  • I funktionerne til behandling af data i JSON-format er der implementeret støtte til JSON5-udvidelser.
  • Spørgsmålplanlæggeren er blevet forbedret. Som standard er optimeringen "count-of-view" aktiveret. Behandling af ubrugte kolonner i underforespørgsler er blevet udelukket. Implementeringen af push-down-optimering er blevet forbedret.
  • I kommandolinjegrænsefladen er tilføjet en mulighed "—unsafe-testing", der tillader brug af visse farlige kommandoer som ".testctrl", beregnet til brug i test. I sikker tilstand ("—safe") er brugen af kommandoerne ".log on" og ".log off" tilladt. Der er tilføjet understøttelse af separatoren "—", hvorefter optionsbehandling deaktiveres for argumenter. Tilføjet er parametrene ":inf" og ":nan", relateret til værdierne uendelighed og NaN.
  • I SQL-funktioner defineret på applikationssiden er krydsning med nøgleordene CROSS, FULL, INNER, LEFT, NATURAL, OUTER og RIGHT tilladt.
  • Mulighederne for PRAGMA integrity_check er blevet udvidet. Der er tilføjet kontrol for angivelse af NaN-værdi i kolonner med betingelsen NOT NULL. Fejlmeddelelserne er blevet mere informative.
  • I supplementet session tillades opfangning af ændringer fra tabeller uden ROWID.
  • Der er tilføjet en modifier "subsec" i funktioner til arbejde med tid og datoer for at kunne anvende brøkdele af sekunder.
  • Standard rekursionsdybde for JSON-arrays og -objekter er reduceret fra 2000 til 1000.

Desuden er version 0.8.0 af DuckDB, som udvikler en variant af SQLite, blevet frigivet med forbedringer til udførelse af analytiske forespørgsler, der dækker en betydelig del af de gemte data, for eksempel ved at aggregere indholdet af hele tabeller eller sammenflette flere store tabeller. Der tilbydes en udvidet SQL-dialekt med ekstra muligheder for behandling af meget komplekse og langvarige forespørgsler, samt understøttelse af komplekse typer (arrays, strukturer, unioner), samtidig udførelse af flere forespørgsler og udførelse af forespørgsler direkte fra filer i CSV-, JSON- og Parquet-format. Der er mulighed for import fra PostgreSQL-databaser.

Udover shell-koden fra SQLite anvender projektet en parser fra PostgreSQL, der er adskilt i et separat bibliotek, Date Math-komponenten fra MonetDB, sin egen implementering af vinduesfunktioner (baseret på Segment Tree Aggregation-algoritmen), en regelmæssige udtrykshandler baseret på RE2-biblioteket, egen forespørgselsoptimerer, MVCC-mekanisme til styring af samtidige opgaver (Multi-Version Concurrency Control), samt en vektoriseret forespørgselsmotor baseret på Hyper-Pipelining Query Execution-algoritmen, der gør det muligt at behandle store datasæt i én operation. Projektkoden distribueres under MIT-licensen.

I den nye version af DuckDB:

  • Nye udtryk "PIVOT" og "UNPIVOT" til transformation af rækker til kolonner og omvendt er blevet tilføjet.
  • Paralleliseringen ved import og eksport af data er forbedret. Som standard implementeres læsning fra CSV-filer i flere tråde og multitrådet skrivning ved brug af Parquet-, CSV- og JSON-formater.
  • Operatøren "**" er blevet tilføjet til rekursiv gennemgang af mapper ved bestemmelse af filstier (for eksempel FROM 'data/glob/crawl/stackoverflow/**/*.csv';).
  • Understøttelse af sammenfletningsoperationer (JOIN) for data i form af tidsserier (udsnit af parameterværdier over bestemte tidsintervaller), hvor nærvær af postværdier i tidsfeltet anvendes som sammenfletningskriterium (for eksempel kan poster, hvis tid adskiller sig med højst 1 minut, sammenlægges), er blevet tilføjet.
  • Forsinket indlæsning af database metadata er blevet implementeret, hvilket har gjort det muligt at accelerere opstarten af databasen med mange gange.
  • Støtte til tilslutning af brugerdefinerede funktioner i Python er blevet tilføjet.
  • Støtte til API ADBC (Arrow Database Connectivity) til overførsel af data ved hjælp af Apache Arrow er blevet tilføjet.
  • Binding til integration med Swift-kode er blevet implementeret.
  • Adfærden for divisionsoperatøren ("/") er ændret, så den nu som standard udfører flydende punkt-beregninger i stedet for heltalsoperationer. En ny operatør for heltalsdivision, "//", er blevet introduceret. Den gamle adfærd kan genvindes ved at indstille "SET integer_division=true;".
  • Metoden til håndtering af null-værdier ved sortering er ændret fra "NULLS FIRST" til "NULLS LAST", dvs. NULL-værdier vil nu blive vist sidst i listen i stedet for først. Den gamle adfærd kan genvindes ved at indstille "SET default_null_order='nulls_first';".

Derudover kan projektet CG/SQL, der udvikles af Facebook, nævnes; det tilbyder en kodegenerator til brug af gemte procedurer med SQLite. CG/SQL gør det muligt at skrive gemte procedurer på en specialiseret T-SQL (Transact-SQL) dialekt, der tillader kald til standard C-biblioteksfunktioner og aflevering af data i SQLite. De oprettede gemte procedurer kompileres til C-kode, der bruger SQLite C API til at udføre definerede handlinger og håndtere komplekse forespørgsler. De kompilerede gemte procedurer kan tilsluttes programmer skrevet i C, Java og Objective-C. Projektkoden er skrevet i C og distribueres under MIT-licensen.

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