*** DRAFT ***

SQLite Release 3.47.0 On 2024-10-15

  1. Allow arbitrary expressions in the second argument to the RAISE function.
  2. If the RHS if the ->> operator is negative, then access array elements counting from the right.
  3. Fix a problem with rolling back hot journal files in the seldom-used unix-dotfile VFS.
  4. FTS5 tables can now be dropped even if they use a non-standard tokenizer that has not been registered.
  5. Fix the group_concat() aggregate function so that it returns an empty string, not a NULL, if receives a single input value which is an empty string.
  6. Enhance the generate_series() table-valued function so that it is able to recognize and use constraints on its output value.
  7. Performance optimizations:
    1. Improved reuse of subqueries associated with the IN operator, especially when the IN operator has been duplicated due to predicate push-down.
    2. Use a Bloom filter on subqueries on the right-hand side of the IN operator, in cases where that seems likely to improve performance.
    3. Ensure that queries like "SELECT func(a) FROM tab GROUP BY 1" only invoke the func() function once per row.
    4. No attempt is made to create automatic indexes on a column that is known to be non-selective because of its use in other indexes that have been analyzed.
    5. Adjustments to the query planner so that it produces better plans for star queries with a large number of dimension tables.
    6. Add the "order-by-subquery" optimization, that seeks to disable sort operations in outer queries if the desired order is obtained naturally due to ORDER BY clauses in subqueries.
    7. Miscellaneous coding tweaks for faster runtimes.
  8. Enhancements to SQLite-related command-line programs:
    1. Add extension functions median(), percentile(), percentile_cont(), and percentile_disc() to the CLI.
    2. The sqlite3_analyzer utility now provides a break-out of statistics for WITHOUT ROWID tables.
    3. The sqldiff utility avoids creating an empty database if its second argument does not exist.
  9. Internal tweaks to the TCL Interface for SQLite make it compatible with TCL 9.0.
  10. JavaScript/WASM:
    1. Fix a corruption-causing bug in the JavaScript "opfs" VFS.
    2. Work around a couple of browser-specific OPFS quirks.

    Hashes:

  11. SQLITE_SOURCE_ID: pending
  12. SHA3-256 for sqlite3.c: pending

A complete list of SQLite releases in a single page and a chronology are both also available. A detailed history of every check-in is available at SQLite version control site.

*** DRAFT ***