The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

15.10.2015 11:32  Выпуск СУБД SQLite 3.9.0 с поддержкой JSON

После двух лет существования ветки 3.8.x представлен релиз SQLite 3.9.0, легковесной базы данных, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg.

Нумерация версий SQLite отныне будет производиться в соответствии со спецификацией "Cемантическое версионирование", подразумевающей использование нотации X.Y.Z (вместо ранее используемой W.X.Y.Z), в которой X меняется при внесении изменений, нарушающих обратную совместимость, Y меняется при расширении функциональности и Z при исправлении ошибок. В выпуске SQLite 3.9.0 смена значительного номера версии обусловлена включением серии существенных улучшений, среди которых поддержка формата JSON, новый движок полнотекстового поиска FTS5, возможность создания индексов для выражений и поддержка использования функций с табличным значением.

Подробнее об изменениях:

  • В состав включён модуль json1, активируемый на этапе компиляции опцией SQLITE_ENABLE_JSON1. Модуль включает набор функций для манипуляции данными в формате JSON, которые позволяют организовать обработку данного формата в SQL-запросах. При этом, вместо введения нового типа, работа с JSON симулируется поверх полей с типом text, т.е. в конфигурациях без модуля данные поля остаются доступны для разбора внешними инструментами. Пример перебора значений в блоках JSON в SELECT-запросе:
    
       SELECT DISTINCT user.name
        FROM user, json_each(user.phone)
        WHERE json_each.value LIKE '704-%';
    
  • В блоке "FROM" в составе запросов "SELECT" реализована возможность использования функций с табличным значением (table-valued), которые выдают на выходе набор строк, воспринимаемый в запросе как вывод из виртуальной таблицы;
  • Интеграция FTS5, нового поколения движка полнотекстового поиска, в котором устранены некоторые концептуальные проблемы движков FTS3/4, которые не удавалось решить без нарушения обратной совместимости. Например, для сокращения потребления памяти в FTS5 реализована техника инкрементальной загрузки списков в память, возможно определение наличия подмножества без полного перебора списка, преодолён лимит SQLITE_MAX_LENGTH, добавлена поддержка сортировки по релевантности ("ORDER BY rank"), представлена возможность подключения собственных функций для расчёта веса результата и обработки текста. Модуль с реализаций FTS5 пока помечен как экспериментальный и требует сборки SQLite с опцией SQLITE_ENABLE_FTS5;
  • Поддержка использования индексов для выражений (раньше создание индексов допускалось только для столбцов, но не для операций с ними). В качестве элемента индекса можно использовать функцию над столбцом или операции над столбцами. Например, индексы
    
       CREATE INDEX acctchng_magnitude ON account_change(id, abs(amt));
       CREATE INDEX t2xy ON t2(x+y);
    
    сработают при выполнении
    
       SELECT * FROM account_change WHERE id=$xyz AND abs(amt)>=10000;    
       SELECT * FROM t2 WHERE y+x=22;
    
  • Поддержка "эпонимических" (eponymous) виртуальных таблиц, которые автоматически присутствуют в схеме "main" при всех соединениях с БД, не требуя предварительного выполнения выражения "CREATE VIRTUAL TABLE". Имя эпонимической таблицы соответствует имени загружаемого модуля, реализующего данную таблицу;
  • В выражении "CREATE VIEW" теперь допустимо опционально указывать список имён столбцов, выводимых в данном представлении;
  • При создании представлений теперь можно ссылаться на неопределённые таблицы и функции - предупреждение об их отсутствии будет выведено при непосредственном использовании представления в запросе;
  • В планировщике запросов реализована возможность задействования частичных индексов, охватывающих подмножество строк, заданное через условие AND в блоке WHERE;
  • В утилиту sqlite3_analyzer добавлен вывод уровня разветвления для btree и индексов;
  • Виртуальная таблица dbstat расширена для использования в качестве функции с табличным значением, в которых в качестве аргумента передаётся имя анализируемой схемы;
  • Устранена критическая ошибка в реализации расширения для шифрования данных (SQLite Encryption Extension), которая может привести к невозможности прочитать и восстановить содержимое БД после изменения размера шифрованного блока в процессе выполнения VACUUM.


  1. Главная ссылка к новости (http://permalink.gmane.org/gma...)
  2. OpenNews: Выпуск СУБД SQLite 3.8.11
  3. OpenNews: Выпуск SQLite 3.8.10
  4. OpenNews: Выпуск SQLite 3.8.9
  5. OpenNews: Релиз БД SQLite 3.8.0 с новым планировщиком запросов
Лицензия: CC-BY
Тип: Программы
Ключевые слова: sqlite, database
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 12:26, 15/10/2015 [ответить] [смотреть все]
  • +4 +/
    ALTER TABLE они когда допилят?
     
     
  • 2.4, Lester, 12:52, 15/10/2015 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    Полноценный и при том эффективный и корректный ALTER TABLE - сложная задача Так... весь текст скрыт [показать] [показать ветку]
     
  • 2.26, arisu, 10:54, 21/10/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    зачем если ты это делаешь настолько часто, что оно тебя волнует, то у меня для ... весь текст скрыт [показать] [показать ветку]
     
  • 1.3, Наркоман, 12:34, 15/10/2015 [ответить] [смотреть все]  
  • –1 +/
    Я дожил до этого дня, ураааа!
     
  • 1.5, Аноним, 12:58, 15/10/2015 [ответить] [смотреть все]  
  • –3 +/
    XML и HTML пусть еще добавят
     
     
  • 2.8, Аноним, 13:31, 15/10/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    > HTML

    Ну уж нет... Точно нет.
    > XML

    А стоит ли?

     
     
  • 3.11, Ури, 14:08, 15/10/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Это был сарказм.
     
  • 1.6, Аноним, 13:04, 15/10/2015 [ответить] [смотреть все]  
  • +2 +/
    JSON добавили А про такую структуру данных как массив они не знают Я не прот... весь текст скрыт [показать]
     
     
  • 2.9, тоже Аноним, 13:49, 15/10/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    JSON - это для тех, кому настолько надо именно его, что они готовы страдать А в... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.14, Аноним, 15:57, 15/10/2015 [^] [ответить] [смотреть все]  
  • +/
    Дайте toml, не хипстеры чтоли? Страдать готов.
     
     
  • 4.15, тоже Аноним, 15:59, 15/10/2015 [^] [ответить] [смотреть все]  
  • +/
    Не дам, страдайте ;)
     
  • 2.13, MBG, 15:44, 15/10/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Ничего не мешает забиндить свои функции работы с массивами на любом языке - при ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.25, Аноним, 22:51, 16/10/2015 [^] [ответить] [смотреть все]  
  • –1 +/
    Покажите мне пример бинда операторов и - это основные операторы работы с ... весь текст скрыт [показать]
     
  • 2.16, bOOster, 16:26, 15/10/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Ну и куда ты придешь с этим? К LDAP?
     
     
  • 3.24, Crazy Alex, 12:39, 16/10/2015 [^] [ответить] [смотреть все]  
  • +/
    Если там вместо ASN 1 будет что-то хоть отдалённо человеческое - может, и неплох... весь текст скрыт [показать]
     
  • 1.10, Аноним, 14:08, 15/10/2015 [ответить] [смотреть все]  
  • –1 +/
    > новый движок полнотекстового поиска FTS5

    Дайте два!111

     
  • 1.12, Аноним, 15:39, 15/10/2015 [ответить] [смотреть все]  
  • –5 +/
    eponymous переводится как одноимённый -е , афтар ты бы хоть гуглом перевёл, пейс... весь текст скрыт [показать]
     
     
  • 2.18, Аноним, 17:05, 15/10/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А подумать о смысле не судьба прежде, чем рекомендовать дословный перевод ... весь текст скрыт [показать] [показать ветку]
     
  • 2.19, Аноним, 17:19, 15/10/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Проблема в том, что одноимённые виртуальные таблицы по смыслу совсем не то, чт... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.21, Аноним, 22:38, 15/10/2015 [^] [ответить] [смотреть все]  
  • +/
    А почему нельзя так и написать: "таблицы имя которых совпадает с модулем"?

     
     
  • 4.22, Аноним, 00:17, 16/10/2015 [^] [ответить] [смотреть все]  
  • +/
    Про это и так написано в пояснении, но само название таких таблиц раздувать до ц... весь текст скрыт [показать]
     
  • 2.20, Нимано, 18:46, 15/10/2015 [^] [ответить] [смотреть все] [показать ветку]  
  • +4 +/
    Вы бы сначала домашку сделали, советчик вы наш Для школьников поясняю Гугол-пе... весь текст скрыт [показать] [показать ветку]
     
  • 1.23, Аноним, 09:33, 16/10/2015 [ответить] [смотреть все]  
  • –1 +/
    Кто сказал H2?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor