SQLite 3.35 ਰੀਲੀਜ਼

SQLite 3.35 ਦੀ ਰੀਲੀਜ਼, ਇੱਕ ਪਲੱਗ-ਇਨ ਲਾਇਬ੍ਰੇਰੀ ਦੇ ਰੂਪ ਵਿੱਚ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਇੱਕ ਹਲਕਾ DBMS, ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। SQLite ਕੋਡ ਨੂੰ ਜਨਤਕ ਡੋਮੇਨ ਵਿੱਚ ਵੰਡਿਆ ਜਾਂਦਾ ਹੈ, ਯਾਨੀ. ਪਾਬੰਦੀਆਂ ਤੋਂ ਬਿਨਾਂ ਅਤੇ ਕਿਸੇ ਵੀ ਉਦੇਸ਼ ਲਈ ਮੁਫਤ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। SQLite ਡਿਵੈਲਪਰਾਂ ਲਈ ਵਿੱਤੀ ਸਹਾਇਤਾ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਬਣਾਏ ਗਏ ਕੰਸੋਰਟੀਅਮ ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਜਿਸ ਵਿੱਚ Adobe, Oracle, Mozilla, Bentley ਅਤੇ Bloomberg ਵਰਗੀਆਂ ਕੰਪਨੀਆਂ ਸ਼ਾਮਲ ਹਨ।

ਮੁੱਖ ਬਦਲਾਅ:

  • Добавлены встроенные математические функции (log2(), cos(), tg(), exp(), ln(), pow() и т.п.), которые можно использовать в SQL. Для включения встроенных функций требуется сборка с опцией «-DSQLITE_ENABLE_MATH_FUNCTIONS».
  • Реализована поддержка выражения «ALTER TABLE DROP COLUMN» для удаления столбцов из таблицы и очистки ранее хранившихся в данном столбце данных.
  • Расширена реализация операции UPSERT (добавить-или-модифицировать), позволяющей через выражения вида «INSERT … ON CONFLICT DO NOTHING/UPDATE» игнорировать ошибку или выполнить обновление вместо вставки в случае невозможности добавления данных через «INSERT» (например, если запись уже существует, вместо INSERT можно выполнить UPDATE). В новой версии разрешено указание нескольких блоков «ON CONFLICT», которые будут обработаны в порядке следования. В последнем блоке «ON CONFLICT» разрешено не указывать параметр определения конфликта для использования «DO UPDATE».
  • В операциях DELETE, INSERT и UPDATE реализована поддержка выражения RETURNING, при помощи которого можно вывести содержимое удалённой, вставленной или изменённой записи. Например, выражение «insert into … returning id» вернёт идентификатор добавленной строки, а «update … set price = price * 1.10 returning price» вернёт изменённое значение price.
  • Для обобщённых табличных выражений (Common Table Expression, CTE), позволяющих использовать временные именованные результирующие наборы, задаваемые при помощи оператора WITH, разрешён выбор режимов «MATERIALIZED» и «NOT MATERIALIZED». «MATERIALIZED» подразумевает кэширование заданного в представлении запроса в отдельной физической таблице с последующей выборкой данных из этой таблицы, а при «NOT MATERIALIZED» при каждом обращении к представлению будут осуществляться повторные запросы. Изначально в SQLite по умолчанию использовался режим «NOT MATERIALIZED», но теперь для CTE, используемых более одного раза, изменён на «MATERIALIZED».
  • Сокращено потребление памяти при выполнении операции VACUUM для БД, включающих очень большие значения с типами TEXT или BLOB.
  • Проведена работа по увеличению производительности оптимизатора и планировщика запросов:
    • Добавлены оптимизации при использовании функций min и max с выражением «IN».
    • Ускорено выполнение оператора EXISTS.
    • Реализовано развёртывание подзапросов из выражений UNION ALL, используемых в составе JOIN.
    • Задействован индекс для выражений IS NOT NULL.
    • Обеспечено преобразование «x IS NULL» и «x IS NOT NULL» в FALSE или TRUE для столбцов, имеющих признак «NOT NULL».
    • Пропущена проверка внешних ключей в UPDATE, если операция не меняет столбцов, связанных с внешним ключом.
    • Разрешено перемещение частей блока WHERE в подзапросы, содержащие оконные функции, если эти части ограничены работой с константами и копиями выражений из блоков «PARTITION BY», используемых в оконных функциях.
  • Изменения в интерфейсе командной строки:
    • Добавлена команда «.filectrl data_version».
    • В командах «.once» и «.output» добавлена поддержка передачи вывода в обработчик, вызываемый с использованием неименованных каналов («|»).
    • В команду «.stats» добавлены аргументы «stmt» и «vmstep» для вывода статистики по выражениям и счётчиков виртуальной машины.

ਸਰੋਤ: opennet.ru

ਇੱਕ ਟਿੱਪਣੀ ਜੋੜੋ