SQLite 3.35 хувилбар

SQLite 3.35, залгаас номын сан хэлбэрээр зохион бүтээсэн хөнгөн DBMS-ийн хувилбар хэвлэгдэн гарлаа. SQLite кодыг олон нийтэд түгээдэг, i.e. ямар ч зорилгоор ямар ч хязгаарлалтгүйгээр, үнэ төлбөргүй ашиглаж болно. SQLite хөгжүүлэгчдэд зориулсан санхүүгийн дэмжлэгийг Adobe, Oracle, Mozilla, Bentley, Bloomberg зэрэг компаниудыг багтаасан тусгайлан байгуулагдсан консорциум гүйцэтгэдэг.

Үндсэн өөрчлөлтүүд:

  • SQL-д ашиглах боломжтой математик функцуудыг (log2(), cos(), tg(), exp(), ln(), pow() гэх мэт) нэмсэн. Суулгасан функцуудыг идэвхжүүлэхийн тулд "-DSQLITE_ENABLE_MATH_FUNCTIONS" сонголтоор бүтээх шаардлагатай.
  • Хүснэгтээс баганыг устгах, өгөгдсөн баганад өмнө нь хадгалагдсан өгөгдлийг арилгахын тулд "ХҮСНЭГТИЙГ ӨӨРЧЛӨХ БАГАНА" илэрхийллийн дэмжлэгийг хэрэгжүүлсэн.
  • UPSERT (нэмэх-өөрчлөх) үйл ажиллагааны хэрэгжилтийг өргөтгөж, "INSERT ... ЗӨРЧИЛДӨӨ ЮМ БҮҮ/ШИНЭЧЛЭХ" гэх мэт хэллэгээр дамжуулан алдааг үл тоомсорлох эсвэл нэмэх боломжгүй бол оруулахын оронд шинэчлэлт хийх боломжийг олгосон. "INSERT"-ээр дамжуулан өгөгдөл (жишээ нь, хэрэв бичлэг байгаа бол INSERT-ийн оронд UPDATE хийж болно). Шинэ хувилбар нь дарааллаар нь боловсруулагдах олон ON CONFLICT блокуудыг зааж өгөх боломжийг танд олгоно. Сүүлийн "ON CONFLICT" блок нь "DO UPDATE"-г ашиглахын тулд зөрчилдөөнийг тодорхойлох параметрийг орхихыг зөвшөөрдөг.
  • DELETE, INSERT, UPDATE үйлдлүүд нь RETURNING илэрхийллийг дэмждэг бөгөөд үүнийг устгасан, оруулсан эсвэл өөрчилсөн бичлэгийн агуулгыг харуулахад ашиглаж болно. Жишээлбэл, "... буцах id-д оруулах" илэрхийлэл нь нэмсэн мөрийн тодорхойлогчийг буцаана, "шинэчлэх ... үнэ тогтоох = үнэ * 1.10 буцах үнэ" нь өөрчлөгдсөн үнийн утгыг буцаана.
  • WITH мэдэгдлийг ашиглан тодорхойлсон түр зуурын нэрлэсэн үр дүнгийн багцыг ашиглахыг зөвшөөрдөг нийтлэг хүснэгтийн илэрхийлэлүүдийн (CTE) хувьд "MATERIALIZED" болон "NOT MATERIALIZED" горимуудыг сонгохыг зөвшөөрнө. "MATERIALIZED" гэдэг нь харагдацад заасан хайлтыг тусдаа физик хүснэгтэд кэш хийж, дараа нь энэ хүснэгтээс өгөгдлийг татаж авахыг хэлдэг бөгөөд "MATERIALIZED" -аар харагдац руу хандах бүрт давтан асуулга хийгдэх болно. SQLite нь анх "MATERIALIZED" гэсэн тохиргоотой байсан бол одоо нэгээс олон удаа ашигласан CTE-д зориулж "MATERIALIZED" болж өөрчлөгдсөн.
  • Маш том TEXT эсвэл BLOB утгыг агуулсан мэдээллийн сан дээр VACUUM үйлдлийг гүйцэтгэх үед санах ойн зарцуулалтыг багасгасан.
  • Оновчлогч болон асуулга төлөвлөгчийн гүйцэтгэлийг нэмэгдүүлэх ажлыг хийсэн.
    • "IN" илэрхийлэл бүхий min ба max функцийг ашиглах үед оновчлолыг нэмсэн.
    • EXISTS мэдэгдлийн гүйцэтгэлийг хурдасгасан.
    • JOIN-ийн нэг хэсэг болгон ашигладаг UNION ALL илэрхийллүүдийн дэд асуулгын өргөтгөлийг хэрэгжүүлсэн.
    • Индексийг IS NOT NULL илэрхийлэлд ашигладаг.
    • "X IS NULL" болон "x IS NOT NULL"-г "NOT NULL" шинж чанартай баганын хувьд ХУДАЛ эсвэл ҮНЭН рүү хөрвүүлэхийг баталгаажуулна.
    • Хэрэв үйлдэл нь гадаад түлхүүртэй холбоотой баганыг өөрчлөхгүй бол UPDATE-д гадаад түлхүүрүүдийг шалгахыг алгасах.
    • Цонхны функцэд хэрэглэгддэг PARTITION BY блокуудын тогтмол тоо болон илэрхийллийн хуулбартай ажиллахад хязгаарлагдмал байвал WHERE блокийн хэсгүүдийг цонхны функц агуулсан дэд асуулгад шилжүүлэхийг зөвшөөрнө.
  • Тушаалын мөрийн интерфейсийн өөрчлөлтүүд:
    • ".filectrl data_version" командыг нэмсэн.
    • ".once" болон ".output" командууд нь одоо нэргүй хоолой ("|") ашиглан дуудагдсан зохицуулагч руу гаралтыг дамжуулахыг дэмждэг.
    • ".stats" команд дээр "stmt" болон "vmstep" аргументуудыг нэмсэн бөгөөд илэрхийлэл болон виртуал машины тоолуурын статистикийг харуулах болно.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх