Түзүлгөн мамычаларды колдоо менен DBMS SQLite 3.31 чыгаруу

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

негизги өзгөрүүлөр:

  • Кошулган колдоо түзүлгөн мамычалар (эсептелген мамычалар), алар сиз башка тилкенин мазмунуна жараша мааниси автоматтык түрдө эсептелген таблицаны түзгөндө тилкени аныктоого мүмкүндүк берет. Түзүлгөн мамычалар виртуалдык болушу мүмкүн (ар бир кирүү менен тез арада түзүлөт) же маалымат базасында сакталат (тиешелүү мамычалар жаңыртылган сайын сакталат). Түзүлгөн тилкелердин мазмуну окуу режиминде гана жеткиликтүү (өзгөртүүлөр эсептөөгө катышкан башка тилкедеги маанини өзгөртүү аркылуу гана жүргүзүлөт). Мисалы:

    ТАБЛИЦАНЫ ТҮЗҮҮ t1(
    БҮТҮН БИРИНЧИ АЧКЫЧ,
    b INT,
    c ТЕКСТ,
    d ИНТ АР ДАЙЫМ (a*abs(b)) ВИРТУАЛДЫК,
    e ТЕКСТ АР ДАЙЫМ (substr(c,b,b+1)) САКТАЛГАН КАТЫНДА
    );

  • ПРАГМА кошулду ишенимдүү_схема, жөндөө SQLITE_DBCONFIG_TRUSTED_SCHEMA жана “-DSQLITE_TRUSTED_SCHEMA” монтаждоо опциясы, бул сизге каршы коргоону киргизүүнү көзөмөлдөөгө мүмкүндүк берет. кол салуулар маалымат базасында маалымат схемасын өзгөртүү аркылуу. Активдүү коргоо триггерлерде, көрүнүштөрдө, CHECK жана DEFAULT билдирүүлөрүндө, индекстерде жана түзүлгөн мамычаларда SQL функцияларын (SQLITE_INNOCUOUS деп белгиленген эмес) колдонууну чектейт. Виртуалдык таблицалардын SQLITE_VTAB_INNOCUOUS желекчеси менен ачык жарыяланмайынча, триггерлерде жана көрүнүштөрдө виртуалдык таблицаларды колдонуу да өчүрүлөт.
  • Тиркемелерде аныкталган SQL функцияларына касиеттерди дайындоо мүмкүнчүлүгүн ишке ашырды SQLITE_INNOCUOUS (тышкы параметрлерге көз каранды болбогон жана зыяндуу аракеттерди жасоо үчүн колдонулушу мүмкүн болбогон зыянсыз функциялар) жана SQLITE_DIRECTONLY (триггерлерде, көрүнүштөрдө жана берилиштердин структурасынын диаграммаларында колдонуу мүмкүнчүлүгү жок SQL сурамдарында гана түз чалуу);
  • Кошулган модул uuid UUID (RFC-4122) иштетүү боюнча функцияларды ишке ашыруу менен;
  • ПРАГМА кошулду катуу_үймөк_чек жана функциясы sqlite3_hard_heap_limit64() максималдуу үймөк өлчөмүн көзөмөлдөө;
  • ПРАГМАда function_list ар бир функциянын аргументтеринин түрүн, касиеттерин жана санын кошумча чыгаруу;
  • DBSTAT виртуалдык таблицасына кошулду маалыматтарды топтоо режими;
  • sqlite3_open_v2() символдук шилтемелердин ачылышын өчүрүүгө мүмкүндүк берген SQLITE_OPEN_NOFOLLOW опциясын ишке ашырат;
  • Аргумент үчүн PATH, JSON функцияларына өтүп, “#-N” массивинин нотасын колдоону кошту;
  • Эстутум бөлүштүрүү системасында карап эки өзүнчө эс тутум пулун колдоо ишке ашырылды, алардын ар бири ар кандай өлчөмдөгү блокторду бөлүштүрүү үчүн колдонулушу мүмкүн (бөлүнүү ар бир туташуу үчүн бөлүнгөн буфердин өлчөмүн 120дан 48ге чейин кыскартуу менен карап чыгуу системасын колдонууну кеңейтүүгө мүмкүндүк берет. KB);
  • ПРАГМАнын колдоосу токтотулду legacy_file_formatVACUUM, түзүлгөн мамычалар жана төмөндөө индекстери менен шайкеш келбеген (эски форматтын колдоосу sqlite3_db_config() ичиндеги SQLITE_DBCONFIG_LEGACY_FILE_FORMAT желеги аркылуу кайтарылышы мүмкүн).

Source: opennet.ru

Комментарий кошуу