Үүсгэсэн баганын дэмжлэгтэй DBMS SQLite 3.31 хувилбар

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

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

  • Нэмэлт дэмжлэг үүсгэсэн баганууд (тооцоолсон баганууд) нь өөр баганын агуулгад үндэслэн утгыг автоматаар тооцдог хүснэгт үүсгэх үед баганыг тодорхойлох боломжийг олгодог. Үүсгэсэн баганууд нь виртуал (хандах бүрт шууд үүсгэгддэг) эсвэл мэдээллийн санд хадгалагддаг (холбогдох баганыг шинэчлэх бүрт хадгалагддаг) байж болно. Үүсгэсэн баганын агуулгыг зөвхөн унших горимд ашиглах боломжтой (өөрчлөлтийг зөвхөн тооцоололд оролцсон өөр баганын утгыг өөрчлөх замаар хийдэг). Жишээлбэл:

    t1 ХҮСНЭГТ ҮЗҮҮЛЭХ(
    БҮХЭЛ ТООН АНХАН ТҮЛХҮҮР,
    б INT,
    c TEXT,
    d ОРОЛЦООГ ҮРГЭЛЖ (a*abs(b)) ВИРТУАЛ БОЛГОГДСОН,
    e ТЕКСТИЙГ ҮРГЭЛЖ ҮҮСГЭДЭГ (substr(c,b,b+1)) ХАДГАЛСАН
    );

  • ПРАГМА нэмсэн итгэмжлэгдсэн_схем, тохиргоо SQLITE_DBCONFIG_TRUSTED_SCHEMA болон угсралтын сонголт "-DSQLITE_TRUSTED_SCHEMA" нь хамгаалалтыг оруулахыг хянах боломжийг танд олгоно. дайралт мэдээллийн сан дахь өгөгдлийн схемийг өөрчлөх замаар. Идэвхтэй хамгаалалт нь триггер, харагдац, CHECK болон өгөгдмөл мэдэгдэл, индекс, үүсгэсэн баганад SQL функцийг (SQLITE_INNOCUOUS гэж тэмдэглээгүй) ашиглахыг хязгаарладаг. Виртуал хүснэгтийг SQLITE_VTAB_INNOCUOUS далбаагаар тодорхой зарлаагүй бол триггер болон харагдац дахь виртуал хүснэгтийг ашиглах нь мөн идэвхгүй болно.
  • Аппликейшнүүдэд тодорхойлсон SQL функцүүдэд шинж чанаруудыг оноох чадварыг хэрэгжүүлсэн SQLITE_INNOCUOUS (гадаад параметрээс хамаардаггүй, хортой үйлдэл хийхэд ашиглах боломжгүй хор хөнөөлгүй функцууд) болон SQLITE_DIRECTONLY (Зөвхөн SQL асуулгад шууд дуудлага хийх, триггер, харагдац, өгөгдлийн бүтцийн диаграммд ашиглах боломжгүй);
  • Нэмэлт модуль uid UUID боловсруулах функцүүдийн хэрэгжилттэй (RFC-4122);
  • ПРАГМА нэмсэн хатуу_овоолгын_хязгаар ба функц sqlite3_hard_heap_limit64() хамгийн их овоолгын хэмжээг хянах;
  • ПРАГМА-д функцийн_жагсаалт функц бүрийн төрөл, шинж чанар, аргументуудын тоог нэмсэн гаралт;
  • DBSTAT виртуал хүснэгт рүү нэмсэн өгөгдөл нэгтгэх горим;
  • sqlite3_open_v2() нь SQLITE_OPEN_NOFOLLOW сонголтыг хэрэгжүүлдэг бөгөөд энэ нь симбол холбоосыг нээхийг идэвхгүй болгох боломжийг олгодог;
  • Маргааны хувьд PATH, JSON функцууд руу шилжсэн, "#-N" массив тэмдэглэгээний дэмжлэгийг нэмсэн;
  • Санах ойн түгээлтийн системд хажуу тийшээ харах Хоёр тусдаа санах ойн санд зориулсан дэмжлэгийг хэрэгжүүлсэн бөгөөд тус бүрийг өөр өөр хэмжээтэй блокуудыг хуваарилахад ашиглаж болно (тусгаарлах нь хажуугийн системийн хэрэглээг өргөжүүлэхийн зэрэгцээ холболт бүрт хуваарилагдсан буферийн хэмжээг 120-аас 48 болгон багасгах боломжийг олгодог. KB);
  • ПРАГМА-ын дэмжлэгийг зогсоосон хуучин_файлын_формат, энэ нь VACUUM, үүсгэсэн баганууд болон буурах индекстэй нийцэхгүй байсан (хуучин форматын дэмжлэгийг sqlite3_db_config() дахь SQLITE_DBCONFIG_LEGACY_FILE_FORMAT туг ашиглан буцаах боломжтой).

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

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