Представлен релиз SQLite 3.12.0 — компактной встраиваемой реляционной СУБД, находящейся в общественном достоянии.
Потенциально разрушительное изменение:
Значение SQLITE_DEFAULT_PAGE_SIZE увеличено с 1024 до 4096. Значение SQLITE_DEFAULT_CACHE_SIZE изменено с 2000 на -2000, таким образом такое же количество кэш-памяти используется по умолчанию. Подробности.
Основные изменения:
- Улучшения в генераторе Lemon, позволяющие создавать более быстрый SQL парсер меньшего размера.
- Более эффективная обработка SQL функций задаваемых приложением, особенно в случаях, когда приложение определяет сотни или тысячи функций.
- Конфигурационный скрипт (на unix) автоматически определяет наличие pread() и pwrite() и устанавливает соответствующие опции времени компиляции, чтобы использовать эти интерфейсы операционной системы, если они доступны.
- Уменьшено количество потребляемой памяти, необходимое для схемы.
- Другие различные микро-оптимизации для улучшения производительности и уменьшения количества используемой памяти.
- В sqlite3_db_config() добавлена опция SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER которая позволяет включить или выключить двух-аргументную версию SQL функции fts3_tokenizer() в рантайме.
- В RBU расширение добавлен интерфейс sqlite3rbu_bp_progress().
- Выражение PRAGMA defer_foreign_keys=ON теперь также выключает RESTRICT действия для внешних ключей.
- Добавлен интерфейс sqlite3_system_errno().
- Добавлены опции времени компиляции SQLITE_DEFAULT_SYNCHRONOUS и SQLITE_DEFAULT_WAL_SYNCHRONOUS. SQLITE_DEFAULT_SYNCHRONOUS заменяет опцию SQLITE_EXTRA_DURABLE, которая больше не поддерживается.
- Команда ".stats" шелла теперь показывает больше информации о производительности ввода/вывода, пролученной из /proc, когда это возможно.
>>> Подробности