Izdanje SЕDB SQLite 3.35

Objavljen je izdanek SQLite 3.35, lahke podatkovne baze, zasnovane kot knjižnica, ki se jo lahko vključi. Koda SQLite je na voljo kot javna lastnina, kar pomeni, da jo je mogoče uporabljati brez omejitev in brezplačno za vse namene. Finančno podporo razvijalcem SQLite zagotavlja posebno ustanovljen konzorcij, ki vključuje podjetja, kot so Adobe, Oracle, Mozilla, Bentley in Bloomberg.

Glavne spremembe:

  • Dodane so bile vgrajene matematične funkcije (log2(), cos(), tg(), exp(), ln(), pow() in druge), ki jih je mogoče uporabljati v SQL. Za vključitev vgrajenih funkcij je potrebna gradnja z možnostjo „-DSQLITE_ENABLE_MATH_FUNCTIONS“.
  • Zagotavljena je podpora za izraz „ALTER TABLE DROP COLUMN“ za odstranjevanje stolpcev iz tabele in čiščenje prej shranjenih podatkov v tem stolpcu.
  • Razširjena je implementacija operacije UPSERT (dodaj-ali-spremeni), ki omogoča uporabo izrazov v obliki „INSERT … ON CONFLICT DO NOTHING/UPDATE“ za ignoriranje napake ali za izvedbo posodobitve namesto vstavljanja, če ni mogoče dodati podatkov prek „INSERT“ (na primer, če zapis že obstaja, se lahko namesto INSERT izvede UPDATE). V novi različici je dovoljeno navesti več blokov „ON CONFLICT“, ki bodo obdelani v zaporedju. V zadnjem bloku „ON CONFLICT“ ni treba navesti parametra za določitev konflikta za uporabo „DO UPDATE“.
  • V operacijah DELETE, INSERT in UPDATE je omogočena podpora za izraz RETURNING, ki omogoča prikaz vsebine izbrisanega, vstavljenega ali spremenjenega zapisa. Na primer, izraz „insert into … returning id“ vrne identifikator dodane vrstice, medtem ko „update … set price = price * 1.10 returning price“ vrne spremenjeno vrednost price.
  • Za splošne tabelarne izraze (Common Table Expression, CTE), ki omogočajo uporabo začasnih imenovanih rezultatov, določenih z operatorjem WITH, je dovoljeno izbirati načine „MATERIALIZED“ in „NOT MATERIALIZED“. „MATERIALIZED“ pomeni predpomnjenje, določeno v poizvedbi predstave, v ločeni fizični tabeli z nadaljnjim pridobivanjem podatkov iz te tabele, medtem ko pri „NOT MATERIALIZED“ pri vsakem dostopu do predstave izvajajo ponovne poizvedbe. Sprva je bil v SQLite privzeto uporabljen način „NOT MATERIALIZED“, vendar je zdaj za CTE, ki se uporabljajo več kot enkrat, spremenjen na „MATERIALIZED“.
  • Zmanjšana poraba pomnilnika pri izvajanju operacije VACUUM za baze podatkov, ki vključujejo zelo velike vrednosti tipov TEXT ali BLOB.
  • Opravljeno je bilo delo na povečanju zmogljivosti optimizatorja in načrtovalnika poizvedb:
    • Dodane so bile optimizacije pri uporabi funkcij min in max z izrazom «IN».
    • Pospešeno je izvajanje operatorja EXISTS.
    • Realizirano je bilo izvajanje podpoizvedb iz izrazov UNION ALL, ki se uporabljajo v okviru JOIN.
    • Uporabljen je indeks za izraze IS NOT NULL.
    • Zagotovljena je bila pretvorba «x IS NULL» in «x IS NOT NULL» v FALSE ali TRUE za stolpce, ki imajo oznako «NOT NULL».
    • Preskočena je bila preverba zunanjih ključev pri UPDATE, če operacija ne spreminja stolpcev, povezanih z zunanjim ključem.
    • Omogočeno je premikanje delov bloka WHERE v podpoizvedbe, ki vsebujejo okvire funkcij, če so ti deli omejeni na delo s konstantami in kopijami izrazov iz blokov «PARTITION BY», ki se uporabljajo v okenskih funkcijah.
  • Izmene u interfejsu komandne linije:
    • Dodana je bila ukazna vrstica «.filectrl data_version».
    • V ukazih «.once» in «.output» je bila dodana podpora za prenos izhoda v obdelovalec, ki ga pokličejo s pomočjo imenovanih kanalov («|»).
    • V ukaz «.stats» so bili dodani argumenti «stmt» in «vmstep» za izpis statistik poizvedb in števcev virtualnega stroja.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster