Udgivelse af databasesystemet SQLite 3.35

SQLite 3.35 er blevet udgivet, en letvægts DBMS, der er designet som et tilføjelsesbibliotek. Koden til SQLite er frigivet som public domain, dvs. den kan bruges uden restriktioner og gratis til alle formål. Den finansielle støtte til udviklerne af SQLite leveres af et særligt dannet konsortium, der inkluderer virksomheder som Adobe, Oracle, Mozilla, Bentley og Bloomberg.

Vigtige ændringer:

  • Indbyggede matematiske funktioner (log2(), cos(), tg(), exp(), ln(), pow() osv.) er blevet tilføjet, og disse kan bruges i SQL. For at inkludere de indbyggede funktioner kræves en bygning med indstillingen "-DSQLITE_ENABLE_MATH_FUNCTIONS".
  • Støtte til udtrykket "ALTER TABLE DROP COLUMN" er blevet implementeret, så kolonner kan fjernes fra tabellen og tidligere gemte data i den pågældende kolonne bliver ryddet.
  • Implementeringen af UPSERT-operationen (indsæt-eller-modificer) er udvidet, hvilket gør det muligt at ignorere fejl eller udføre en opdatering i stedet for en indsættelse i tilfælde af, at data ikke kan tilføjes via "INSERT" (f.eks. hvis posten allerede eksisterer, kan en UPDATE udføres i stedet for INSERT). I den nye version er det tilladt at angive flere "ON CONFLICT"-blokke, som vil blive behandlet i rækkefølge. I den sidste "ON CONFLICT"-blok er det muligt ikke at angive en konfliktdefinitionsparameter for at bruge "DO UPDATE".
  • I operationerne DELETE, INSERT og UPDATE er understøttelsen af udtrykket RETURNING implementeret, hvilket gør det muligt at returnere indholdet af den slettede, indsatte eller ændrede post. For eksempel vil udtrykket "insert into … returning id" returnere identifikatoren for den tilføjede række, og "update … set price = price * 1.10 returning price" vil returnere den ændrede værdi af prisen.
  • For generelle tabeludtryk (Common Table Expression, CTE), som gør det muligt at bruge midlertidige navngivne resultatsæt angivet ved hjælp af WITH-operatoren, er det muligt at vælge mellem tilstandene "MATERIALIZED" og "NOT MATERIALIZED". "MATERIALIZED" indebærer caching af det angivne forespørgselsresultat i en separat fysisk tabel, hvorefter data hentes fra den tabel, mens der ved "NOT MATERIALIZED" vil blive foretaget gentagne forespørgsler ved hver adgang til visningen. Tidligere blev "NOT MATERIALIZED" anvendt som standard i SQLite, men nu er det blevet ændret til "MATERIALIZED" for CTE'er, der anvendes mere end én gang.
  • Reduceret hukommelsesforbrug ved udførelse af VACUUM-operation for databaser, der indeholder meget store værdier af typerne TEXT eller BLOB.
  • Der er udført arbejde for at øge ydeevnen af optimerings- og forespørgselsplanlægningssystemet:
    • Optimeringer tilføjet ved brug af funktionerne min og max med udtrykket "IN".
    • Udførelsen af EXISTS-operatoren er blevet accelereret.
    • Implementeret udrulning af underforespørgsler fra UNION ALL-udtryk, der bruges i JOIN.
    • Indekset er aktivt for udtryk IS NOT NULL.
    • Sikret konvertering af "x IS NULL" og "x IS NOT NULL" til FALSE eller TRUE for kolonner, der har egenskaben "NOT NULL".
    • Kontrol af fremmednøgler er blevet sprunget over i UPDATE, hvis operationen ikke ændrer kolonner, der er knyttet til fremmednøglen.
    • Det er tilladt at flytte dele af WHERE-blokken til underforespørgsler, der indeholder vinduesfunktioner, hvis disse dele er begrænset til arbejde med konstanter og kopier af udtryk fra "PARTITION BY"-blokke, der bruges i vinduesfunktionerne.
  • Ændringer i kommandolinjegrænsefladen:
    • Tilføjet kommandoen ".filectrl data_version".
    • I kommandoerne ".once" og ".output" er der tilføjet understøttelse af at sende output til en handler, der kaldes ved hjælp af ikke-navngivne kanaler ("|").
    • Kommandoen ".stats" har fået argumenterne "stmt" og "vmstep" til at vise statistik over udtryk og tællere for den virtuelle maskine.

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