Yaratilgan ustunlarni qo'llab-quvvatlash bilan DBMS SQLite 3.31 versiyasi

nashr etilgan reliz SQLite 3.31.0, plagin kutubxonasi sifatida yaratilgan engil DBMS. SQLite kodi ommaviy domen sifatida tarqatiladi, ya'ni. har qanday maqsadda cheklovlarsiz va bepul foydalanish mumkin. SQLite ishlab chiquvchilari uchun moliyaviy yordam Adobe, Oracle, Mozilla, Bentley va Bloomberg kabi kompaniyalarni o'z ichiga olgan maxsus yaratilgan konsorsium tomonidan amalga oshiriladi.

asosiy o'zgartirish:

  • Qo'shilgan qo'llab-quvvatlash yaratilgan ustunlar (hisoblangan ustunlar), bu sizga boshqa ustunning mazmuni asosida qiymati avtomatik ravishda hisoblangan jadvalni yaratishda ustunni belgilash imkonini beradi. Yaratilgan ustunlar virtual (har bir kirish bilan tezda yaratilgan) yoki ma'lumotlar bazasida saqlanishi mumkin (tegishli ustunlar har safar yangilanganda saqlanadi). Yaratilgan ustunlarning mazmuni faqat o'qish rejimida mavjud (o'zgartirishlar faqat hisoblashda ishtirok etgan boshqa ustundagi qiymatni o'zgartirish orqali amalga oshiriladi). Masalan:

    t1 JADVAL YARATISH(
    Butun sonli birlamchi kalit,
    b INT,
    c MATN,
    d DOIMO (a*abs(b)) VIRTUAL SIFATDA YARALANGAN INT,
    e MATN HAR DOIMA (substr(c,b,b+1)) SAQLANILGAN
    );

  • PRAGMA qo'shildi ishonchli_sxema, sozlash SQLITE_DBCONFIG_TRUSTED_SCHEMA va "-DSQLITE_TRUSTED_SCHEMA" yig'ish opsiyasi, bu sizga qarshi himoyani kiritishni nazorat qilish imkonini beradi. hujumlar ma'lumotlar bazasidagi ma'lumotlar sxemasini o'zgartirish orqali. Faol himoya SQL funksiyalaridan (SQLITE_INNOCUOUS belgilanmagan) triggerlarda, ko'rinishlarda, CHECK va DEFAULT bayonotlarida, indekslarda va yaratilgan ustunlarda foydalanishni cheklaydi. Agar virtual jadval aniq SQLITE_VTAB_INNOCUOUS bayrog'i bilan e'lon qilinmasa, triggerlar va ko'rinishlarda virtual jadvallardan foydalanish ham o'chirib qo'yiladi.
  • Ilovalarda belgilangan SQL funksiyalariga xossalarni belgilash imkoniyati amalga oshirildi SQLITE_INNOCUOUS (tashqi parametrlarga bog'liq bo'lmagan va zararli harakatlarni amalga oshirish uchun ishlatib bo'lmaydigan zararsiz funktsiyalar) va SQLITE_DIRECTONLY (faqat SQL so'rovlarida to'g'ridan-to'g'ri qo'ng'iroq qilish, triggerlar, ko'rinishlar va ma'lumotlar strukturasi diagrammalarida foydalanish imkoniyatisiz);
  • Qo'shilgan modul uuid UUIDni qayta ishlash funktsiyalarini amalga oshirish bilan (RFC-4122);
  • PRAGMA qo'shildi qattiq_uyum_chegarasi va funktsiya sqlite3_hard_heap_limit64() maksimal to'p hajmini nazorat qilish;
  • PRAGMAda funktsiya_roʻyxati har bir funktsiyaning turi, xususiyatlari va argumentlar sonining qo'shilgan chiqishi;
  • DBSTAT virtual jadvaliga qo'shildi ma'lumotlarni yig'ish rejimi;
  • sqlite3_open_v2() ramziy havolalarni ochishni o'chirish imkonini beruvchi SQLITE_OPEN_NOFOLLOW variantini amalga oshiradi;
  • Bahs uchun PATH, JSON funksiyalariga o‘tdi, “#-N” massiv notatsiyasini qo‘llab-quvvatladi;
  • Xotirani tarqatish tizimida chetga qarash ikkita alohida xotira havzasini qo'llab-quvvatlash amalga oshirildi, ularning har biri turli o'lchamdagi bloklarni ajratish uchun ishlatilishi mumkin (ajratish har bir ulanish uchun ajratilgan bufer hajmini 120 dan 48 gacha qisqartirish bilan birga, tashqi tizimdan foydalanishni kengaytirishga imkon beradi. KB);
  • PRAGMA-ni qo'llab-quvvatlash to'xtatildi eski_fayl_formati, VACUUM, yaratilgan ustunlar va kamayib borayotgan indekslar bilan mos kelmaydigan (eski formatni qo'llab-quvvatlash sqlite3_db_config() da SQLITE_DBCONFIG_LEGACY_FILE_FORMAT bayrog'i orqali qaytarilishi mumkin).

Manba: opennet.ru

a Izoh qo'shish