Databases 4 min read

SQLite 3.46.0 Release Highlights and New Features

SQLite 3.46.0 introduces extensive PRAGMA enhancements, new date‑time modifiers, support for underscore digits in numeric literals, a json_pretty() function, significant query planner optimizations, improved JSON handling, and the ability to use large hexadecimal literals as column defaults, all while maintaining its public‑domain, self‑contained nature.

Laravel Tech Community
Laravel Tech Community
Laravel Tech Community
SQLite 3.46.0 Release Highlights and New Features

SQLite is a C library that implements a small, fast, self‑contained, high‑reliability, full‑featured SQL database engine. It is the most widely used database engine in the world. Its source code is in the public domain and can be used freely for any purpose.

SQLite 3.46.0 has been released, bringing the following updates:

Enhanced PRAGMA optimization in multiple ways to make it easier to use: PRAGMA optimize now automatically performs temporary analysis limits to prevent excessively long runtimes on large databases. Added a new 0x10000‑bit mask option to check updates on all tables. Automatically re‑analyzes tables that lack sqlite_stat1 entries.

Enhanced date and time functions: strftime() SQL function now supports %G, %g, %U and %V. New modifiers “ceiling” and “floor” control the algorithm used to resolve ambiguous dates when moving by integer months and/or years. If SQLite knows the time is already UTC or local, the “utc” and “localtime” modifiers are now no‑ops.

Added support for underscore "_" characters between digits in numeric literals.

Added json_pretty() SQL function.

Query planner improvements: The “VALUES‑as‑coroutine” optimization cuts parsing and execution time of INSERT statements with thousands of rows in a VALUES clause by roughly half, and also halves memory usage. Allows use of indexes for queries such as SELECT count(DISTINCT col) FROM … even when index records are not smaller than table records. Improved recognition of constant‑valued SQL functions when all arguments are constants. Enhanced WHERE‑clause push‑down optimization to allow pushing down WHERE terms that contain unrelated subqueries.

If the SQL parser stack overflows, extra memory is allocated from the heap instead of reporting a “parser stack overflow” error.

JSON changes: Allows ASCII control characters inside JSON5 string literals. Fixed -> and ->> operators so that when the right‑hand operand looks like an integer string, it is still treated as a string, matching PostgreSQL behavior.

Allows large hexadecimal literals to be used as default values for table columns.

Did you find this article helpful? Liking and sharing it is the greatest support!

SQLJSONSQLitedatabase engineRelease NotesQuery PlannerPRAGMA
Laravel Tech Community
Written by

Laravel Tech Community

Specializing in Laravel development, we continuously publish fresh content and grow alongside the elegant, stable Laravel framework.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.