Выпуск СУБД SQLite 3.42 и DuckDB 0.8.0. CG/SQL с реализацией хранимых процедур для SQLite

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
19-Май-2023 13:56

Опубликован релиз SQLite 3.42, легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg.
Основные изменения:
  • Для полнотекстовых индексов FTS5 реализована команда secure-delete, производящая полную чистку всех остаточных данных после удаления.
  • В функциях для обработки данных в формате JSON реализована поддержка расширений JSON5.
  • Улучшен планировщик запросов. По умолчанию включена оптимизация
    "count-of-view". Исключена обработка неиспользуемых столбцов в подзапросах. Улучшена реализация оптимизации push-down.
  • В интерфейс командной строки добавлена опция "--unsafe-testing", позволяющая использовать некоторые опасные команды, такие как ".testctrl", предназначенные для применения при тестировании. В безопасном режиме ("--safe") разрешено использование команд ".log on" и ".log off". Добавлена поддержка разделителя "--", для аргументов после которого отключается обработка опций. Добавлены параметры ":inf" и ":nan", связанные со значениями бесконечность и NaN.
  • В именах определяемых на стороне приложения SQL-функций разрешено пересечение с ключевыми словами CROSS, FULL, INNER, LEFT, NATURAL, OUTER и RIGHT.
  • Расширены возможности PRAGMA integrity_check. Добавлена проверка указания значения NaN в столбцах с условием NOT NULL. Улучшена информативность сообщений об ошибках.
  • В дополнении session разрешён перехват изменений из таблиц без ROWID.
  • В функции для работы со временем и датами добавлен модификатор "subsec" для использования долей секунд.
  • Глубина рекурсии для массивов и объектов JSON по умолчанию уменьшена с 2000 до 1000.

Кроме того, сформирован выпуск СУБД DuckDB 0.8.0, развивающей вариант SQLite, расширенный возможностями и оптимизациями для выполнения аналитических запросов, охватывающих значительную часть хранимых данных, например, выполняющих агрегирование всего содержимого таблиц или слияние нескольких больших таблиц. Предоставляется расширенный диалект языка SQL, включающий дополнительные возможности для обработки очень сложных и длительно выполняемых запросов, а также поддерживающий сложные типы (массивы, структуры, объединения), одновременное выполнение нескольких запросов и выполнение запросов напрямую из файлов в формате CSV, JSON и Parquet. Имеется возможность импорта из СУБД PostgreSQL.
Помимо кода оболочки из SQLite проектом используется вынесенный в отдельную библиотеку парсер из PostgreSQL, компонент Date Math из MonetDB, своя реализация оконных функций (на базе алгоритма Segment Tree Aggregation), обработчик регулярных выражений на основе библиотеки RE2, собственные оптимизатор запросов, MVCC-механизм управления одновременным выполнением заданий (Multi-Version Concurrency Control), а также векторизированный движок выполнения запросов на базе алгоритма Hyper-Pipelining Query Execution, позволяющий в одной операции разом обрабатывать большие наборы значений. Код проекта распространяется под лицензией MIT.
В новой версии DuckDB:
  • Добавлены новые выражения "PIVOT" и "UNPIVOT" для трансформации строк в столбцы и наоборот.
  • Улучшено распараллеливание при импорте и экспорте данных.
    По умолчанию реализовано чтение из файлов в формате CSV в несколько потоков и многопоточная запись при использовании форматов Parquet, CSV и JSON.
  • Добавлен оператор "**" для рекурсивного перебора каталогов при определении файловых путей (например, FROM "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Добавлена поддержка операций слияния (JOIN) для данных в форме временного ряда (срезы значений параметров через заданные промежутки времени), в которых в качестве критерия слияния записей используется не точное, а приблизительное совпадение значений в поле со временем (например, можно объединить записи, время которых отличается не больше, чем на 1 минуту).
  • Реализована отложенная загрузка метаданных БД, позволившая в десятки раз ускорить запуск СУБД.
  • Добавлена поддержка подключения пользовательских функций на языке Python.
  • Добавлена поддержка API ADBC (Arrow Database Connectivity) для передачи данных с использованием Apache Arrow.
  • Реализована привязка для интеграции с кодом на языке Swift.
  • Изменено поведение оператора деления ("/"), который теперь по умолчанию выполняет вычисления с плавающей запятой вместо целочисленных операций. Для целочисленного деления предложен новый оператор "//". Старое поведение можно вернуть настройкой "SET integer_division=true;".
  • Метод учёта нулевых записей при сортировке изменён с "NULLS FIRST" на "NULLS LAST", т.е. значения NULL теперь будут выводиться в конце, а не начале списка. Старое поведение можно вернуть настройкой "SET default_null_order='nulls_first';".

Дополнительно можно отметить развиваемый компанией Facebook проект CG/SQL, предоставляющий генератор кода для использования хранимых процедур с SQLite. CG/SQL позволяет оформить хранимые процедуры на специальном диалекте T-SQL (Transact-SQL), допускающем вызов функций стандартной Си-библиотеки и обращение к данным в SQLite. Созданные хранимые процедуры компилируются в код на языке Си, использующий SQLite C API для выполнения заданных действий и обработки сложных запросов. Скомпилированные хранимые процедуры могут подключаться к программам на языках Си, Java и Objective-C. Код проекта написан на языке Си и распространяется под лицензией MIT.
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_sqlite, #_duckdb, #_cgsql
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 03:16
Часовой пояс: UTC + 5