Closed Bug 1756701 (SQLite3.38.2) Opened 2 years ago Closed 2 years ago

Upgrade to SQLite 3.38.2

Categories

(Toolkit :: Storage, task, P3)

task

Tracking

()

RESOLVED FIXED
100 Branch
Tracking Status
firefox100 --- fixed

People

(Reporter: RyanVM, Assigned: RyanVM)

References

()

Details

Attachments

(2 files)

+++ This bug was initially created as a clone of Bug #1748859 +++

SQLite Release 3.38.0 On 2022-02-22

  • Added the -> and ->> operators for easier processing of JSON. The new operators are compatible with MySQL and PostgreSQL.
  • The JSON functions are now built-ins. It is no longer necessary to use the -DSQLITE_ENABLE_JSON1 compile-time option to enable JSON support. JSON is on by default. Disable the JSON interface using the new -DSQLITE_OMIT_JSON compile-time option.
  • Enhancements to date and time functions:
    • Added the unixepoch() function.
    • Added the auto modifier and the julianday modifier.
  • Rename the printf() SQL function to format() for better compatibility. The original printf() name is retained as an alias for backwards compatibility.
  • Added the sqlite3_error_offset() interface, which can sometimes help to localize an SQL error to a specific character in the input SQL text, so that applications can provide better error messages.
  • Enhanced the interface to virtual tables as follows:
    • Added the sqlite3_vtab_distinct() interface.
    • Added the sqlite3_vtab_rhs_value() interface.
    • Added new operator types SQLITE_INDEX_CONSTRAINT_LIMIT and SQLITE_INDEX_CONSTRAINT_OFFSET.
    • Added the sqlite3_vtab_in() interface (and related) to enable a virtual table to process IN operator constraints all at once, rather than processing each value of the right-hand side of the IN operator separately.
  • CLI enhancements:
    • Columnar output modes are enhanced to correctly handle tabs and newlines embedded in text.
    • Added options like "--wrap N", "--wordwrap on", and "--quote" to the columnar output modes.
    • Added the .mode qbox alias.
    • The .import command automatically disambiguates column names.
    • Use the new sqlite3_error_offset() interface to provide better error messages.
  • Query planner enhancements:
    • Use a Bloom filter to speed up large analytic queries.
    • Use a balanced merge tree to evaluate UNION or UNION ALL compound SELECT statements that have an ORDER BY clause.
  • The ALTER TABLE statement is changed to silently ignores entries in the sqlite_schema table that do not parse when PRAGMA writable_schema=ON.

This is a very interesting release with built-in JSON support, and some perf improvements, the merge is very recent though.
I'd suggest that we wait for Firefox 100 (8th of March), unless people have earlier needs for anything specifically in this release.

Seeing as how 3.37.0 has a couple dot releases shortly afterward, probably wise to wait until 100.

I was figuring the same, but this at least gets it off my mental radar for now :P

(In reply to Ryan VanderMeulen [:RyanVM] from comment #1)

Try seems happy with it:
https://treeherder.mozilla.org/jobs?repo=try&revision=a6b2f05067a33e0ae9676da3d45fdf3240f2df47

(In reply to Arthur K. [He/Him] from comment #4)

Seeing as how 3.37.0 has a couple dot releases shortly afterward, probably wise to wait until 100.

(In reply to Ryan VanderMeulen [:RyanVM] from comment #5)

I was figuring the same, but this at least gets it off my mental radar for now :P

Yes, but it might make sense to run the try periodically, just to make sure THAT doesn't break along the way. ;-)

3.38.1 is behind the corner, may be released this week, so we'll take that one.

(In reply to Ryan VanderMeulen [:RyanVM] from comment #1)

Try seems happy with it:
https://treeherder.mozilla.org/jobs?repo=try&revision=a6b2f05067a33e0ae9676da3d45fdf3240f2df47

I don't think it would hurt to run this again now, just to make sure it is still "happy". Better to have an idea ahead of time, for minimal effort, no?

(In reply to Marco Bonardo [:mak] from comment #7)

3.38.1 is behind the corner, may be released this week, so we'll take that one.

These appear to be the release notes for 3.38.1 (coming tomorrow?):

Additional changes in version 3.38.1 (2022-03-12):

Fix problems with the new Bloom filter optimization that might cause some obscure queries to get an incorrect answer.
Fix the localtime modifier of the date and time functions so that it preserves fractional seconds.
Fix the sqlite_offset SQL function so that it works correctly even in corner cases such as when the argument is a virtual column or the column of a view.
Fix row value IN operator constraints on virtual tables so that they work correctly even if the virtual table implementation relies on bytecode to filter rows that do not satisfy the constraint.
Other minor fixes to assert() statements, test cases, and documentation.
Alias: SQLite3.38.0 → SQLite3.38.1
Summary: Upgrade to SQLite 3.38.0 → Upgrade to SQLite 3.38.1
Attachment #9265076 - Attachment description: Bug 1756701 - Upgrade to SQLite 3.38.0. r=mak → Bug 1756701 - Upgrade to SQLite 3.38.1. r=mak
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 100 Branch

And now we have 3.38.2: https://www.sqlite.org/releaselog/3_38_2.html

Additional changes in version 3.38.2 (2022-03-26):

  • Fix another user-discovered problem with the new Bloom filter optimization that might cause an incorrect answer when doing a LEFT JOIN with a WHERE clause constraint that says that one of the columns on the right table of the LEFT JOIN is NULL. See forum thread 031e262a89b6a9d2.
  • Other minor patches. See the timeline for details.

Probably not too late for this?

let's ensure 3.38.2 is in 100.

Alias: SQLite3.38.1 → SQLite3.38.2
Summary: Upgrade to SQLite 3.38.1 → Upgrade to SQLite 3.38.2
Blocks: SQLite3.38.3

Just a quick aside, where can one see what changes in SQLite, from version to version? Thanks.

(In reply to Worcester12345 from comment #18)

Just a quick aside, where can one see what changes in SQLite, from version to version? Thanks.

https://www.sqlite.org/changes.html is the 1-page view and https://www.sqlite.org/chronology.html is a list that links to the release log for each revision like https://www.sqlite.org/releaselog/3_38_3.html which is the current rev linked to from the home page.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: