Paglabas ng DBMS SQLite 3.35

Ang paglabas ng SQLite 3.35, isang magaan na DBMS na idinisenyo bilang isang plug-in na library, ay nai-publish. Ang SQLite code ay ipinamahagi bilang isang pampublikong domain, ibig sabihin. maaaring gamitin nang walang mga paghihigpit at walang bayad para sa anumang layunin. Ang suportang pinansyal para sa mga developer ng SQLite ay ibinibigay ng isang espesyal na nilikhang consortium, na kinabibilangan ng mga kumpanya tulad ng Adobe, Oracle, Mozilla, Bentley at Bloomberg.

Pangunahing pagbabago:

  • Nagdagdag ng mga built-in na function ng matematika (log2(), cos(), tg(), exp(), ln(), pow(), atbp.) na maaaring gamitin sa SQL. Ang pagpapagana ng mga built-in na function ay nangangailangan ng pagbuo gamit ang "-DSQLITE_ENABLE_MATH_FUNCTIONS" na opsyon.
  • Ipinatupad ang suporta para sa expression na β€œALTER TABLE DROP COLUMN” para alisin ang mga column sa isang table at i-clear ang data na dati nang nakaimbak sa isang partikular na column.
  • Ang pagpapatupad ng UPSERT (add-or-modify) na operasyon ay pinalawak, na nagpapahintulot sa pamamagitan ng mga expression tulad ng "INSERT ... ON CONFLICT DO NOTHING/UPDATE" na huwag pansinin ang isang error o magsagawa ng update sa halip na ipasok kung imposibleng magdagdag data sa pamamagitan ng β€œINSERT” (halimbawa, kung mayroon nang talaan, maaari mong gawin ang UPDATE sa halip na INSERT). Binibigyang-daan ka ng bagong bersyon na tumukoy ng maramihang ON CONFLICT blocks, na ipoproseso sa pagkakasunud-sunod. Ang huling block na "ON CONFLICT" ay nagbibigay-daan sa parameter ng kahulugan ng conflict na tanggalin upang magamit ang "DO UPDATE".
  • Sinusuportahan ng mga operasyong DELETE, INSERT, at UPDATE ang RETURNING expression, na maaaring magamit upang ipakita ang mga nilalaman ng isang tinanggal, ipinasok, o binagong tala. Halimbawa, ang expression na "insert into ... returning id" ay magbabalik ng identifier ng idinagdag na linya, at "update ... set price = price * 1.10 returning price" ay magbabalik ng binagong halaga ng presyo.
  • Para sa Common Table Expressions (CTE), na nagpapahintulot sa paggamit ng pansamantalang pinangalanang mga set ng resulta na tinukoy gamit ang WITH statement, pinapayagan ang pagpili ng "MATERIALIZED" at "NOT MATERIALIZED" na mga mode. Ang "MATERIALIZED" ay nagpapahiwatig ng pag-cache sa query na tinukoy sa view sa isang hiwalay na pisikal na talahanayan at pagkatapos ay kumukuha ng data mula sa talahanayang ito, at sa "NOT MATERIALIZED" na paulit-ulit na mga query ay isasagawa sa tuwing maa-access ang view. Ang SQLite ay orihinal na nag-default sa "NOT MATERIALIZED", ngunit ngayon ay naging "MATERIALIZED" para sa mga CTE na ginamit nang higit sa isang beses.
  • Nabawasan ang pagkonsumo ng memory kapag nagsasagawa ng operasyon ng VACUUM sa mga database na may kasamang napakalaking halaga ng TEXT o BLOB.
  • Nagawa na ang trabaho para mapataas ang performance ng optimizer at query planner:
    • Nagdagdag ng mga pag-optimize kapag ginagamit ang min at max na mga function na may expression na "IN".
    • Ang pagpapatupad ng EXISTS na pahayag ay pinabilis.
    • Ipinatupad ang pagpapalawak ng mga subquery mula sa UNION ALL expression na ginamit bilang bahagi ng JOIN.
    • Ang index ay ginagamit para sa IS NOT NULL expressions.
    • Tinitiyak na ang "x IS NULL" at "x IS NOT NULL" ay mako-convert sa FALSE o TRUE para sa mga column na mayroong attribute na "NOT NULL".
    • Laktawan ang pagsuri sa mga foreign key sa UPDATE kung hindi binabago ng operasyon ang mga column na nauugnay sa foreign key.
    • Pinapayagan na ilipat ang mga bahagi ng isang WHERE block sa mga subquery na naglalaman ng mga function ng window, hangga't ang mga bahaging iyon ay limitado sa pagtatrabaho sa mga constant at mga kopya ng mga expression mula sa PARTITION BY block na ginagamit sa mga function ng window.
  • Mga pagbabago sa interface ng command line:
    • Idinagdag ang command na ".filectrl data_version".
    • Sinusuportahan na ngayon ng ".once" at ".output" na mga command ang pagpasa ng output sa isang handler na tinatawag gamit ang mga hindi pinangalanang pipe ("|").
    • Ang mga argumentong "stmt" at "vmstep" ay idinagdag sa command na ".stats" upang ipakita ang mga istatistika sa mga expression at virtual machine counter.

Pinagmulan: opennet.ru

Magdagdag ng komento