Нашри SQLite 3.35

Нашри SQLite 3.35, як DBMS сабук, ки ҳамчун китобхонаи плагин тарҳрезӣ шудааст, нашр шуд. Рамзи SQLite ҳамчун домени ҷамъиятӣ тақсим карда мешавад, яъне. метавонад бидуни маҳдудият ва ройгон барои ҳама гуна мақсад истифода шавад. Дастгирии молиявии таҳиягарони SQLite аз ҷониби консорсиуми махсус сохташуда, ки ширкатҳои монанди Adobe, Oracle, Mozilla, Bentley ва Bloombergро дар бар мегиранд, пешниҳод карда мешавад.

Тағйироти асосӣ:

  • Функсияҳои математикии дарунсохт (log2(), cos(), tg(), exp(), ln(), pow() ва ғ.), ки метавонанд дар SQL истифода шаванд. Даргиронидани функсияҳои дарунсохт сохтанро бо опсияи "-DSQLITE_ENABLE_MATH_FUNCTIONS" талаб мекунад.
  • Дастгирии амалӣ барои ифодаи "ALTER TABLE DROP COLUMN" барои нест кардани сутунҳо аз ҷадвал ва тоза кардани маълумоти қаблан дар сутуни додашуда.
  • Татбиқи амалиёти UPSERT (илова кардан ё тағир додан) васеъ карда шудааст, ки ба воситаи ибораҳои ба монанди "ВОЛО ... ДАР БАРҶОМ ҲЕҶ ЧИЗ/НАВЛАВӢ" имкон медиҳад, ки хатогиро сарфи назар кунед ё ба ҷои воридкунӣ навсозӣ кунед, агар илова кардан ғайриимкон бошад. маълумот тавассути "INSERT" (масалан, агар сабт аллакай мавҷуд бошад, шумо метавонед ба ҷои INSERT UPDATE кунед). Версияи нав ба шумо имкон медиҳад, ки блокҳои сершумори ON CONFLICT, ки бо тартиб коркард карда мешаванд, муайян кунед. Блоки охирини "ON CONFLICT" имкон медиҳад, ки параметри таърифи низоъ барои истифода аз "ДО UPDATE" сарфи назар карда шавад.
  • Амалиётҳои DELETE, INSERT ва UPDATE ифодаи RETURNING-ро дастгирӣ мекунанд, ки онро барои намоиши мундариҷаи сабти ҳазфшуда, воридшуда ё тағирёфта истифода бурдан мумкин аст. Масалан, ифодаи "insert into ... returning id" идентификатори сатри иловашударо бармегардонад ва "навсозӣ ... нархро муқаррар = нарх * 1.10 нархи баргардонида" арзиши тағирёфтаи нархро бармегардонад.
  • Барои Ифодаҳои Ҷадвали умумӣ (CTE), ки имкон медиҳад, ки маҷмӯи натиҷаҳои муваққатии номбаршуда, ки бо истифода аз изҳороти WITH муайян карда шудаанд, интихоби режимҳои "MATERIALIZED" ва "NOT MATERIALIZED" иҷозат дода мешавад. "МОДУД ШУД" маънои кэшкунии дархости дар намоиш нишондодашуда дар ҷадвали физикии ҷудогона ва баъд аз ин ҷадвал дарёфт кардани маълумотро дар назар дорад ва бо "MATERIALIZASYON" дархостҳои такрорӣ ҳар дафъае, ки ба намоиш дастрас мешаванд, иҷро карда мешаванд. SQLite дар ибтидо реҷаи пешфарзро дошт "НОТ МОДАРИЗАНДА", аммо ҳоло барои CTE-ҳои зиёда аз як маротиба истифодашуда ба "MATERIALIZED" иваз шудааст.
  • Ҳангоми иҷрои амалиёти ВАКУМ дар пойгоҳи додаҳо, ки арзишҳои хеле калони TEXT ё BLOB-ро дар бар мегиранд, истеъмоли хотира кам карда шуд.
  • Барои баланд бардоштани самаранокии оптимизатор ва банақшагирии дархост корҳо анҷом дода шуданд:
    • Ҳангоми истифодаи функсияҳои ҳадди ақал ва макс бо ифодаи "IN" оптимизатсияҳо илова карда шуданд.
    • Ичрои баённомаи EXISTS суръат гирифт.
    • Тавсеаи зерпурсишҳо аз UNION ALL ифодаҳое, ки ҳамчун қисми JOIN истифода мешаванд, амалӣ карда шуд.
    • Индекс барои ифодаҳои IS NO NULL истифода мешавад.
    • Кафолат медиҳад, ки "x IS NULL" ва "x IS NULL" ба FALSE ё TRUE барои сутунҳое, ки атрибути "НО NULL" доранд, табдил дода мешаванд.
    • Санҷиши калидҳои хориҷиро дар UPDATE гузаред, агар амалиёт сутунҳои бо калиди хориҷӣ алоқамандро тағир надиҳад.
    • Гузаронидани қисмҳои блоки WHERE ба зерпурсишҳои дорои функсияҳои тиреза иҷозат дода мешавад, ба шарте ки ин қисмҳо бо кор бо константаҳо ва нусхаҳои ифодаҳои блокҳои PARTITION BY, ки дар функсияҳои тиреза истифода мешаванд, маҳдуд бошанд.
  • Тағирот дар интерфейси сатри фармон:
    • Фармони ".filectrl data_version" илова карда шуд.
    • Фармонҳои ".once" ва ".output" ҳоло интиқоли натиҷаро ба коркардкунандае, ки бо истифода аз қубурҳои номнамуд ("|") даъват шудаанд, дастгирӣ мекунанд.
    • Аргументҳои "stmt" ва "vmstep" ба фармони ".stats" барои намоиш додани омор дар ифодаҳо ва ҳисобкунакҳои мошини виртуалӣ илова карда шудаанд.

Манбаъ: opennet.ru

Илова Эзоҳ