SQLite 3.35 release

Rilis SQLite 3.35, DBMS entheng sing dirancang minangka perpustakaan plug-in, wis diterbitake. Kode SQLite disebarake ing domain umum, i.e. bisa digunakake tanpa watesan lan gratis kanggo maksud apa wae. Dhukungan finansial kanggo pangembang SQLite diwenehake dening konsorsium sing digawe khusus, sing kalebu perusahaan kayata Adobe, Oracle, Mozilla, Bentley lan Bloomberg.

Owah-owahan utama:

  • Nambahake fungsi math dibangun ing (log2 (), cos (), tg (), exp (), ln (), pow (), etc.) sing bisa digunakake ing SQL. Ngaktifake fungsi sing dibangun mbutuhake bangunan kanthi pilihan "-DSQLITE_ENABLE_MATH_FUNCTIONS".
  • Dilaksanakake dhukungan kanggo ekspresi "ALTER TABLE DROP COLUMN" kanggo mbusak kolom saka tabel lan mbusak data sing sadurunge disimpen ing kolom tartamtu.
  • Implementasi operasi UPSERT (add-or-modify) wis ditambahi, ngidini liwat ekspresi kaya "INSERT ... ON CONFLICT DO NOTHING / UPDATE" kanggo nglirwakake kesalahan utawa nindakake nganyari tinimbang nglebokake yen ora bisa ditambahake. data liwat "INSERT" (Contone, yen rekaman wis ana, Sampeyan bisa nindakake UPDATE tinimbang INSERT). Versi anyar ngidini sampeyan nemtokake pirang-pirang blok ON CONFLICT, sing bakal diproses kanthi urutan. Pamblokiran "ON CONFLICT" pungkasan ngidini parameter penentuan konflik diilangi supaya bisa nggunakake "DO UPDATE".
  • Operasi DELETE, INSERT, lan UPDATE ndhukung ekspresi RETURNING, sing bisa digunakake kanggo nampilake isi rekaman sing wis dibusak, dilebokake, utawa diowahi. Contone, ekspresi "lebokake menyang ... bali id" bakal ngasilake pengenal baris sing ditambahake, lan "nganyari ... nyetel rega = rega * 1.10 rega bali" bakal ngasilake nilai rega sing diganti.
  • Kanggo Ekspresi Tabel Umum (CTE), sing ngidini nggunakake set asil sing dijenengi sementara sing ditemtokake nggunakake pernyataan WITH, pilihan mode "MATERIALIZED" lan "NOT MATERIALIZED" diidini. "MATERIALIZED" nuduhake cache query sing ditemtokake ing tampilan ing tabel fisik sing kapisah banjur njupuk data saka tabel iki, lan kanthi "NOT MATERIALIZED" pitakon bola-bali bakal ditindakake saben tampilan diakses. SQLite wiwitane dadi "NOT MATERIALIZED", nanging saiki wis diganti dadi "MATERIALIZED" kanggo CTE sing digunakake luwih saka sepisan.
  • Panggunaan memori suda nalika nindakake operasi VACUUM ing database sing kalebu nilai TEXT utawa BLOB sing gedhe banget.
  • Pakaryan wis ditindakake kanggo nambah kinerja pangoptimal lan perancang pitakon:
    • Nambahake optimasi nalika nggunakake fungsi min lan maksimal kanthi ekspresi "IN".
    • Eksekusi statement EXISTS wis digawe cepet.
    • Ekspansi subkueri saka ekspresi UNION ALL digunakake minangka bagean saka JOIN.
    • Indeks digunakake kanggo ekspresi IS NOT NULL.
    • Mesthekake yen "x IS NULL" lan "x IS NOT NULL" diowahi dadi FALSE utawa TRUE kanggo kolom sing duwe atribut "NOT NULL".
    • Skip mriksa kunci asing ing UPDATE yen operasi ora ngganti kolom sing ana gandhengane karo kunci asing.
    • Diijini mindhah bagean saka blok WHERE menyang subqueries sing ngemot fungsi jendhela, anggere bagean kasebut diwatesi kanggo nggarap konstanta lan salinan ekspresi saka blok PARTITION BY sing digunakake ing fungsi jendhela.
  • Owah-owahan ing antarmuka baris perintah:
    • Added ".filectrl data_version" printah.
    • Printah ".sapisan" lan ".output" saiki ndhukung output maringaken menyang handler disebut nggunakake pipo unnamed ("|").
    • Argumentasi "stmt" lan "vmstep" wis ditambahake menyang printah ".stats" kanggo nampilake statistik babagan ekspresi lan counter mesin virtual.

Source: opennet.ru

Add a comment