Ntọhapụ nke DBMS SQLite 3.31 nwere nkwado maka kọlụm emepụtara

bipụtara hapụ SQLite 3.31.0, DBMS dị fechaa emebere ka ọbá akwụkwọ nkwụnye. A na-ekesa koodu SQLite dịka ngalaba ọha, ya bụ. enwere ike iji ya na-enweghị mgbochi yana n'efu maka ebumnuche ọ bụla. Nkwado ego maka ndị mmepe SQLite bụ ụlọ ọrụ emebere nke ọma, nke gụnyere ụlọ ọrụ dịka Adobe, Oracle, Mozilla, Bentley na Bloomberg.

Main gbanwee:

  • nkwado agbakwunyere eme ogidi (вычисляемых столбцов), позволяющих при создании таблицы определить столбец, значение которого автоматически вычисляется на основе содержимого другого столбца. Генерируемые столбцы могут быть как виртуальными (формируемыми на лету при каждом обращении), так и сохраняемыми в БД (сохраняются при каждом обновлении связанных столбцов). Содержимое генерируемых столбцов доступно только в режиме чтения (изменение производится только через модификацию значения в другом столбце, задействованном при вычислении). Например:

    CREATE TABLE t1(
    a INTEGER PRIMARY KEY,
    b INT,
    c TEXT,
    d INT GENERATED ALWAYS AS (a*abs(b)) VIRTUAL,
    e TEXT GENERATED ALWAYS AS (substr(c,b,b+1)) STORED
    );

  • Добавлены PRAGMA trusted_schema, n'iji ya gee ntị SQLITE_DBCONFIG_TRUSTED_SCHEMA и сборочная опция «-DSQLITE_TRUSTED_SCHEMA», позволяющие управлять включением защиты от ọgụ через модификацию схемы данных в БД. При активной защите ограничивается использование SQL-функций (не помеченных как SQLITE_INNOCUOUS) в триггерах, представлениях, выражениях CHECK и DEFAULT, индексах и генерируемых столбцах. Также отключается использование виртуальных таблиц в триггерах и представлениях, если виртуальная таблица явно не объявлена с флагом SQLITE_VTAB_INNOCUOUS.
  • Реализована возможность присвоения определённым в приложениях SQL-функциям свойств SQLITE_INNOCUOUS (безобидные функции, которые не зависят от внешних параметров и не могут использоваться для совершения вредоносных действий) и SQLITE_DIRECTONLY (только прямой вызов в SQL-запросах, без возможности применения в триггерах, представлениях и схемах структуры данных);
  • Modul agbakwunyere ọid с реализацией функций для обработки UUID ( RFC-4122);
  • Добавлена PRAGMA hard_heap_limit na ọrụ sqlite3_hard_heap_limit64() для управления максимальным размером кучи;
  • В PRAGMA function_list добавлен вывод типа, свойств и числа аргументов каждой функции;
  • В виртуальную таблицу DBSTAT gbakwunyere режим агрегирования данных;
  • В sqlite3_open_v2() реализована опция SQLITE_OPEN_NOFOLLOW, позволяющая запретить открытие символических ссылок;
  • Для аргумента AHỤ, передаваемого в JSON-функции, добавлена поддержка нотации массивов «#-N»;
  • В системе распределения памяти lookaside реализована поддержка двух отдельных пулов памяти, каждый из которых может использоваться для выделения блоков разного размера (разделение позволяет расширить применение системы lookaside, при этом снизив размер выделяемого на каждое соединение буфера со 120 до 48 КБ);
  • Прекращена поддержка PRAGMA legacy_file_format, которая была несовместима с VACUUM, генерируемыми столбцами и убывающими индексами (поддержку устаревшего формата можно вернуть через флаг SQLITE_DBCONFIG_LEGACY_FILE_FORMAT в sqlite3_db_config()).

isi: opennet.ru

Tinye a comment