Представлен (http://www.mail-archive.com/sqlite-announce@sqlite.org/...) релиз SQLite 3.21.0 (http://sqlite.org/), легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentley и Bloomberg.Основные изменения (https://sqlite.org/releaselog/3_21_0.html):
- Поддержка режима атомарной записи для файловой системы
F2FS, позволяющего значительно снизить накладные расходы при выполнении транзакций. Для включения режима требуется сборка с опцией SQLITE_ENABLE_BATCH_ATOMIC_WRITE;
- Внутри транзакций разрешено применение команд ATTACH (http://sqlite.org/lang_attach.html) и DETACH (http://sqlite.org/lang_detach.html);
- Обеспечена возможность записи в виртуальные таблицы в режиме "WITHOUT ROWID (http://sqlite.org/vtab.html#worid)", если в качестве первичного ключа задан только один столбец;
- Применение оптимизаций (http://sqlite.org/optoverview.html#like_opt) для выражения LIKE расширено использованием LIKE совместно с конструкцией ESCAPE (http://sqlite.org/lang_expr.html#like);
- В PRAGMA integrity_check (http://sqlite.org/optoverview.html#like_opt) и PRAGMA quick_check (http://sqlite.org/pragma.html#pragma_quick_check) реализовано выявление скрытых повреждений строк;
- В планировщике запросов для подзапросов в выражении FROM теперь применяются сопрограммы вместо оптимизиации через развёртывание запроса;
- Включена по умолчанию поддержка использования сопрограмм для подзапросов;- При разборе виртуальных таблиц, связанных (http://sqlite.org/csv.html) с файлом CSV, теперь последняя строка учитывается даже если в конце нет символа перевода строки;
- Удалена система распределения памяти "scratch", вместо которой предлагается набор настроек SQLITE_CONFIG_SMALL_MALLOC (http://sqlite.org/c3ref/c_config_covering_index_scan.html#sq...) для минимизации выделения больших блоков памяти;- В расширение с реализацией виртуальных таблиц union добавлена поддержка виртуальных таблиц swarm (https://sqlite.org/src/file/ext/misc/unionvtab.c), отличающихся методом передачи ссылки на файл с БД;
- Добавлена виртуальная таблица sqlite_dbpage (https://sqlite.org/src/file/src/dbpage.c), через которую можно получить прямой доступ к страницам с данными в файле БД. Для активации требуется сборка с опцией "-DSQLITE_ENABLE_DBPAGE_VTAB";
- Добавлен новый тип виртуальных таблиц fts5vocab - "instance", предоставляющий низкоуровневый доступ к содержимому полнотекстового индекса FTS5;
- Внесена серия микрооптимизаций, в сумме позволивших снизить нагрузку на CPU примерно на 2.1%.URL: https://www.mail-archive.com/sqlite-announce@sqlite.org...
Новость: http://www.opennet.me/opennews/art.shtml?num=47456
SQLite будет жить ВЕЧНО
Не будет. Я гарантирую это. Готов поспорить на любую сумму.
Как и все формы, что существуют. Но для embedded в грядущие времена IoT нужны будут подобные СУБД, разве что что-то новое вытеснит типа NoSQL.
> что-то новое вытеснит типа NoSQLНу вот опять те же грабли. Теплое с мягким. NoSQL для кеширования, серверов приложений и т.д. Просто хранить список записей и фильтровать их (99% всех задач БД) это удел SQL.
Имел в виду гибрид SQL+NoSQL
>> Имел в виду гибрид SQL+NoSQLБиг Дата во включаемом СМС-кой на подогрев чайнике?
4096 байт локальных данных потребуют, я уверен, применения Map-Reduce прямо в нагревательном элементе.
>>> Имел в виду гибрид SQL+NoSQL
> Биг Дата во включаемом СМС-кой на подогрев чайнике?конечно. нам же страсть как хочется знать, какой именно температуры кипяток и сколько чашек тебе требуются.
заодно мы тебя опознаем, когда в гостиннице ты предъявишь чужой паспорт - чайник тебя спалит.> 4096 байт локальных данных потребуют, я уверен, применения Map-Reduce прямо в
он еще в свободное время будет немножечко майнить.
Вместо нагревателя будем использовать чипы для майнинга или GPU, сэкономим на нагревателях, поддержим электронную промышленность, и кипяток у нас будет постоянно, а возможно, и обогрев всего дома, который теперь окажется бесплатным, потому что отопительная система будет сама платить за электричество криптовалютой, которую сама же намайнила :)
Кипяток при н.у. всегда имеет одну и ту же температуру. Так что страсть как не хочется.
Есть встраевымые NoSQL если чо.
> типа NoSQLГрафовая же!
Как они поддерживают все свои тесты, ведь у них на каждую строчку кода -- 730 строчек тестов. Ясное дело, что далеко не все из них пишутся людьми, но ведь кто-то их поддерживать должен?
https://www.sqlite.org/testing.html
> Как они поддерживают все свои тесты, ведь у них на каждую строчку кода -- 730 строчек
> тестов.так же как поддерживается любой другой код.
За $75k/yr - чего бы не поддержать-то.
(хотя из коммерческого сайта это неочевидно - возможно, еще и сверх тех 75k придется доплатить - это единственная строчка, где вместо ценника написано 'call' )
Ура, лучшая СУБД в мире!
Хочу обновления kripken/sql.js
http://sqlite.org/csv.html - вот интересно, кто-нибудь докопался до этой страницы раньше чем ссылка появилась в release notes? Все же, навигация на их чудо-сайте уникально бестолковая.
В смысле? На него ж из Extensions ссылка. Я бы сказал, что как раз дока у них вполне логичная, не припомню проблем с ней.
> В смысле? На него ж из Extensions ссылка.для этого надо заранее знать что есть такой extension.
> Я бы сказал, что как раз дока у них вполне логичная, не припомню проблем с ней.
я обычно гуглем в ней ищу. Но для этого неплохо бы хотя бы знать заранее, что именно.
В России её томозит отсутствие кириллицы "из коробки". И это отсутствие похоже пребудет вечно. Аминь.
Я не в теме, но это правда? SQLite не работает с кириллицей? То есть я не могу в поле записать что-то кириллическое (например, своё имя)? Или речь о чём-то другом?
SQLite поддерживает только UTF-8 и UTF-16. В 1.14 написана полнейшая чушь.
> SQLite поддерживает только UTF-8 и UTF-16. В 1.14 написана полнейшая чушь.sqlite совершенно некритично относится к тому, что ей поддерживать.
Можешь хоть в cp866 туда складывать - для нее это просто байтики, ничего не сломается и обратно извлечется ровно как положил, даже если это невалидная utf8 последовательность.но вот если ты захочешь order by russianfield collate nocase - тебя ждет сюрпризец - utf8 ничего не говорит нам о том, какая буква за какой следует в алфавите мумба-юмба в нее включенном, и какая из этих закорючек там у тебя заглавная - тоже.
забавно, что при этом sqlite умеет собираться с icu, при его наличии.
Это встроенная БД.Поставь Postgres и будет тебе счастье с сортировкой языков.
"встроенность" в общем случае означает просто отсутствие неведомого демона, который (обычно плохо или никак) обеспечивает авторизацию и локинг, а так же торчит в интернет вечнодырявым сокетом, и вдобавок плохо или никак не настраивается для конкретной базы и конкретной программы, все ключевые настройки system-wide.но в случае sqlite все несколько сложнее - некоторые вещи в ней принято делать не через sql, а некоторые просто реализованы странно. Плюс, то есть минус, еще и рукожопие собирателей дистрибутивов:
SQLite version 3.14.1 2016-08-11 18:53:32
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> select upper('жзийклмнопрстуфхцчшщъыьэюя');
ЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
sqlite>это древняя-древняя freebsd.
SQLite version 3.6.20
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select upper('жзийклмнопрстуфхцчшщъыьэюя'); жзийклмнопрстуфхцчшщъыьэюяа это, внезапно, RHEL6
У SLES, помнится, все так же плохо.
Как там в базальте - сами знаете у кого спросить.
но upper это еще не collate.
> Я не в теме, но это правда? SQLite не работает с кириллицей?не работает, сама по себе. sqlite у нас вообще-то - embedded database, предназначена для встраивания в _твой_ код. Определяешь у себя функции для кириллицы, и дергаешь sqlite3_create_collation.
> То есть я не могу в поле записать что-то кириллическое
можешь. но она не будет без посторонней помощи знать о том, что оно - кириллическое.
Collation для русского не поддерживается. Т.е., к примеру, order by выдаст что попало. Но это неважно совершенно для встраиваемого решения, по-моему.
кстати, рекомендую всем плавненько валить вот на этот экстеншн:
https://bitbucket.org/alekseyt/nunicodeоно умеет нормально работать с европейскими языками, отличает case и caseless like, и просто быстрее icu.
с fts, afaik, ниалле, но это совсем отдельная тема.
К слову, использует https://www.fossil-scm.org для распределенной разработки.
Да только они и используют. Ну и Tcl ещё.