Апублікаваны рэліз SQLite 3.51, легкаважнай СКБД, аформленай у выглядзе бібліятэкі, якая падключаецца. Код SQLite распаўсюджваецца як грамадскі здабытак (public domain), г.зн. можа выкарыстоўвацца без абмежаванняў і бязвыплатна ў любых мэтах. Фінансавую падтрымку распрацоўшчыкаў SQLite ажыццяўляе спецыяльна створаны кансорцыум.
Асноўныя змены:
- Дададзеныя новыя JSON-функцыі jsonb_each() і jsonb_tree(), якія адрозніваюцца ад раней даступных функцый json_each() і json_tree() тым, што вяртаюць значэнне JSONB для дадзеных з тыпам масіў ці аб'ект.
- Код пашырэнняў carray і percentile перанесены ў базавы файл "sqlite3.c" са ўбудаваным кодам SQLite. Па змаўчанні дадзеныя дадаткі адключаныя і патрабуюць указання пры зборцы параметраў "-DSQLITE_ENABLE_CARRAY" і "-DSQLITE_ENABLE_PERCENTILE".
- Палепшаны інтэрфейс для выкарыстання SQLite у скрыптах на мове Tcl. У каманду "eval" дададзены сцяг "-asdict" для выстаўлення радкоў з выкарыстаннем тыпу "dict" замест "array". Дададзена магчымасць перапынення карыстацкіх функцый для вяртання значэння NULL.
- Змены ў інтэрфейсе каманднага радка:
- Дакладнасць каманды ".timer" павялічана да мікрасекунд;
- У рэжымах фарматавання "box" і "column" рэалізавана падтрымка сімвалаў з падвойнай шырынёй;
- Каманда ".imposter" зараз можа падаваць у рэжыме толькі для чытання imposter-табліцы (дазваляюць атрымаць доступ да дадзеных у азначніку як да табліцы), якія працуюць з аперацыяй VACUUM і не патрабавальныя запуску са сцягам "—unsafe-testing»;
- Ва ўтыліту sqlite і каманду ".open" дададзена опцыя "-ifexists".
- Максімальная шырыня радка, якая выстаўляецца пры дапамозе каманды ".width", абмежавана 30000 знакаў.
- Унесены аптымізацыі прадукцыйнасці:
- Скарочана нагрузка на CPU пры фіксацыі транзакцый, абмежаваных доступам на чытанне;
- Палепшана вызначэнне аперацый зліцця (JOIN), якія не вяртаюць радкі з-за таго, што адна або некалькі табліц не змяшчае радкоў;
- Выключана выкананне скалярных подзапросов, якія не ўплываюць на вынік;
- Паскорана праца аконных функцый у запытах з выразам "BETWEEN 😡 FOLLOWING AND :y FOLLOWING" і вельмі вялікім значэнні ":y".
- Дададзена прагма "PRAGMA wal_checkpoint=NOOP" і функцыя API sqlite3_wal_checkpoint() для фіксацыі змен у WAL-логу
- У API дададзеныя функцыі sqlite3_set_errmsg() і sqlite3_db_status64().
- У JavaScript/WASM-версіі SQLite рэалізавана падтрымка зборкі ва ўяўленне WebAssembly з 64-разраднымі паказальнікамі.
- Падвышаная ўстойлівасць ад пашкоджання БД у прыкладаннях, якія здымаюць POSIX-блакаванні праз выклік close().
- Палепшана падтрымка платформы VxWorks.
Крыніца: opennet.ru
