Closed Bug 1526125 (SQLite3.27.1) Opened 5 years ago Closed 5 years ago

Upgrade to SQLite 3.27.1

Categories

(Toolkit :: Storage, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla67
Tracking Status
firefox67 --- fixed

People

(Reporter: RyanVM, Assigned: RyanVM)

References

()

Details

Attachments

(1 file)

SQLite version 3.27.0 is a routine maintenance release with various performance and feature enhancements. See the release notes for details.

  • Added the VACUUM INTO command
  • Issue an SQLITE_WARNING message on the error log if a double-quoted string literal is used.
  • The sqlite3_normalized_sql() interface works on any prepared statement created using sqlite3_prepare_v2() or sqlite3_prepare_v3(). It is no longer necessary to use sqlite3_prepare_v3() with SQLITE_PREPARE_NORMALIZE in order to use sqlite3_normalized_sql().
  • Added the remove_diacritics=2 option to FTS3 and FTS5.
  • Added the SQLITE_PREPARE_NO_VTAB option to sqlite3_prepare_v3(). Use that option to prevent circular references to shadow tables from causing resource leaks.
  • Enhancements to the sqlite3_deserialize() interface:
    • Add the SQLITE_FCNTL_SIZE_LIMIT file-control for setting an upper bound on the size of the in-memory database created by sqlite3_deserialize. The default upper bound is 1GiB, or whatever alternative value is specified by sqlite3_config(SQLITE_CONFIG_MEMDB_MAXSIZE) and/or SQLITE_MEMDB_DEFAULT_MAXSIZE.
    • Honor the SQLITE_DESERIALIZE_READONLY flag, which was previously described in the documentation, but was previously a no-op.
    • Enhance the "deserialize" command of the TCL Interface to give it new "--maxsize N" and "--readonly BOOLEAN" options.
  • Enhancements to the CLI, mostly to support testing and debugging of the SQLite library itself:
    • Add support for ".open --hexdb". The "dbtotxt" utility program used to generate the text for the "hexdb" is added to the source tree.
    • Add support for the "--maxsize N" option on ".open --deserialize".
    • Add the "--memtrace" command-line option, to show all memory allocations and deallocations.
    • Add the ".eqp trace" option on builds with SQLITE_DEBUG, to enable bytecode program listing with indentation and PRAGMA vdbe_trace all in one step.
    • Add the ".progress" command for accessing the sqlite3_progress_handler() interface.
    • Add the "--async" option to the ".backup" command.
    • Add options "--expanded", "--normalized", "--plain", "--profile", "--row", "--stmt", and "--close" to the ".trace" command.
  • Omit deprecated PRAGMA statements when compiling with SQLITE_OMIT_DEPRECATED.
  • Increased robustness against malicious SQL that is run against a maliciously corrupted database.

Bug fixes:

  • Do not use a partial index to do a table scan on an IN operator. Ticket 1d958d90596593a774.
  • Fix the query flattener so that it works on queries that contain subqueries that use window functions. Ticket 709fcd17810f65f717
  • Ensure that ALTER TABLE modifies table and column names embedded in WITH clauses that are part of views and triggers.
  • Fix a parser bug that prevented the use of parentheses around table-valued functions.
  • Fix a problem with the OR optimization on indexes on expressions. Ticket d96eba87698a428c1d.
  • Fix a problem with the LEFT JOIN strength reduction optimization in which the optimization was being applied inappropriately due to an IS NOT NULL operator. Ticket 5948e09b8c415bc45d.
  • Fix the REPLACE command so that it is no longer able to sneak a NULL value into a NOT NULL column even if the NOT NULL column has a default value of NULL. Ticket e6f1f2e34dceeb1ed6
  • Fix a problem with the use of window functions used within correlated subqueries. Ticket d0866b26f83e9c55e3
  • Fix the ALTER TABLE RENAME COLUMN command so that it works for tables that have redundant UNIQUE constraints. Ticket bc8d94f0fbd633fd9a
  • Fix a bug that caused zeroblob values to be truncated when inserted into a table that uses an expression index. Ticket bb4bdb9f7f654b0bb9

2019-02-08 - Release 3.27.1

After release 3.27.0 was tagged, but before the build could be completed and uploaded, a long-standing bug in the query optimizer was reported via System.Data.SQLite. Since people will be upgrading anyhow, we decided publish the fix for this newly discovered problems right away. Hence, 3.27.1 was released less than 24 hours after 3.27.0.

It would have been better if the query optimizer bug had come to our attention one day earlier, so that we could have incorporated a fix into 3.27.0, but sometimes that's the way things go.

Bug fixes:

  • Fix a bug in the query optimizer: an adverse interaction between the OR optimization and the optimization that tries to use values read directly from an expression index instead of recomputing the expression. Ticket 4e8e4857d32d401f
Alias: SQLIte3.27.0 → SQLIte3.27.1
Summary: Upgrade to SQLite 3.27.0 → Upgrade to SQLite 3.27.1
Alias: SQLIte3.27.1 → SQLite3.27.1
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla67
Blocks: SQLite3.27.2
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: