[size="3"]Вышел релиз SQLite 3.6.11[/size]
Вышел (http://www.sqlite.org/releaselog/3_6_11.html) релиз SQLite 3.6.11. В новой версии, кроме исправления ошибок, представлен интерфейс (http://www.sqlite.org/c3ref/backup_finish.html) для горячего резервного копирования, командную оболочку добавлены команды ".backup" и ".restore". Кроме того на сайте перерисованы некоторые диаграммы (http://www.sqlite.org/syntaxdiagrams.html) с демонстрацией синтаксиса SQL диалекта, поддерживаемого в SQLite.
http://www.opennet.r...shtml?num=20361 (http://www.opennet.ru/opennews/art.shtml?num=20361)
[size="3"]Реализация системы репликации для SQLite[/size]
Увидела свет утилита sqlite3-rdiff, предназначенная для организации репликации данных между несколькими БД SQLite. Утилита поддерживает три базовые операции:
1. Формирование файла хэш-сигнатур, отражающих текущее состояние всех записей БД.
2. Генерацию delta-патча на основе сравнения текущего состояния базы с состоянием отраженным в файле сигнатур.
3. Обновление данных в БД на основе заданного delta-патча:
Сигнатуры вычисляются с использованием хэш-функции MurmurHash для всех данных одной строки или группы строк базы. Размер файла сигнатур занимает около 10% от размера исходной базы, но имеется возможность вычисления и проверки сигнатур сразу для нескольких строк, что позволяет значительно сократить размер файла сигнатур за счет увеличения размера delta-патча. Примечательно, что при генерации одной сигнатуры для N-строк, размер файла с сигнатурами уменьшается в N раз. Группировку предпочтительно использовать для баз большого размера, данные в которых изменяются не часто.
Пример по доведению необновленной версии slave.db до актуальной БД master.db:
sqlite3-rdiff --rows-per-hash 16 signature slave.db slave.db.sign
sqlite3-rdiff delta slave.db.sign master.db slave.db.delta
sqlite3-rdiff patch slave.db slave.db.delta slave.db
В итоге, для slave.db размером 1.5 Гб будет сгенерирован патч slave.db.delta размером 4.3 Мб и файл сигнатур slave.db.signature размером 13 Мб. В данный пример (--rows-per-hash 16) сигнатура создается для 16 строк таблицы, если формировать сигнатуру для каждой строки, то итоговые файлы будут следующего размера: slave.db.delta - 3.4 Мб, slave.db.signature - 160 Мб.
http://www.opennet.r...shtml?num=24835 (http://www.opennet.ru/opennews/art.shtml?num=24835)
[size="3"]Релиз БД SQLite 3.7.5 [/size]Вышел (http://www.sqlite.org/releaselog/3_7_5.html) релиз БД SQLite 3.7.5, в котором, кроме исправления ошибок, добавлены следующие новшества:
- Реализована функция форматирования строк sqlite3_vsnprintf() (http://www.sqlite.org/c3ref/mprintf.html);
- В интерфейс sqlite3_db_status() (http://www.sqlite.org//c3ref/db_status.html) добавлена поддержка опций SQLITE_DBSTATUS_LOOKASIDE_HIT (http://www.sqlite.org//c3ref/c_dbstatus_cache_used.html), SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE (http://www.sqlite.org//c3ref/c_dbstatus_cache_used.html) и SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL (http://www.sqlite.org//c3ref/c_dbstatus_cache_used.html);
- Добавлены используемые на этапе компиляции опции SQLITE_OMIT_AUTORESET (http://www.sqlite.org/compile.html#omit_autoreset) и SQLITE_DEFAULT_FOREIGN_KEYS (http://www.sqlite.org/compile.html#default_foreign_keys);
- Переработана функция sqlite3_stmt_readonly() (http://www.sqlite.org/c3ref/stmt_readonly.html), которая теперь поддерживает все предварительно подготовленные запросы (prepared statement) и работает в сочетании с VACUUM;
- В cli-интерфейс добавлена поддержка опции "-heap" ;
- Устранена ошибка (http://www.sqlite.org/src/info/5d863f876e), которая могла привести к повреждению базы в ситуации частых изменений данных, затрагивающих и не затрагивающих WAL, при одновременном выполнении VACUUM;
- Расширены возможности механизма sqlite3_trace() (http://www.sqlite.org/c3ref/profile.html), связанные с улучшением наглядности вывода результатов трассировки, при использовании виртуальных таблиц FTS3/4 и RTREE;
- Для поддерживаемых типов VFS изменен метод xFileControl(), который теперь возвращает SQLITE_NOTFOUND (http://www.sqlite.org/c3ref/c_abort.html) вместо SQLITE_ERROR для неопределенных типов операций;
- При отключенной "PRAGMA synchronous (http://www.sqlite.org/pragma.html#pragma_synchronous)", SQLite теперь использует для управления файлами метод синхронизации SQLITE_FCNTL_SYNC_OMITTED, вместо вызова xSync.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=29446)
[size="3"]Релиз БД SQLite 3.7.7 [/size]Доступен (http://www.sqlite.org/releaselog/3_7_7.html) релиз БД SQLite 3.7.7, в котором, кроме исправления ошибок, добавлены следующие новшества:
- Добавлена поддержка (http://www.sqlite.org/uri.html) загрузки БД по имени, заданному в форме URI;
- Добавлен интерфейс sqlite3_vtab_config() (http://www.sqlite.org/c3ref/vtab_config.html) в рамках поддержки выражений "ON CONFLICT (http://www.sqlite.org/lang_conflict.html)" для виртуальных таблиц;
- В виртуальных таблицах добавлены (http://www.sqlite.org/vtab.html#xsavepoint) методы xSavepoint, xRelease и xRollbackTo для обеспечения работы выражения "SAVEPOINT (http://www.sqlite.org/lang_savepoint.html)";
- Обновлена встроенная реализация виртуальных таблиц FTS3/FTS4 (http://www.sqlite.org/fts3.html) и RTREE (http://www.sqlite.org/rtree.html) в рамках поддержки выражений "ON CONFLICT (http://www.sqlite.org/lang_conflict.html)" и "REPLACE (http://www.sqlite.org/lang_replace.html)";
- Проведена оптимизация, исключившая лишний парсинг схемы БД;
- В FTS4 индексах добавлена поддержка опций для задания префикса (http://www.sqlite.org/fts3.html#fts4prefix) и метода упорядочивания (http://www.sqlite.org/fts3.html#fts4order);
- Реализована возможность открытия работающих в WAL-режиме (http://www.sqlite.org/wal.html) баз только на чтение, до момента завершения текущих на момент открытия операций записи и чтения.
- Добавлена поддержка (http://www.sqlite.org/shortnames.html) в процессе работы коротких имен файлов (8+3). Например, вместо "app.db-wal" при указании опции "8_3_names=1" будет использоваться файл "app.wal".
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=31000)
[size="3"]Подборка расширений к SQLite и полнотекстовая система поиска с поддержкой словоформ [/size]Представлен (http://sqlite.mobigroup.ru/wiki?name=extensions) список расширений для БД SQLite, среди которых ICU (http://mobigroup.ru/debian/pool-squeeze/main/s/sqlite3-ext-icu/), FTS3 (http://mobigroup.ru/debian/pool-squeeze/main/s/sqlite3-ext-fts3/), реализация (http://sqlite.mobigroup.ru/dir?name=ext/compress) функций упаковки и распаковки данных с использованием zlib, подборка (http://sqlite.mobigroup.ru/wiki?name=ext_inet) функций для манипулирования IPv4 адресами, генератор UUID (http://sqlite.mobigroup.ru/dir?name=ext/uuid), реализация хэшей MD5 (http://sqlite.mobigroup.ru/dir?name=ext/md5) и SHA1 (http://mobigroup.ru/debian/pool-squeeze/main/s/sqlite3-ext-sha1/). Также поддерживается набор утилит (http://sqlite.mobigroup.ru/wiki?name=utils) для работы со справочником адресов КЛАДР, конвертацией баз данных XBase в формат SQLite и репликации БД SQLite.
Кроме того, обновлена поисковая система Poisk (http://sqlite.mobigroup.ru/wiki?name=poisk), для работы которой теперь достаточно стандартного SQLite с вышеуказанным расширением FTS3 (раньше использовалась собственная сборка SQLite). Благодаря поддержке стеммеров Snowball в вышеназванном FTS3 доступен поиск по словоформам. Система распространяется в рамках лицензии GPLv3. Система подходит как для индексации документов на десктопе, так и для организации системы поиска на web-сайте. Поддерживается индексирование файлов, архивов и файлов в архивах, распознавание кодировки текстовых документах производится автоматически.
Все компоненты оформлены в виде deb-пакетов и доступны через специальный репозиторий (http://sqlite.mobigroup.ru/home) для текущего Debian Stable. При установке из deb-пакетов требуемые зависимости устанавливаются автоматически. В репозитории содержатся пакеты с исходным кодом и бинарные сборки для архитектуры amd64. Все пакеты можно пересобрать и для архитектуры x86.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=31025)
[size="3"]Новая версия БД SQLite 3.7.9 [/size]Доступен (http://www.sqlite.org/releaselog/3_7_9.html) релиз БД SQLite 3.7.9, в котором отмечены следующие изменения:
- В случае если поисковый запрос через оператор MATCH по виртуальной таблице FTS4 (http://www.sqlite.org/fts3.html#fts4) (полнотекстовый поиск) начинается с символа "^" то его действие отныне применяется к началу указанного поля в документе. Изменение может потенциально нарушать совместимость;
- В интерфейс sqlite3_db_status() (http://www.sqlite.org/c3ref/db_status.html) добавлены опции SQLITE_DBSTATUS_CACHE_HIT (http://www.sqlite.org/c3ref/c_dbstatus_options.html#sqlitedbstatuscachehit) и SQLITE_DBSTATUS_CACHE_MISS (http://www.sqlite.org/c3ref/c_dbstatus_options.html#sqlitedbstatuscachemiss) для оценки эффективности попадания в кэш;
- Удалена поддержка опции SQLITE_ENABLE_STAT2, вместо которой следуют использовать более функциональную сборочную опцию SQLITE_ENABLE_STAT3 (http://www.sqlite.org/compile.html#enable_stat3), включающую накопление статистики для выполняемых запросов, которая может быть использована при выполнении команды ANALYZE и в планировщике запросов;
- Улучшена работа утилиты sqlite3_analyzer, добавлены новые опции "--pageinfo" и "--stats", а также поддержка смешанных БД;
- Расширен интерфейс sqlite3_data_count() (http://www.sqlite.org/c3ref/data_count.html), который теперь может быть использован для определения наличия SQLITE_DONE для предварительно формируемых запросов (prepared statement);
- Добавлен признак SQLITE_FCNTL_OVERWRITE (http://www.sqlite.org/c3ref/c_fcntl_chunk_size.html), указывающий на то, что при выполнении текущей транзакции файл с БД будет полностью переписан (например, при выполнении VACUUM);
- Проведена оптимизация планировщика запросов, который теперь более оптимально привлекает индексы при определении вхождений в "OR" выражения в блоке "WHERE";
- Добавлена активируемая на этапе сборки опция SQLITE_DIRECT_OVERFLOW_READ (http://www.sqlite.org/compile.html#direct_overflow_read), при которой overflow-страницы (http://www.sqlite.org/fileformat2.html#ovflpgs), размер которых больше стандарного размера страницы b-tree, читаются из файла напрямую, минуя кэш;
- Устранено ограничение на размер точности вывода в опциях форматирования для семейства функций sqlite3_mprintf();
- Устранены ошибки, среди которых:
- невозможность выполнения "ALTER TABLE ... RENAME" для некоторых виртуальных таблиц с кодировкой UTF16;
- проблемы преобразования из ASCII во float;
- неверное вычисление агрегатных выражений с несколькими агрегатными функциями, аргументами которых является сложное выражение, отличающиеся только регистром символов;
- ошибка вычисления прагм page_count и quick_check, если их имена заданы заглавными буквами;
- сбой выполнения VACUUM при активации прагмы count_changes;
- крах из-за ошибки в реализация виртуальных таблиц, проявляющийся при удалении таблицы FTS4 внутри транзакции с последующим выполнением операции SAVEPOINT.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=32202)