ĂshtĂ« publikuar versioni SQLite 3.35, njĂ« SGBD i lehtĂ«, i ndĂ«rtuar si njĂ« bibliotekĂ« e integruar. Kodi SQLite shpĂ«rndahet si pronĂ« publike (public domain), pra, mund tĂ« pĂ«rdoret pa kufizime dhe falas pĂ«r çdo qĂ«llim. MbĂ«shtetje financiare pĂ«r zhvilluesit e SQLite siguron njĂ« konsorcium tĂ« krijuar posaçërisht, i cili pĂ«rfshin kompani si Adobe, Oracle, Mozilla, Bentley dhe Bloomberg.
Ndryshimet kryesore:
- Janë shtuar funksione matematikore të integruara (log2(), cos(), tg(), exp(), ln(), pow() etj.) që mund të përdoren në SQL. Për të aktivizuar funksionet e integruara, kërkohet ndërtimi me opsionin "-DSQLITE_ENABLE_MATH_FUNCTIONS".
- ĂshtĂ« zbatuar mbĂ«shtetje pĂ«r shprehjen "ALTER TABLE DROP COLUMN" pĂ«r heqjen e kolona nga tabela dhe pastrimin e tĂ« dhĂ«nave tĂ« ruajta mĂ« parĂ« nĂ« kĂ«tĂ« kolonĂ«.
- Janë zgjeruar zbatimi i operacionit UPSERT (shto-o-modifiko), i cili lejon që përmes shprehjeve si "INSERT ⊠ON CONFLICT DO NOTHING/UPDATE" të injorohet gabimi ose të bëhet një azhurnim në vend të inserimit në rast të pamundësisë për të shtuar të dhëna përmes "INSERT" (për shembull, nëse regjistrimi tashmë ekziston, në vend të INSERT mund të bëhet UPDATE). Në versionin e ri lejohet përcaktimi i disa blloqeve "ON CONFLICT", të cilat do të përpunohen në rendin e paraqitjes. Në bllokun e fundit "ON CONFLICT" lejohet të mos përcaktohet parametri i përcaktimit të konfliktit për të përdorur "DO UPDATE".
- Në operacionet DELETE, INSERT dhe UPDATE është zbatuar mbështetje për shprehjen RETURNING, me ndihmën e së cilës mund të nxirret përmbajtja e regjistrimeve të hequra, të shtuara ose të ndryshuara. Për shembull, shprehja "insert into ⊠returning id" do të kthejë identifikuesin e rreshtit të shtuar, ndërsa "update ⊠set price = price * 1.10 returning price" do të kthejë vlerën e ndryshuar të çmimit.
- Për shprehjet e tabelave të përgjithshme (Common Table Expression, CTE), të cilat lejojnë përdorimin e grupeve të përkohshme me emër, të përcaktuara përmes operatorit WITH, është lejuar zgjedhja e mënyrave "MATERIALIZED" dhe "NOT MATERIALIZED". "MATERIALIZED" nënkupton ruajtjen e asaj që është përcaktuar në pamjen e pyetjes në një tabelë fizike të veçantë me pastrim të të dhënave nga kjo tabelë, ndërsa me "NOT MATERIALIZED" do të bëhen kërkesa të përsëritura me çdo qasje në pamje. Fillimisht në SQLite përdorej si parazgjedhje mënyra "NOT MATERIALIZED", por tani për CTE-të e përdorura më shumë se një herë është ndryshuar në "MATERIALIZED".
- Konsumimi i memories është reduktuar gjatë ekzekutimit të operacionit VACUUM për bazat e të dhënave që përfshijnë vlera shumë të mëdha me lloje TEXT ose BLOB.
- Janë kryer përmirësime për të rritur performancën e optimizuesit dhe planifikuesit të pyetjeve:
- Janë shtuar optimizime kur përdoren funksionet min dhe max me shprehjen "IN".
- Ekzekutimi i operatorit EXISTS është përshpejtuar.
- Janë realizuar zhvillime në nënpyetje nga shprehjet UNION ALL, të cilat përdoren në bashkime.
- ĂshtĂ« angazhuar indeksi pĂ«r shprehjet IS NOT NULL.
- ĂshtĂ« siguruar transformimi "x IS NULL" dhe "x IS NOT NULL" nĂ« FALSE ose TRUE pĂ«r kolonat qĂ« kanĂ« shenjĂ«n "NOT NULL".
- Kontrolli i çelësave të jashtme është anashkaluar në UPDATE, nëse operacioni nuk ndryshon kolonat e lidhura me çelësin e jashtëm.
- ĂshtĂ« lejuar lĂ«vizja e pjesĂ«ve tĂ« bllokut WHERE nĂ« nĂ«npyetje qĂ« pĂ«rmbajnĂ« funksione dritare, nĂ«se kĂ«to pjesĂ« janĂ« tĂ« kufizuara nĂ« punĂ«n me konstanta dhe kopje shprehjesh nga blloqet "PARTITION BY" qĂ« pĂ«rdoren nĂ« funksionet dritare.
- Ndryshime në ndërfaqen e komandës:
- Komanda " .filectrl data_version" është shtuar.
- Në komandat " .once" dhe " .output" është shtuar mbështetje për dërgimin e daljes në një trajtues, i cili thirret duke përdorur kanale të paemëruar ("|").
- Në komandën " .stats" janë shtuar argumentet "stmt" dhe "vmstep" për të shfaqur statistikat për shprehjet dhe numëruesit e makinerisë virtuale.
Burimi: opennet.ru
