LINUX.ORG.RU

SQLite 3.48.0

 , , ,

SQLite 3.48.0

1

3

После месяца разработки состоялся выпуск 3.48.0 компактной встраиваемой СУБД SQLite, написанной на языке C и распространяемой, как общественное достояние.

Список изменений:

  • Переработка скрипта configure, используемого для сборки SQLite из исходного кода, с целью исправления ошибок, повышения производительности и улучшения сопровождаемости кода.
    • Это не влияет на скрипт configure в архиве sqlite3-autoconf-NNNNNNN.tar.gz, для которого система сборки не изменилась.
    • Ключевое новшество в том, что вместо GNU Autoconf теперь используется Autosetup.
    • Одним из преимуществ нового конфига является то, что больше не требуется устанавливать TCL для сборки большинства целей сборки SQLite. TCL по-прежнему требуется для запуска тестов или для сборки вспомогательных программ (например, sqlite3_analyzer), использующих TCL, но для большинства обычных целей сборки TCL не требуется. Таким образом, начиная с этого выпуска, единственными зависимостями для сборки являются компилятор C и make или nmake.
  • Улучшена команда EXPLAIN QUERY PLAN для индексов.
  • SQL-функция iif() теперь поддерживает два параметра. Также добавлена функция if(), как альтернатива iif().
  • В консольную утилиту sqlite3 добавлена команда .dbtotxt.
  • Добавлено свойство SQLITE_IOCAP_SUBPAGE_READ в метод xDeviceCharacteristics объекта sqlite3_io_methods.
  • Добавлена опция SQLITE_PREPARE_DONT_LOG к sqlite3_prepare_v3(), предотвращающая отправку предупреждений в журнал ошибок, если SQL-текст неправильно сформирован. Это позволяет использовать sqlite3_prepare_v3() для тестовой компиляции SQL-текста для проверки его корректности, не засоряя журнал ошибок ложными сообщениями.
  • Увеличено минимально допустимое значение параметра SQLITE_LIMIT_LENGTH с 1 до 30.
  • Добавлен опкод SQLITE_FCNTL_NULL_IO, устанавливающий низкоуровневый файловый дескриптор или файловый дескриптор для объекта sqlite3_file таким образом, что он больше не будет читать или записывать в файл базы данных.
  • Расширен вспомогательный API FTS5 xInstToken() для работы с префиксными запросами с помощью опции конфигурации insttoken и SQL-функции fts5_insttoken().
  • Максимальное количество аргументов для функций SQL увеличено со 127 до 1000.
  • Удалены остаточные следы SQLITE_USER_AUTHENTICATION.
  • Исправлены ошибки.

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

★★★★★

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

Лучшая база данных.

Кстати, помимо основного предназначения можно в качестве калькулятора использовать, если на системе вдруг не оказалось bc:

sqlite3 /dev/null 'select atan(5)'
txgk
()

Увеличено минимально допустимое значение параметра SQLITE_LIMIT_LENGTH с 1 до 30.
The maximum size of any string or BLOB or table row, in bytes.

А зачем?

Максимальное количество аргументов для функций SQL увеличено со 127 до 1000.

Почему не до 1023?

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

А зачем?

Не нашёл.

Почему не до 1023?

Наверное, 1000 – для «круглости» числа. Можно увеличить.

https://sqlite.org/limits.html

  1. Maximum Number Of Arguments On A Function

The SQLITE_MAX_FUNCTION_ARG parameter determines the maximum number of parameters that can be passed to an SQL function. For many years, the default value was about 100 but the default was raised to 1000 beginning with SQLite version 3.48.0 (2025-01-14).

The number of arguments to a function is sometimes stored in a signed 16-bit integer. So there is a hard upper bound on SQLITE_MAX_FUNCTION_ARG of 32767.

The maximum number of arguments in a function can be lowered at run-time using the sqlite3_limit(db,SQLITE_LIMIT_FUNCTION_ARG,size) interface.

dataman ★★★★★
() автор топика

Хорошая БД, для хомячков типа меня в самый раз

I-Love-Microsoft ★★★★★
()

Удивительное рядом:

Тесты для самой популярной базы данных в мире написаны на язык TCL(!) https://github.com/sqlite/sqlite/tree/master/test

Больше подробностей о количестве тестов и методов тестирования https://www.sqlite.org/testing.html

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

Удивительное рядом: Тесты для самой популярной базы данных в мире написаны на язык TCL(!)

потому что

1) в Tcl исторически неплохое тестирование https://www.tcl-lang.org/man/tcl/TclCmd/tcltest.htm

2) команды разработчиков sqlite, tcl «дружат домами». А подчас одни и те-же лица

MKuznetsov ★★★★★
()

Ключевое новшество в том, что вместо GNU Autoconf теперь используется Autosetup.

Одним из преимуществ нового конфига является то, что больше не требуется устанавливать TCL для сборки большинства целей сборки SQLite

весёлая подача новости :-) Autosetup это пачка скриптов tcl..

если в системе tcl нет, то будет использован jim-tcl из состава autosetup

MKuznetsov ★★★★★
()

Познакомился с данной БД по рекомендации с этого форума. Очень благодарен и доволен! Жаль, что нет возможности сделать многопользовательскую БД.

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

Прикалываться изволите? Вы это серьезно про «многопользовательскую» для «встраиваемой» базы? У нее и целей то таких не было, конкурировать с PostgreSQL или Oracle.

Кстати, если вы любите рекомендации, то порекомендую вам «sqlite на стероидах»:

  1. dqlite – распределенная БД на основе sqlite от Canonical
  2. rqlite – еще одна распределенная БД на основе sqlite
  3. duckdb – БД под OLAP и Data Science нагрузку
MichIs
()
Последнее исправление: MichIs (всего исправлений: 2)
Ответ на: комментарий от Gnom7

Используйте PostgreSQL, смысл ловить вшей

PETER ★★
()

И sqlite is Public Domain (народное достояние), а не какая-то там gpl

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

И чем же он такой «угарный»??

Растоптали прежнюю лицензию. Переписывают на раст. Из мелочей: добавили сетевой функционал, сделали репликацию.

sarumeister
()

Ключевое новшество в том, что вместо GNU Autoconf теперь используется Autosetup.

Это кому вообще могло прийти в голову делать аналог одного из инструментов Craptools?

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

https://msteveb.github.io/autosetup/why

Motivation

autoconf does the job and supports many platforms, but it suffers from at least the following problems:

  • Requires configuration descriptions in a combination of m4 and shell scripts
  • Creates 10,000 line shell scripts which are slow to run and impossible to debug
  • Requires a multi-stage process of aclocal => autoheader => > autoconf => configure => Makefile + config.h

autosetup attempts to address these issues as follows by directly parsing a simple auto.def file, written in Tcl, and directly generating output files such as config.h and Makefile.

autosetup runs under either Tcl 8.5, which is available on almost any modern system, or Jim Tcl which can automatically bootstrap with just a C compiler.

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

Золотой фонд цитат 13 века:

«Что может быть сделано на основе меньшего числа [предположений], не следует делать, исходя из большего»

«Многообразие не следует предполагать без необходимости»

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

Переписывают на раст.

Это да... «Угарно»... :)))

Somebody ★★
()

Помнится, в SQLite форматирование строк отличается от PostgreSQL. Мне пришлось свой софт править из-за этого. Ну это так, воспоминания вслух. Удачи проекту!

MrJohnDoe
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.