Software-update: SQLite 3.19.3

SQLite is een in C ontwikkeld databasesysteem dat als database voor onder meer websites en embedded applicaties is te gebruiken. Volgens de ontwikkelaars heeft SQLite geen installatie en administratie nodig, ondersteunt het databases tot een omvang van twee terabyte en wordt een volledige database in één bestand opgeslagen. Verder ondersteunt het bijna de volledige SQL92-specificatie en is het eenvoudig via onder andere Tcl/Tk aan te sturen. De ontwikkelaar heeft versie 3.19.3 met de volgende lijst aanpassingen de deur uit gedaan:

SQLite Release 3.19.3
  • Fix a bug associated with auto_vacuum that can lead to database corruption. The bug was introduced in version 3.16.0 (2017-01-02). Ticket fda22108.
Changes carried forward from version 3.19.2
  • Fix more bugs in the LEFT JOIN flattening optimization. Ticket 7fde638e94287d2c.
Changes carried forward from version 3.19.1
  • Fix a bug in the LEFT JOIN flattening optimization. Ticket cad1ab4cb7b0fc.
  • Remove a surplus semicolon that was causing problems for older versions of MSVC.
Changes carried forward from version 3.19.0
  • The SQLITE_READ authorizer callback is invoked once with a column name that is an empty string for every table referenced in a query from which no columns are extracted.
  • When using an index on an expression, try to use expression values already available in the index, rather than loading the original columns and recomputing the expression.
  • Enhance the flattening optimization so that it is able to flatten views on the right-hand side of a LEFT JOIN.
  • Use replace() instead of char() for escaping newline and carriage-return characters embedded in strings in the .dump output from the command-line shell.
  • Avoid unnecessary foreign key processing in UPDATE statements that do not touch the columns that are constrained by the foreign keys.
  • On a DISTINCT query that uses an index, try to skip ahead to the next distinct entry using the index rather than stepping through rows, when an appropriate index is available.
  • Avoid unnecessary invalidation of sqlite3_blob handles when making changes to unrelated tables.
  • Transfer any terms of the HAVING clause that use only columns mentioned in the GROUP BY clause over to the WHERE clause for faster processing.
  • Reuse the same materialization of a VIEW if that VIEW appears more than once in the same query.
  • Enhance PRAGMA integrity_check so that it identifies tables that have two or more rows with the same rowid.
  • Enhance the FTS5 query syntax so that column filters may be applied to arbitrary expressions.
  • Enhance the json_extract() function to cache and reuse parses of JSON input text.
  • Added the anycollseq.c loadable extension that allows a generic SQLite database connection to read a schema that contains unknown and/or application-specific collating sequences.
Bug Fixes:
  • Fix a problem in REPLACE that can result in a corrupt database containing two or more rows with the same rowid. Fix for ticket f68dc596c4e6018d.
  • Fix a problem in PRAGMA integrity_check that was causing a subsequent VACUUM to behave suboptimally.
  • Fix the PRAGMA foreign_key_check command so that it works correctly with foreign keys on WITHOUT ROWID tables.
  • Fix a bug in the b-tree logic that can result in incorrect duplicate answers for IN operator queries. Ticket 61fe9745
  • Disallow leading zeros in numeric constants in JSON. Fix for ticket b93be8729a895a528e2.
  • Disallow control characters inside of strings in JSON. Fix for ticket 6c9b5514077fed34551.
  • Limit the depth of recursion for JSON objects and arrays in order to avoid excess stack usage in the recursive descent parser. Fix for ticket 981329adeef51011052.
Versienummer 3.19.3
Releasestatus Final
Besturingssystemen Windows 7, Android, Linux, BSD, macOS, Solaris, UNIX, Windows Server 2008, Windows Server 2012, Windows 8, Windows 10
Website SQLite
Download http://www.sqlite.org/download.html
Licentietype Freeware

Door Japke Rosink

Meukposter

22-06-2017 • 09:45

7

Bron: SQLite

Update-historie

01-'24 SQLite 3.45.0 9
07-'22 SQLite 3.39.0 7
05-'22 SQLite 3.38.5 3
02-'22 SQLite 3.38.0 3
06-'21 SQLite 3.36.0 6
04-'21 SQLite 3.35.5 0
03-'21 SQLite 3.35.2 0
06-'20 SQLite 3.32.2 2
01-'20 SQLite 3.31.1 2
10-'19 SQLite 3.30 3
Meer historie

Reacties (7)

7
7
7
1
0
0
Wijzig sortering
Nog nooit met SQLite gewerkt, maar op basis van dit bericht toch maar eens gaan kijken wat het in huis heeft. De website scandeert het volgende motto:
Small. Fast. Reliable.
Choose any three.
_O-

De lijst van SQL standaarden die niet worden ondersteund is erg summier, maar op z'n minst vreemd te noemen. Waarom zou je een right outer join niet ondersteunen maar een right join wel, terwijl deze feitelijk hetzelfde doen? Maak dan op z'n minst een alias voor compatability...
Nog nooit met SQLite gewerkt, maar op basis van dit bericht toch maar eens gaan kijken wat het in huis heeft.
SQLite is geen database server, zoals MS-SQL of Miranda! SQLite is een library die je met je applicatie mee linkt (statisch of dynamisch) en die feitelijk een SQL API biedt om in een bestand te knutselen.
Het is super handig als je data wilt opslaan die je niet eenvoudig in een bestand kan duwen. Voor veel toepassingen zullen files volstaan (bijvoorbeeld als je plaatjes wilt bewaren), of eenvoudige key-value paren (bijvoorbeeld een INI bestand, register keys of een klein XML/JSON bestandje). Als je echter echte database-achtige dingen wirlt doen (forumposts opslaan, een adres boek maken, etc) dan is SQLite een lichtgewicht oplossing die je bovendien onafhankelijk maakt van een database server.
[...]

SQLite is geen database server, zoals MS-SQL of Miranda!
Een klein beetje wel. Zo heeft SQLite bijvoorbeeld een gedeelde geheugenruimte, zodat twee processen op één machine tegelijkertijd gelijk gebruik kunnen maken van dezelfde database zonder conflicten. Maar je hebt wel gelijk: SQLite is niet gemaakt om via een netwerk te draaien. ;)

SQLite wordt ook veel gebruikt in mobiele applicaties. Het is een goed referentieformaat dat zich al bewezen heeft, en er zijn een grote reeks aan applicaties voor debugging. Het is een 'de facto' standaard voor het opslaan van alles dat complexer is dan enkele variabelen.

[Reactie gewijzigd door The Zep Man op 24 juli 2024 06:16]

Een goed voorbeeld van gebruik van SQLite is bijvoorbeeld Firefox. Hierbij worden favorieten, geschiedenis en andere informatie in SQLite opgeslagen.
Bolt CMS draait default ook op SQLite. Werkt super makkelijk en geen database gedoe, erg handig als je de site bv weer verhuisd.

Ik vraag me alleen af hoe groot je database kan worden voordat je tegen performance issues aanloopt!
Waarom zou je een alias maken om meer te typen?
Het enige systeem dat ik ken dat gebruik maakt van de 'left/right outer join' naamgeving is Microsoft SQL Server.
Je maakt zelf al de quote: Small. Fast. Zo min mogelijk overbodige zooi er in is de enige manier om dat voor elkaar te krijgen :)

Op dit item kan niet meer gereageerd worden.