Нашри DBMS SQLite 3.31 бо дастгирии сутунҳои тавлидшуда

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

асосӣ тағйирдиҳӣ:

  • Дастгирии иловашуда сутунҳои тавлидшуда (сутунҳои ҳисобшуда), ки ба шумо имкон медиҳанд, ки ҳангоми сохтани ҷадвале, ки арзиши он дар асоси мундариҷаи сутуни дигар ба таври худкор ҳисоб карда мешавад, сутунро муайян кунед. Сутунҳои тавлидшуда метавонанд виртуалӣ бошанд (бо ҳар як дастрасӣ ба зудӣ тавлид мешаванд) ё дар пойгоҳи додаҳо нигоҳ дошта мешаванд (ҳар дафъае, ки сутунҳои марбута нав карда мешаванд, захира карда мешаванд). Мундариҷаи сутунҳои тавлидшуда танҳо дар ҳолати хондан дастрас аст (тағйирот танҳо тавассути тағир додани арзиш дар сутуни дигаре, ки дар ҳисоб иштирок мекунад, ворид карда мешавад). Барои намуна:

    Эҷоди Ҷадвали t1(
    КАЛИДИ ИБТИДОИ БУТУН,
    б INT,
    c Матн,
    г ИНТ Ҳамеша ҳамчун (a*abs(b)) ВИРТУАЛӢ тавлид мешавад,
    e Матн Ҳамеша ҳамчун (substr(c,b,b+1)) ЗАХИРА ШУДААСТ
    );

  • PRAGMA илова карда шуд схемаи боэътимод, танзим SQLITE_DBCONFIG_TRUSTED_SCHEMA ва варианти васлкунӣ "-DSQLITE_TRUSTED_SCHEMA", ки ба шумо имкон медиҳад, ки дохил кардани муҳофизатро назорат кунед. ҳамла тавассути тағир додани схемаи маълумот дар базаи маълумот. Муҳофизати фаъол истифодаи функсияҳои SQL-ро (SQLITE_INNOCUOUS қайд карда нашудааст) дар триггерҳо, намудҳо, изҳороти CHECK ва DEFAULT, индексҳо ва сутунҳои тавлидшуда маҳдуд мекунад. Истифодаи ҷадвалҳои виртуалӣ дар триггерҳо ва намудҳо низ ғайрифаъол аст, агар ҷадвали виртуалӣ бо парчами SQLITE_VTAB_INNOCUOUS ба таври возеҳ эълон карда нашавад.
  • Қобилияти таъин кардани хосиятҳо ба функсияҳои SQL, ки дар барномаҳо муайян шудаанд, амалӣ карда шуд SQLITE_INNOCUOUS (функсияҳои безарар, ки аз параметрҳои беруна вобаста нестанд ва барои иҷрои амалҳои зараровар истифода намешаванд) ва SQLITE_DIRECTONLY (танҳо занги мустақим дар дархостҳои SQL, бидуни имкони истифода дар триггерҳо, намоишҳо ва диаграммаҳои сохтори додаҳо);
  • Модули иловашуда uuid бо иҷрои вазифаҳои коркарди UUID (RFC-4122);
  • PRAGMA илова карда шуд маҳдудияти_сахт ва вазифа sqlite3_hard_heap_limit64() барои назорат кардани андозаи ҳадди аксар;
  • Дар ПРАГМА функсионалӣ_рӯйхати баромади иловагии намуд, хосиятҳо ва шумораи аргументҳои ҳар як функсия;
  • Ба ҷадвали виртуалии DBSTAT илова намуд режими ҷамъкунии маълумот;
  • sqlite3_open_v2() варианти SQLITE_OPEN_NOFOLLOW-ро амалӣ мекунад, ки ба шумо имкон медиҳад, ки кушодани истинодҳои рамзӣ ғайрифаъол карда шавад;
  • Барои баҳс ПАТШ, ба функсияҳои JSON интиқол дода шуд, дастгирии иловагии аломати массиви "#-N";
  • Дар системаи тақсимоти хотира нигарист дастгирии ду ҳавзи хотираи алоҳида амалӣ карда шуд, ки ҳар кадоми онҳоро барои ҷудо кардани блокҳои андозаҳои гуногун истифода бурдан мумкин аст (ҷудокунӣ ба шумо имкон медиҳад, ки истифодаи системаи назарро васеъ карда, андозаи буфери барои ҳар як пайвастшавӣ ҷудошударо аз 120 то 48 кам кунед. KB);
  • Дастгирии PRAGMA қатъ карда шуд формати_legacy_file, ки бо VACUUM, сутунҳои тавлидшуда ва индексҳои коҳишшаванда номувофиқ буд (дастгирии формати кӯҳна метавонад тавассути парчами SQLITE_DBCONFIG_LEGACY_FILE_FORMAT дар sqlite3_db_config() баргардонида шавад).

Манбаъ: opennet.ru

Илова Эзоҳ