Выпуск СКБД SQLite 3.40

Апублікаваны рэліз SQLite 3.40, легкаважнай СКБД, аформленай у выглядзе якая падключаецца бібліятэкі. Код SQLite распаўсюджваецца як грамадскі здабытак (public domain), г.зн. можа выкарыстоўвацца без абмежаванняў і бязвыплатна ў любых мэтах. Фінансавую падтрымку распрацоўшчыкаў SQLite ажыццяўляе спецыяльна створаны кансорцыум, у які ўваходзяць такія кампаніі, як Adobe, Oracle, Mozilla, Bentley і Bloomberg.

Асноўныя змены:

  • Рэалізаваная эксперыментальная магчымасць кампіляцыі SQLite у прамежкавы код WebAssembly, здольны запускацца ў web-браўзэры і прыдатны для арганізацыі працы з БД з web-прыкладанняў на мове JavaScript. Web-распрацоўнікам падаецца высокаўзроўневы аб'ектна-арыентаваны інтэрфейс для працы з дадзенымі ў стылі sql.js ці Node.js, абвязка над нізкаўзроўневым C API і API на базе механізму Web Worker, які дазваляе ствараць асінхронныя апрацоўшчыкі, выкананыя ў асобных струменях. Дадзеныя, якія web-прыкладанні захоўваюць у WASM-версіі SQLite, могуць быць захаваны на боку кліента пры дапамозе OPFS (Origin-Private FileSystem) ці API window.localStorage.
  • Дададзена пашырэнне recovery, прызначанае для аднаўлення дадзеных з пашкоджаных файлаў з БД. У інтэрфейсе каманднага радка для ўзнаўлення выкарыстоўваецца каманда ".recover".
  • Палепшана праца планавальніка запытаў. Убраны абмежаванні пры выкарыстанні індэксаў з табліцамі, якія налічваюць больш за 63 слупкі (раней пры аперацыях са слупкамі, парадкавы нумар якіх перавышае 63, індэксацыя не прымянялася). Палепшана індэксацыя значэнняў, якія выкарыстоўваюцца ў выразах. Спынена загрузка з дыска вялікіх радкоў і блобаў пры апрацоўцы аператараў NOT NULL і IS NULL. Выключана матэрыялізацыя ўяўленняў для якіх поўнае сканаванне выконваецца толькі адзін раз.
  • У кодавай базе замест тыпу "char *" для падання імёнаў файлаў задзейнічаны асобны тып sqlite3_filename.
  • Дададзена ўнутраная функцыя sqlite3_value_encoding().
  • Дададзены рэжым SQLITE_DBCONFIG_DEFENSIVE, які забараняе змену версіі схемы захоўвання дадзеных.
  • У рэалізацыю параметра PRAGMA integrity_check дададзены дадатковыя праверкі. Напрыклад, у табліцы без прыкметы STRICT не павінны змяшчаць лікавых значэнняў у слупках з тыпам TEXT і радковых значэнняў з лікамі ў слупках з тыпам NUMERIC. Таксама дададзена праверка карэктнасці парадку прытрымлівання радкоў у табліцах з прыкметай «WITHOUT ROWID».
  • У выразе "VACUUM INTO" улічаны налады "PRAGMA synchronous".
  • Дададзена зборачная опцыя SQLITE_MAX_ALLOCATION_SIZE, якая дазваляе абмежаваць памер блокаў пры размеркаванні памяці.
  • Убудаваны ў SQLite алгарытм генерацыі псеўдавыпадковых лікаў пераведзены з выкарыстання струменевага шыфра RC4 на Chacha20.
  • Дазволена выкарыстанне ў розных схемах дадзеных азначнікаў з аднолькавымі імёнамі.
  • Унесены аптымізацыі прадукцыйнасці, якія дазволілі знізіць нагрузку на CPU прыкладна на 1% пры тыпавой актыўнасці.

Крыніца: opennet.ru

Дадаць каментар