LINUX.ORG.RU

SQLite 3.24.0

 , ,


1

3

Состоялся релиз компактной встраиваемой реляционной СУБД — SQLite 3.24.0.

Основные изменения:

  • Добавлена поддержка команды UPSERT в стиле PostgreSQL.
  • Добавлена поддержка вспомогательных столбцов в таблицах r-tree.
  • В C API добавлены функции для обнаружения ключевых слов SQL, используемых в SQLite (sqlite3_keyword_count(), sqlite3_keyword_name() и sqlite3_keyword_check()).
  • Добавлено C API для динамических строк, базирующееся на объекте sqlite3 str.
  • ALTER TABLE теперь распознает «true» и «false» как допустимые аргументы для DEFAULT.
  • Добавлена оптимизация сортировки ссылок (включается опцией «SQLITE_ENABLE_SORTER_REFERENCES» во время компиляции).
  • Улучшен формат raw-вывода EXPLAIN QUERY PLAN.
  • Добавлена настройка SQLITE_DBCONFIG_RESET_DATABASE в API sqlite3_db_config().
  • Улучшения CLI:
    • программа sqlite3 теперь автоматически перехватывает raw-вывод EXPLAIN QUERY PLAN и переформатирует его в графы ASCII-art;
    • строки, начинающиеся с «#», теперь воспринимаются как комментарии, а не как SQL-запросы;
    • добавлена опция "--append" в команду .backup;
    • добавлена команда .dbconfig.
  • Улучшена производительность и исправлено множество ошибок.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Проблему с lower/upper и не-ASCII они вообще собираются решать когда-нибудь или это теперь фича?

hippi90 ★★★★ ()
Ответ на: комментарий от hippi90

а ты сообщил разработчикам? что они сказали?

cetjs2 ★★★★★ ()
Ответ на: комментарий от hippi90

да вроде давно умеет, только приходилось подключать libSqliteIcu.so, это проблема дистров, что не вкомпиливают

anonymous ()
Ответ на: комментарий от anonymous

Да, посмотрел исходники, это реально фича. lower()/upper() работают только с ACSII, потому что им жалко места в бинарнике.

hippi90 ★★★★ ()
Ответ на: комментарий от sleeply4cat

** SQLite only considers US-ASCII (or EBCDIC) characters. We do not
** handle case conversions for the UTF character set since the tables
** involved are nearly as big or bigger than SQLite itself.

hippi90 ★★★★ ()
Ответ на: комментарий от hippi90

как же тогда работают с юникодом в sqlite? Какими костылями? интересно.

cetjs2 ★★★★★ ()
Ответ на: комментарий от hippi90

УМВР.

З.Ы. SQLite надо просто собрать с поддержкой icu: "-DSQLITE_ENABLE_ICU -licui18n -licuuc -licudata" и т.д.

anonymous ()
Ответ на: комментарий от cetjs2

В БД лежит utf-8, внутреннее представление - u32. По коду много проверок вида if( c<=0x80 ).

hippi90 ★★★★ ()
Ответ на: комментарий от anonymous

Есть хоть один дистрибутив, где SQLite из коробки собран с поддержкой icu?

hippi90 ★★★★ ()
Ответ на: комментарий от hippi90

в генте можно с use-флагом icu собрать, по умолчанию отключен.

cetjs2 ★★★★★ ()

Странный подход. Вроде бы где-то существует прекрасные модули, типа json, gis. А где они, как их подключить и почему нет в дистрах - тайна. Тот случай когда модули - зло, а монолит рулит

makoven ★★★★★ ()
Последнее исправление: makoven (всего исправлений: 1)
Ответ на: комментарий от makoven

вот поэтому гента тут рулит, use-флаги можно настроить.

cetjs2 ★★★★★ ()

Лучей добра всей команде разрабов. Использовал SQLite для кучи вещей, а дома храню в SQLite домашнюю бухгалтерию. Вот это реально софт, который делает жизнь лучше.

NIR ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.