<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in INSTALL</title>
    <link>http://nxr.netbsd.org/rss/src/external/public-domain/sqlite/dist/INSTALL</link>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2005</copyright>
    <generator>Java</generator>
    
<item>
    <title>branches:  1.1.1;<br/>Initial revision</title>
    <description>/src/external/public-domain/sqlite/dist/INSTALL - 1.1</description>
    <pubDate>Mon Sep 04 16:46:20 UTC 2023</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>Import 3.43.0 (last was 3.26.0)<br/><br/>2023-08-24 (3.43.0)<br/>Add support for Contentless-Delete FTS5 Indexes. This is a variety<br/>of FTS5 full-text search index that omits storing the content that<br/>is being indexed while also allowing records to be deleted.<br/>Enhancements to the date and time functions:<br/>Added new time shift modifiers of the form �YYYY-MM-DD HH:MM:SS.SSS.<br/>Added the timediff() SQL function.<br/>Added the octet_length(X) SQL function.<br/>Added the sqlite3_stmt_explain() API.<br/>Query planner enhancements:<br/>Generalize the LEFT JOIN strength reduction optimization so that<br/>it works for RIGHT and FULL JOINs as well. Rename it to OUTER JOIN<br/>strength reduction.<br/>Enhance the theorem prover in the OUTER JOIN strength reduction<br/>optimization so that it returns fewer false-negatives.<br/>Enhancements to the decimal extension:<br/>New function decimal_pow2(N) returns the N-th power of 2 for integer<br/>N between -20000 and +20000.<br/>New function decimal_exp(X) works like decimal(X) except that it<br/>returns the result in exponential notation - with a "e+NN" at the<br/>end.<br/>If X is a floating-point value, then the decimal(X) function now<br/>does a full expansion of that value into its exact decimal equivalent.<br/>Performance enhancements to JSON processing results in a 2x<br/>performance improvement for some kinds of processing on large JSON<br/>strings.<br/>New makefile target "verify-source" checks to ensure that there<br/>are no unintentional changes in the source tree. (Works for canonical<br/>source code only - not for precompiled amalgamation tarballs.)<br/>Added the SQLITE_USE_SEH compile-time option that enables Structured<br/>Exception Handling on Windows while working with the memory-mapped<br/>shm file that is part of WAL mode processing. This option is enabled<br/>by default when building on Windows using Makefile.msc.<br/>The VFS for unix now assumes that the nanosleep() system call is<br/>available unless compiled with -DHAVE_NANOSLEEP=0.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2023-08-24 12:36:59<br/>0f80b798b3f4b81a7bb4233c58294edd0f1156f36b6ecf5ab8e83631d468778c<br/>SHA3-256 for sqlite3.c:<br/>a6fc5379891d77b69a7d324cd24a437307af66cfdc3fef5dfceec3c82c8d4078<br/><br/>2023-05-16 (3.42.0)<br/>Add the FTS5 secure-delete command. This option causes all forensic<br/>traces to be removed from the FTS5 inverted index when content is<br/>deleted.<br/>Enhance the JSON SQL functions to support JSON5 extensions.<br/>The SQLITE_CONFIG_LOG and SQLITE_CONFIG_PCACHE_HDRSZ calls to<br/>sqlite3_config() are now allowed to occur after sqlite3_initialize().<br/>New sqlite3_db_config() options: SQLITE_DBCONFIG_STMT_SCANSTATUS<br/>and SQLITE_DBCONFIG_REVERSE_SCANORDER.<br/>Query planner improvements:<br/>Enable the "count-of-view" optimization by default.<br/>Avoid computing unused columns in subqueries.<br/>Improvements to the push-down optimization.<br/>Enhancements to the CLI:<br/>Add the --unsafe-testing command-line option. Without this option,<br/>some dot-commands (ex: ".testctrl") are now disabled because those<br/>commands that are intended for testing only and can cause malfunctions<br/>misused.<br/>Allow commands ".log on" and ".log off", even in --safe mode.<br/>"--" as a command-line argument means all subsequent arguments that<br/>start with "-" are interpreted as normal non-option argument.<br/>Magic parameters ":inf" and ":nan" bind to floating point literals<br/>Infinity and NaN, respectively.<br/>The --utf8 command-line option omits all translation to or from<br/>MBCS on the Windows console for interactive sessions, and sets the<br/>console code page for UTF-8 I/O during such sessions. The --utf8<br/>option is a no-op on all other platforms.<br/>Add the ability for application-defined SQL functions to have the<br/>same name as join keywords: CROSS, FULL, INNER, LEFT, NATURAL,<br/>OUTER, or RIGHT.<br/>Enhancements to PRAGMA integrity_check:<br/>Detect and raise an error when a NaN value is stored in a NOT NULL<br/>column.<br/>Improved error message output identifies the root page of a b-tree<br/>when an error is found within a b-tree.<br/>Allow the session extension to be configured to capture changes<br/>from tables that lack an explicit ROWID.<br/>Added the subsecond modifier to the date and time functions.<br/>Negative values passed into sqlite3_sleep() are henceforth interpreted<br/>as 0.<br/>The maximum recursion depth for JSON arrays and objects is lowered<br/>from 2000 to 1000.<br/>Extended the built-in printf() function so the comma option now<br/>works with floating-point conversions in addition to integer<br/>conversions.<br/>Miscellaneous bug fixes and performance optimizations<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2023-05-16 12:36:15<br/>831d0fb2836b71c9bc51067c49fee4b8f18047814f2ff22d817d25195cf350b0<br/>SHA3-256 for sqlite3.c:<br/>6aa3fadf000000625353bbaa1e83af114c40c240a0aa5a2c1c2aabcfc28d4f92<br/><br/>2023-03-22 (3.41.2)<br/>Multiple fixes for reads past the end of memory buffers (NB: reads<br/>not writes) in the following circumstances:<br/>When processing a corrupt database file using the non-standard<br/>SQLITE_ENABLE_STAT4 compile-time option.<br/>In the CLI when the sqlite3_error_offset() routine returns an<br/>out-of-range value (see also the fix to sqlite3_error_offset()<br/>below).<br/>In the recovery extension.<br/>In FTS3 when processing a corrupt database file.<br/>Fix the sqlite3_error_offset() so that it does not return out-of-range<br/>values when reporting errors associated with generated columns.<br/>Multiple fixes in the query optimizer for problems that cause<br/>incorrect results for bizarre, fuzzer-generated queries.<br/>Increase the size of the reference counter in the page cache object<br/>to 64 bits to ensure that the counter never overflows.<br/>Fix a performance regression caused by a bug fix in patch release<br/>3.41.1.<br/>Fix a few incorrect assert() statements.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2023-03-22 11:56:21<br/>0d1fc92f94cb6b76bffe3ec34d69cffde2924203304e8ffc4155597af0c191da<br/>SHA3-256 for sqlite3.c:<br/>c83f68b7aac1e7d3ed0fcdb9857742f024449e1300bfb3375131a6180b36cf7c<br/><br/>2023-03-10 (3.41.1)<br/>Provide compile-time options -DHAVE_LOG2=0 and -DHAVE_LOG10=0 to<br/>enable SQLite to be compiled on systems that omit the standard<br/>library functions log2() and log10(), repectively.<br/>Ensure that the datatype for column t1.x in "CREATE TABLE t1 AS<br/>SELECT CAST(7 AS INT) AS x;" continues to be INT and is not NUM,<br/>for historical compatibility.<br/>Enhance PRAGMA integrity_check to detect when extra bytes appear<br/>at the end of an index record.<br/>Fix various obscure bugs reported by the user community. See the<br/>timeline of changes for details.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2023-03-10 12:13:52<br/>20399f3eda5ec249d147ba9e48da6e87f969d7966a9a896764ca437ff7e737ff<br/>SHA3-256 for sqlite3.c:<br/>d0d9db8425570f4a57def04fb8f4ac84f5c3e4e71d3d4d10472e3639c5fdf09f<br/><br/>2023-02-21 (3.41.0)<br/>Query planner improvements:<br/>Make use of indexed expressions within an aggregate query that<br/>includes a GROUP BY clause.<br/>The query planner has improved awareness of when an index is a<br/>covering index and adjusts predicted runtimes accordingly.<br/>The query planner is more aggressive about using co-routines rather<br/>than materializing subqueries and views.<br/>Queries against the built-in table-valued functions json_tree()<br/>and json_each() will now usually treat "ORDER BY rowid" as a no-op.<br/>Enhance the ability of the query planner to use indexed expressions<br/>even if the expression has been modified by the constant-propagation<br/>optimization. (See forum thread 0a539c7.)<br/>Add the built-in unhex() SQL function.<br/>Add the base64 and base85 application-defined functions as an<br/>extension and include that extension in the CLI.<br/>Add the sqlite3_stmt_scanstatus_v2() interface. (This interface is<br/>only available if SQLite is compiled using SQLITE_ENABLE_STMT_SCANSTATUS.)<br/>In-memory databases created using sqlite3_deserialize() now report<br/>their filename as an empty string, not as 'x'.<br/>Changes to the CLI:<br/>Add the new base64() and base85() SQL functions<br/>Enhanced EXPLAIN QUERY PLAN output using the new<br/>sqlite3_stmt_scanstatus_v2() interface when compiled using<br/>SQLITE_ENABLE_STMT_SCANSTATUS.<br/>The ".scanstats est" command provides query planner estimates in<br/>profiles.<br/>The continuation prompt indicates if the input is currently inside<br/>of a string literal, identifier literal, comment, trigger definition,<br/>etc.<br/>Enhance the --safe command-line option to disallow dangerous SQL<br/>functions.<br/>The double-quoted string misfeature is now disabled by default for<br/>CLI builds. Legacy use cases can reenable the misfeature at run-time<br/>using the ".dbconfig dqs_dml on" and ".dbconfig dqs_ddl on" commands.<br/>Enhance the PRAGMA integrity_check command so that it detects when<br/>text strings in a table are equivalent to but not byte-for-byte<br/>identical to the same strings in the index.<br/>Enhance the carray table-valued function so that it is able to bind<br/>an array of BLOB objects.<br/>Added the sqlite3_is_interrupted() interface.<br/>Long-running calls to sqlite3_prepare() and similar now invoke the<br/>progress handler callback and react to sqlite3_interrupt().<br/>The sqlite3_vtab_in_first() and sqlite3_vtab_in_next() functions<br/>are enhanced so that they reliably detect if they are invoked on<br/>a parameter that was not selected for multi-value IN processing<br/>using sqlite3_vtab_in(). They return SQLITE_ERROR instead of<br/>SQLITE_MISUSE in this case.<br/>The parser now ignores excess parentheses around a subquery on the<br/>right-hand side of an IN operator, so that SQLite now works the<br/>same as PostgreSQL in this regard. Formerly, SQLite treated the<br/>subquery as an expression with an implied "LIMIT 1".<br/>Added the SQLITE_FCNTL_RESET_CACHE option to the sqlite3_file_control()<br/>API.<br/>Makefile improvements:<br/>The new makefile target "sqlite3r.c" builds an amalgamation that<br/>includes the recovery extension.<br/>New makefile targets "devtest" and "releasetest" for running a<br/>quick developmental test prior to doing a check-in and for doing<br/>a full release test, respectively.<br/>Miscellaneous performance enhancements.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2023-02-21 18:09:37<br/>05941c2a04037fc3ed2ffae11f5d2260706f89431f463518740f72ada350866d<br/>SHA3-256 for sqlite3.c:<br/>02bd9e678460946810801565667fdb8f0c29c78e51240512d2e5bb3dbdee7464<br/><br/>2022-12-28 (3.40.1)<br/>Fix the --safe command-line option to the CLI such that it correctly<br/>disallows the use of SQL functions like writefile() that can cause<br/>harmful side-effects.<br/>Fix a potential infinite loop in the memsys5 alternative memory<br/>allocator. This bug was introduced by a performance optimization<br/>in version 3.39.0.<br/>Various other obscure fixes.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-12-28 14:03:47<br/>df5c253c0b3dd24916e4ec7cf77d3db5294cc9fd45ae7b9c5e82ad8197f38a24<br/>SHA3-256 for sqlite3.c:<br/>4d6800e9032ff349376fe612e422b49ba5eb4e378fac0b3e405235d09dd366ab<br/><br/>2022-11-16 (3.40.0)<br/>Add support for compiling SQLite to WASM and running it in web<br/>browsers. NB: The WASM build and its interfaces are considered<br/>"beta" and are subject to minor changes if the need arises. We<br/>anticipate finalizing the interface for the next release.<br/>Add the recovery extension that might be able to recover some<br/>content from a corrupt database file.<br/>Query planner enhancements:<br/>Recognize covering indexes on tables with more than 63 columns<br/>where columns beyond the 63rd column are used in the query and/or<br/>are referenced by the index.<br/>Extract the values of expressions contained within expression<br/>indexes where practical, rather than recomputing the expression.<br/>The NOT NULL and IS NULL operators (and their equivalents) avoid<br/>loading the content of large strings and BLOB values from disk.<br/>Avoid materializing a view on which a full scan is performed exactly<br/>once. Use and discard the rows of the view as they are computed.<br/>Allow flattening of a subquery that is the right-hand operand of<br/>a LEFT JOIN in an aggregate query.<br/>A new typedef named sqlite3_filename is added and used to represent<br/>the name of a database file. Various interfaces are modified to<br/>use the new typedef instead of "char*". This interface change should<br/>be fully backwards compatible, though it might cause (harmless)<br/>compiler warnings when rebuilding some legacy applications.<br/>Add the sqlite3_value_encoding() interface.<br/>Security enhancement: SQLITE_DBCONFIG_DEFENSIVE is augmented to<br/>prohibit changing the schema_version. The schema_version becomes<br/>read-only in defensive mode.<br/>Enhancements to the PRAGMA integrity_check statement:<br/>Columns in non-STRICT tables with TEXT affinity should not contain<br/>numeric values.<br/>Columns in non-STRICT tables with NUMERIC affinity should not<br/>contain TEXT values that could be converted into numbers.<br/>Verify that the rows of a WITHOUT ROWID table are in the correct<br/>order.<br/>Enhance the VACUUM INTO statement so that it honors the PRAGMA<br/>synchronous setting.<br/>Enhance the sqlite3_strglob() and sqlite3_strlike() APIs so that<br/>they are able to accept NULL pointers for their string parameters<br/>and still generate a sensible result.<br/>Provide the new SQLITE_MAX_ALLOCATION_SIZE compile-time option for<br/>limiting the size of memory allocations.<br/>Change the algorithm used by SQLite's built-in pseudo-random number<br/>generator (PRNG) from RC4 to Chacha20.<br/>Allow two or more indexes to have the same name as long as they<br/>are all in separate schemas.<br/>Miscellaneous performance optimizations result in about 1% fewer<br/>CPU cycles used on typical workloads.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-11-16 12:10:08<br/>89c459e766ea7e9165d0beeb124708b955a4950d0f4792f457465d71b158d318<br/>SHA3-256 for sqlite3.c:<br/>ab8da6bc754642989e67d581f26683dc705b068cea671970f0a7d32cfacbad19<br/><br/>2022-09-29 (3.39.4)<br/>Fix the build on Windows so that it works with -DSQLITE_OMIT_AUTOINIT<br/>Fix a long-standing problem in the btree balancer that might, in<br/>rare cases, cause database corruption if the application uses an<br/>application-defined page cache.<br/>Enhance SQLITE_DBCONFIG_DEFENSIVE so that it disallows CREATE<br/>TRIGGER statements if one or more of the statements in the body of<br/>the trigger write into shadow tables.<br/>Fix a possible integer overflow in the size computation for a memory<br/>allocation in FTS3.<br/>Fix a misuse of the sqlite3_set_auxdata() interface in the ICU<br/>Extension.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-09-29 15:55:41<br/>a29f9949895322123f7c38fbe94c649a9d6e6c9cd0c3b41c96d694552f26b309<br/>SHA3-256 for sqlite3.c:<br/>f65082298127e2ddae6539beb94f5204b591df64ba2c7da83c7d0faffd6959d8<br/><br/>2022-09-05 (3.39.3)<br/>Use a statement journal on DML statement affecting two or more<br/>database rows if the statement makes use of a SQL functions that<br/>might abort. See forum thread 9b9e4716c0d7bbd1.<br/>Use a mutex to protect the PRAGMA temp_store_directory and PRAGMA<br/>data_store_directory statements, even though they are deprecated<br/>and documented as not being threadsafe. See forum post 719a11e1314d1c70.<br/>Other bug and warning fixes. See the timeline for details.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-09-05 11:02:23<br/>4635f4a69c8c2a8df242b384a992aea71224e39a2ccab42d8c0b0602f1e826e8<br/>SHA3-256 for sqlite3.c:<br/>2fc273cf8032b601c9e06207efa0ae80eb73d5a1d283eb91096c815fa9640257<br/><br/>2022-07-21 (3.39.2)<br/>Fix a performance regression in the query planner associated with<br/>rearranging the order of FROM clause terms in the presences of a<br/>LEFT JOIN.<br/>Apply fixes for CVE-2022-35737, Chromium bugs 1343348 and 1345947,<br/>forum post 3607259d3c, and other minor problems discovered by<br/>internal testing.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-07-21 15:24:47<br/>698edb77537b67c41adc68f9b892db56bcf9a55e00371a61420f3ddd668e6603<br/>SHA3-256 for sqlite3.c:<br/>bffbaafa94706f0ed234f183af3eb46e6485e7e2c75983173ded76e0da805f11<br/><br/>2022-07-13 (3.39.1)<br/>Fix an incorrect result from a query that uses a view that contains<br/>a compound SELECT in which only one arm contains a RIGHT JOIN and<br/>where the view is not the first FROM clause term of the query that<br/>contains the view. forum post 174afeae5734d42d.<br/>Fix some harmless compiler warnings.<br/>Fix a long-standing problem with ALTER TABLE RENAME that can only<br/>arise if the sqlite3_limit(SQLITE_LIMIT_SQL_LENGTH) is set to a<br/>very small value.<br/>Fix a long-standing problem in FTS3 that can only arise when compiled<br/>with the SQLITE_ENABLE_FTS3_PARENTHESIS compile-time option.<br/>Fix the build so that is works when the SQLITE_DEBUG and<br/>SQLITE_OMIT_WINDOWFUNC compile-time options are both provided at<br/>the same time.<br/>Fix the initial-prefix optimization for the REGEXP extension so<br/>that it works correctly even if the prefix contains characters that<br/>require a 3-byte UTF8 encoding.<br/>Enhance the sqlite_stmt virtual table so that it buffers all of<br/>its output.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-07-13 19:41:41<br/>7c16541a0efb3985578181171c9f2bb3fdc4bad6a2ec85c6e31ab96f3eff201f<br/>SHA3-256 for sqlite3.c:<br/>6d13fcf1c31133da541d1eb8a83552d746f39b81a0657bd4077fed0221749511<br/><br/>2022-06-25 (3.39.0)<br/>Add (long overdue) support for RIGHT and FULL OUTER JOIN.<br/>Add new binary comparison operators IS NOT DISTINCT FROM and IS<br/>DISTINCT FROM that are equivalent to IS and IS NOT, respective,<br/>for compatibility with PostgreSQL and SQL standards.<br/>Add a new return code (value "3") from the sqlite3_vtab_distinct()<br/>interface that indicates a query that has both DISTINCT and ORDER<br/>BY clauses.<br/>Added the sqlite3_db_name() interface.<br/>The unix os interface resolves all symbolic links in database<br/>filenames to create a canonical name for the database before the<br/>file is opened. If the SQLITE_OPEN_NOFOLLOW flag is used with<br/>sqlite3_open_v2() or similar, the open will fail if any element of<br/>the path is a symbolic link.<br/>Defer materializing views until the materialization is actually<br/>needed, thus avoiding unnecessary work if the materialization turns<br/>out to never be used.<br/>The HAVING clause of a SELECT statement is now allowed on any<br/>aggregate query, even queries that do not have a GROUP BY clause.<br/>Many microoptimizations collectively reduce CPU cycles by about<br/>2.3%.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-06-25 14:57:57<br/>14e166f40dbfa6e055543f8301525f2ca2e96a02a57269818b9e69e162e98918<br/>SHA3-256 for sqlite3.c:<br/>d9c439cacad5e4992d0d25989cfd27a4c4f59a3183c97873bc03f0ad1aa78b7a<br/><br/>2022-05-06 (3.38.5)<br/>Fix a blunder in the CLI of the 3.38.4 release.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-05-06 15:25:27<br/>78d9c993d404cdfaa7fdd2973fa1052e3da9f66215cff9c5540ebe55c407d9fe<br/>SHA3-256 for sqlite3.c:<br/>b05ef42ed234009b4b3dfb36c5f5ccf6d728da80f25ee560291269cf6cfe635f<br/><br/>2022-05-04 (3.38.4)<br/>Fix a byte-code problem in the Bloom filter pull-down optimization<br/>added by release 3.38.0 in which an error in the byte code causes<br/>the byte code engine to enter an infinite loop when the pull-down<br/>optimization encounters a NULL key. Forum thread 2482b32700384a0f.<br/>Other minor patches. See the timeline for details.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-05-04 15:45:55<br/>d402f49871152670a62f4f28cacb15d814f2c1644e9347ad7d258e562978e45e<br/>SHA3-256 for sqlite3.c:<br/>e6a50effb021858c200e885664611ed3c5e949413ff2dca452ac7ee336b9de1d<br/><br/>2022-04-27 (3.38.3)<br/>Fix a case of the query planner be overly aggressive with optimizing<br/>automatic-index and Bloom-filter construction, using inappropriate<br/>ON clause terms to restrict the size of the automatic-index or<br/>Bloom filter, and resulting in missing rows in the output. Forum<br/>thread 0d3200f4f3bcd3a3.<br/>Other minor patches. See the timeline for details.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-04-27 12:03:15<br/>9547e2c38a1c6f751a77d4d796894dec4dc5d8f5d79b1cd39e1ffc50df7b3be4<br/>SHA3-256 for sqlite3.c:<br/>d4d66feffad66ea82073fbb97ae9c84e3615887ebc5168226ccee28d82424517<br/><br/>2022-03-26 (3.38.2)<br/>Fix a user-discovered problem with the new Bloom filter optimization<br/>that might cause an incorrect answer when doing a LEFT JOIN with<br/>a WHERE clause constraint that says that one of the columns on the<br/>right table of the LEFT JOIN is NULL. See forum thread 031e262a89b6a9d2.<br/>Other minor patches. See the timeline for details.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-03-26 13:51:10<br/>d33c709cc0af66bc5b6dc6216eba9f1f0b40960b9ae83694c986fbf4c1d6f08f<br/>SHA3-256 for sqlite3.c:<br/>0fbac6b6999f894184899431fb77b9792324c61246b2a010d736694ccaa6d613<br/><br/>2022-03-12 (3.38.1)<br/>Fix problems with the new Bloom filter optimization that might<br/>cause some obscure queries to get an incorrect answer.<br/>Fix the localtime modifier of the date and time functions so that<br/>it preserves fractional seconds.<br/>Fix the sqlite_offset SQL function so that it works correctly even<br/>in corner cases such as when the argument is a virtual column or<br/>the column of a view.<br/>Fix row value IN operator constraints on virtual tables so that<br/>they work correctly even if the virtual table implementation relies<br/>on bytecode to filter rows that do not satisfy the constraint.<br/>Other minor fixes to assert() statements, test cases, and documentation.<br/>See the source code timeline for details.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-03-12 13:37:29<br/>38c210fdd258658321c85ec9c01a072fda3ada94540e3239d29b34dc547a8cbc<br/>SHA3-256 for sqlite3.c:<br/>262ba071e960a8a0a6ce39307ae30244a2b0dc9fe1c4c09d0e1070d4353cd92c<br/><br/>2022-02-22 (3.38.0)<br/>Added the -&gt; and -&gt;&gt; operators for easier processing of JSON. The<br/>new operators are compatible with MySQL and PostgreSQL.<br/>The JSON functions are now built-ins. It is no longer necessary to<br/>use the -DSQLITE_ENABLE_JSON1 compile-time option to enable JSON<br/>support. JSON is on by default. Disable the JSON interface using<br/>the new -DSQLITE_OMIT_JSON compile-time option.<br/>Enhancements to date and time functions:<br/>Added the unixepoch() function.<br/>Added the auto modifier and the julianday modifier.<br/>Rename the printf() SQL function to format() for better compatibility.<br/>The original printf() name is retained as an alias for backwards<br/>compatibility.<br/>Added the sqlite3_error_offset() interface, which can sometimes<br/>help to localize an SQL error to a specific character in the input<br/>SQL text, so that applications can provide better error messages.<br/>Enhanced the interface to virtual tables as follows:<br/>Added the sqlite3_vtab_distinct() interface.<br/>Added the sqlite3_vtab_rhs_value() interface.<br/>Added new operator types SQLITE_INDEX_CONSTRAINT_LIMIT and<br/>SQLITE_INDEX_CONSTRAINT_OFFSET.<br/>Added the sqlite3_vtab_in() interface (and related) to enable a<br/>virtual table to process IN operator constraints all at once, rather<br/>than processing each value of the right-hand side of the IN operator<br/>separately.<br/>CLI enhancements:<br/>Columnar output modes are enhanced to correctly handle tabs and<br/>newlines embedded in text.<br/>Added options like "--wrap N", "--wordwrap on", and "--quote" to<br/>the columnar output modes.<br/>Added the .mode qbox alias.<br/>The .import command automatically disambiguates column names.<br/>Use the new sqlite3_error_offset() interface to provide better<br/>error messages.<br/>Query planner enhancements:<br/>Use a Bloom filter to speed up large analytic queries.<br/>Use a balanced merge tree to evaluate UNION or UNION ALL compound<br/>SELECT statements that have an ORDER BY clause.<br/>The ALTER TABLE statement is changed to silently ignores entries<br/>in the sqlite_schema table that do not parse when PRAGMA<br/>writable_schema=ON.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-02-22 18:58:40<br/>40fa792d359f84c3b9e9d6623743e1a59826274e221df1bde8f47086968a1bab<br/>SHA3-256 for sqlite3.c:<br/>a69af0a88d59271a2dd3c846a3e93cbd29e7c499864f6c0462a3b4160bee1762<br/><br/>2022-01-06 (3.37.2)<br/>Fix a bug introduced in version 3.35.0 (2021-03-12) that can cause<br/>database corruption if a SAVEPOINT is rolled back while in PRAGMA<br/>temp_store=MEMORY mode, and other changes are made, and then the<br/>outer transaction commits. Check-in 73c2b50211d3ae26<br/>Fix a long-standing problem with ON DELETE CASCADE and ON UPDATE<br/>CASCADE in which a cache of the bytecode used to implement the<br/>cascading change was not being reset following a local DDL change.<br/>Check-in 5232c9777fe4fb13.<br/>Other minor fixes that should not impact production builds.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2022-01-06 13:25:41<br/>872ba256cbf61d9290b571c0e6d82a20c224ca3ad82971edc46b29818d5d17a0<br/>SHA3-256 for sqlite3.c:<br/>1bb01c382295cba85ec4685cedc52a7477cdae71cc37f1ad0f48719a17af1e1e<br/><br/>2021-12-30 (3.37.1)<br/>Fix a bug introduced by the UPSERT enhancements of version 3.35.0<br/>that can cause incorrect byte-code to be generated for some obscure<br/>but valid SQL, possibly resulting in a NULL-pointer dereference.<br/>Fix an OOB read that can occur in FTS5 when reading corrupt database<br/>files.<br/>Improved robustness of the --safe option in the CLI.<br/>Other minor fixes to assert() statements and test cases.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2021-12-30 15:30:28<br/>378629bf2ea546f73eee84063c5358439a12f7300e433f18c9e1bddd948dea62<br/>SHA3-256 for sqlite3.c:<br/>915afb3f29c2d217ea0c283326a9df7d505e6c73b40236f0b33ded91f812d174<br/><br/>2021-11-27 (3.37.0)<br/>STRICT tables provide a prescriptive style of data type management,<br/>for developers who prefer that kind of thing.<br/>When adding columns that contain a CHECK constraint or a generated<br/>column containing a NOT NULL constraint, the ALTER TABLE ADD COLUMN<br/>now checks new constraints against preexisting rows in the database<br/>and will only proceed if no constraints are violated.<br/>Added the PRAGMA table_list statement.<br/>CLI enhancements:<br/>Add the .connection command, allowing the CLI to keep multiple<br/>database connections open at the same time.<br/>Add the --safe command-line option that disables dot-commands and<br/>SQL statements that might cause side-effects that extend beyond<br/>the single database file named on the command-line.<br/>Performance improvements when reading SQL statements that span many<br/>lines.<br/>Added the sqlite3_autovacuum_pages() interface.<br/>The sqlite3_deserialize() does not and has never worked for the<br/>TEMP database. That limitation is now noted in the documentation.<br/>The query planner now omits ORDER BY clauses on subqueries and<br/>views if removing those clauses does not change the semantics of<br/>the query.<br/>The generate_series table-valued function extension is modified so<br/>that the first parameter ("START") is now required. This is done<br/>as a way to demonstrate how to write table-valued functions with<br/>required parameters. The legacy behavior is available using the<br/>-DZERO_ARGUMENT_GENERATE_SERIES compile-time option.<br/>Added new sqlite3_changes64() and sqlite3_total_changes64()<br/>interfaces.<br/>Added the SQLITE_OPEN_EXRESCODE flag option to sqlite3_open_v2().<br/>Use less memory to hold the database schema.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2021-11-27 14:13:22<br/>bd41822c7424d393a30e92ff6cb254d25c26769889c1499a18a0b9339f5d6c8a<br/>SHA3-256 for sqlite3.c:<br/>a202a950ab401cda052e81259e96d6e64ad91faaaaf5690d769f64c2ab962f27<br/><br/>2021-06-18 (3.36.0)<br/>Improvement to the EXPLAIN QUERY PLAN output to make it easier to<br/>understand.<br/>Byte-order marks at the start of a token are skipped as if they<br/>were whitespace.<br/>An error is raised on any attempt to access the rowid of a VIEW or<br/>subquery. Formerly, the rowid of a VIEW would be indeterminate and<br/>often would be NULL. The -DSQLITE_ALLOW_ROWID_IN_VIEW compile-time<br/>option is available to restore the legacy behavior for applications<br/>that need it.<br/>The sqlite3_deserialize() and sqlite3_serialize() interfaces are<br/>now enabled by default. The -DSQLITE_ENABLE_DESERIALIZE compile-time<br/>option is no longer required. Instead, there is a new<br/>-DSQLITE_OMIT_DESERIALIZE compile-time option to omit those<br/>interfaces.<br/>The "memdb" VFS now allows the same in-memory database to be shared<br/>among multiple database connections in the same process as long as<br/>the database name begins with "/".<br/>Back out the EXISTS-to-IN optimization (item 8b in the SQLite 3.35.0<br/>change log) as it was found to slow down queries more often than<br/>speed them up.<br/>Improve the constant-propagation optimization so that it works on<br/>non-join queries.<br/>The REGEXP extension is now included in CLI builds.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2021-06-18 18:36:39<br/>5c9a6c06871cb9fe42814af9c039eb6da5427a6ec28f187af7ebfb62eafa66e5<br/>SHA3-256 for sqlite3.c:<br/>2a8e87aaa414ac2d45ace8eb74e710935423607a8de0fafcb36bbde5b952d157<br/><br/>2021-04-19 (3.35.5)<br/>Fix defects in the new ALTER TABLE DROP COLUMN feature that could<br/>corrupt the database file.<br/>Fix an obscure query optimizer problem that might cause an incorrect<br/>query result.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2021-04-19 18:32:05<br/>1b256d97b553a9611efca188a3d995a2fff712759044ba480f9a0c9e98fae886<br/>SHA3-256 for sqlite3.c:<br/>e42291343e8f03940e57fffcf1631e7921013b94419c2f943e816d3edf4e1bbe<br/><br/>2021-04-02 (3.35.4)<br/>Fix a defect in the query planner optimization identified by item<br/>8b above. Ticket de7db14784a08053.<br/>Fix a defect in the new RETURNING syntax. Ticket 132994c8b1063bfb.<br/>Fix the new RETURNING feature so that it raises an error if one of<br/>the terms in the RETURNING clause references a unknown table,<br/>instead of silently ignoring that error.<br/>Fix an assertion associated with aggregate function processing that<br/>was incorrectly triggered by the push-down optimization.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2021-04-02 15:20:15<br/>5d4c65779dab868b285519b19e4cf9d451d50c6048f06f653aa701ec212df45e<br/>SHA3-256 for sqlite3.c:<br/>528b8a26bf5ffd4c7b4647b5b799f86e8fb1a075f715b87a414e94fba3d09dbe<br/><br/>2021-03-26 (3.35.3)<br/>Enhance the OP_OpenDup opcode of the bytecode engine so that it<br/>works even if the cursor being duplicated itself came from OP_OpenDup.<br/>Fix for ticket bb8a9fd4a9b7fce5. This problem only came to light<br/>due to the recent MATERIALIZED hint enhancement.<br/>When materializing correlated common table expressions, do so<br/>separately for each use case, as that is required for correctness.<br/>This fixes a problem that was introduced by the MATERIALIZED hint<br/>enhancement.<br/>Fix a problem in the filename normalizer of the unix VFS.<br/>Fix the "box" output mode in the CLI so that it works with statements<br/>that returns one or more rows of zero columns (such as PRAGMA<br/>incremental_vacuum). Forum post afbbcb5b72.<br/>Improvements to error messages generated by faulty common table<br/>expressions. Forum post aa5a0431c99e.<br/>Fix some incorrect assert() statements.<br/>Fix to the SELECT statement syntax diagram so that the FROM clause<br/>syntax is shown correctly. Forum post 9ed02582fe.<br/>Fix the EBCDIC character classifier so that it understands newlines<br/>as whitespace. Forum post 58540ce22dcd.<br/>Improvements the xBestIndex method in the implementation of the<br/>(unsupported) wholenumber virtual table extension so that it does<br/>a better job of convincing the query planner to avoid trying to<br/>materialize a table with an infinite number of rows. Forum post<br/>b52a020ce4.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2021-03-26 12:12:52<br/>4c5e6c200adc8afe0814936c67a971efc516d1bd739cb620235592f18f40be2a<br/>SHA3-256 for sqlite3.c:<br/>91ca6c0a30ebfdba4420bb35f4fd9149d13e45fc853d86ad7527db363e282683<br/><br/>2021-03-17 (3.35.2)<br/>Fix a problem in the appendvfs.c extension that was introduced into<br/>version 3.35.0.<br/>Ensure that date/time functions with no arguments (which generate<br/>responses that depend on the current time) are treated as<br/>non-deterministic functions. Ticket 2c6c8689fb5f3d2f<br/>Fix a problem in the sqldiff utility program having to do with<br/>unusual whitespace characters in a virtual table definition.<br/>Limit the new UNION ALL optimization described by item 8c in the<br/>3.35.0 release so that it does not try to make too many new<br/>subqueries. See forum thread 140a67d3d2 for details.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2021-03-17 19:07:21<br/>ea80f3002f4120f5dcee76e8779dfdc88e1e096c5cdd06904c20fd26d50c3827<br/>SHA3-256 for sqlite3.c:<br/>e8edc7b1512a2e050d548d0840bec6eef83cc297af1426c34c0ee8720f378a11<br/><br/>2021-03-15 (3.35.1)<br/>Fix a bug in the new DROP COLUMN feature when used on columns that<br/>are indexed and that are quoted in the index definition.<br/>Improve the built-in documentation for the .dump command in the<br/>CLI.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2021-03-15 16:53:57<br/>aea12399bf1fdc76af43499d4624c3afa17c3e6c2459b71c195804bb98def66a<br/>SHA3-256 for sqlite3.c:<br/>fc79e27fd030226c07691b7d7c23aa81c8d46bc3bef5af39060e1507c82b0523<br/><br/>2021-03-12 (3.35.0)<br/>Added built-in SQL math functions(). (Requires the<br/>-DSQLITE_ENABLE_MATH_FUNCTIONS compile-time option.)<br/>Added support for ALTER TABLE DROP COLUMN.<br/>Generalize UPSERT:<br/>Allow multiple ON CONFLICT clauses that are evaluated in order,<br/>The final ON CONFLICT clause may omit the conflict target and yet<br/>still use DO UPDATE.<br/>Add support for the RETURNING clause on DELETE, INSERT, and UPDATE<br/>statements.<br/>Use less memory when running VACUUM on databases containing very<br/>large TEXT or BLOB values. It is no longer necessary to hold the<br/>entire TEXT or BLOB in memory all at once.<br/>Add support for the MATERIALIZED and NOT MATERIALIZED hints when<br/>specifying common table expressions. The default behavior was<br/>formerly NOT MATERIALIZED, but is now changed to MATERIALIZED for<br/>CTEs that are used more than once.<br/>The SQLITE_DBCONFIG_ENABLE_TRIGGER and SQLITE_DBCONFIG_ENABLE_VIEW<br/>settings are modified so that they only control triggers and views<br/>in the main database schema or in attached database schemas and<br/>not in the TEMP schema. TEMP triggers and views are always allowed.<br/>Query planner/optimizer improvements:<br/>Enhancements to the min/max optimization so that it works better<br/>with the IN operator and the OP_SeekScan optimization of the previous<br/>release.<br/>Attempt to process EXISTS operators in the WHERE clause as if they<br/>were IN operators, in cases where this is a valid transformation<br/>and seems likely to improve performance.<br/>Allow UNION ALL sub-queries to be flattened even if the parent<br/>query is a join.<br/>Use an index, if appropriate, on IS NOT NULL expressions in the<br/>WHERE clause, even if STAT4 is disabled.<br/>Expressions of the form "x IS NULL" or "x IS NOT NULL" might be<br/>converted to simply FALSE or TRUE, if "x" is a column that has a<br/>"NOT NULL" constraint and is not involved in an outer join.<br/>Avoid checking foreign key constraints on an UPDATE statement if<br/>the UPDATE does not modify any columns associated with the foreign<br/>key.<br/>Allow WHERE terms to be pushed down into sub-queries that contain<br/>window functions, as long as the WHERE term is made up of entirely<br/>of constants and copies of expressions found in the PARTITION BY<br/>clauses of all window functions in the sub-query.<br/>CLI enhancements:<br/>Enhance the ".stats" command to accept new arguments "stmt" and<br/>"vmstep", causing prepare statement statistics and only the<br/>virtual-machine step count to be shown, respectively.<br/>Add the ".filectrl data_version" command.<br/>Enhance the ".once" and ".output" commands so that if the destination<br/>argument begins with "|" (indicating that output is redirected into<br/>a pipe) then the argument does not need to be quoted.<br/>Bug fixes:<br/>Fix a potential NULL pointer dereference when processing a<br/>syntactically incorrect SELECT statement with a correlated WHERE<br/>clause and a "HAVING 0" clause. (Also fixed in the 3.34.1 patch<br/>release.)<br/>Fix a bug in the IN-operator optimization of version 3.33.0 that<br/>can cause an incorrect answer.<br/>Fix incorrect answers from the LIKE operator if the pattern ends<br/>with "%" and there is an "ESCAPE '_'" clause.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2021-03-12 15:10:09<br/>acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b<br/>SHA3-256 for sqlite3.c:<br/>73a740d881735bef9de7f7bce8c9e6b9e57fe3e77fa7d76a6e8fc5c262fbaedf<br/><br/>2021-01-20 (3.34.1)<br/>Fix a potential use-after-free bug when processing a a subquery<br/>with both a correlated WHERE clause and a "HAVING 0" clause and<br/>where the parent query is an aggregate.<br/>Fix documentation typos<br/>Fix minor problems in extensions.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2021-01-20 14:10:07<br/>10e20c0b43500cfb9bbc0eaa061c57514f715d87238f4d835880cd846b9ebd1f<br/>SHA3-256 for sqlite3.c:<br/>799a7be90651fc7296113b641a70b028c142d767b25af1d0a78f93dcf1a2bf20<br/><br/>2020-12-01 (3.34.0)<br/>Added the sqlite3_txn_state() interface for reporting on the current<br/>transaction state of the database connection.<br/>Enhance recursive common table expressions to support two or more<br/>recursive terms as is done by SQL Server, since this helps make<br/>queries against graphs easier to write and faster to execute.<br/>Improved error messages on CHECK constraint failures.<br/>CLI enhancements:<br/>The .read dot-command now accepts a pipeline in addition to a<br/>filename.<br/>Added options --data-only and --nosys to the .dump dot-command.<br/>Added the --nosys option to the .schema dot-command.<br/>Table name quoting works correctly for the .import dot-command.<br/>The generate_series(START,END,STEP) table-valued function extension<br/>is now built into the CLI.<br/>The .databases dot-command now shows the status of each database<br/>file as determined by sqlite3_db_readonly() and sqlite3_txn_state().<br/>Added the --tabs command-line option that sets .mode tabs.<br/>The --init option reports an error if the file named as its argument<br/>cannot be opened. The --init option also now honors the --bail<br/>option.<br/>Query planner improvements:<br/>Improved estimates for the cost of running a DISTINCT operator.<br/>When doing an UPDATE or DELETE using a multi-column index where<br/>only a few of the earlier columns of the index are useful for the<br/>index lookup, postpone doing the main table seek until after all<br/>WHERE clause constraints have been evaluated, in case those<br/>constraints can be covered by unused later terms of the index, thus<br/>avoiding unnecessary main table seeks.<br/>The new OP_SeekScan opcode is used to improve performance of<br/>multi-column index look-ups when later columns are constrained by<br/>an IN operator.<br/>The BEGIN IMMEDIATE and BEGIN EXCLUSIVE commands now work even if<br/>one or more attached database files are read-only.<br/>Enhanced FTS5 to support trigram indexes.<br/>Improved performance of WAL mode locking primitives in cases where<br/>there are hundreds of connections all accessing the same database<br/>file at once.<br/>Enhanced the carray() table-valued function to include a single-argument<br/>form that is bound using the auxiliary sqlite3_carray_bind()<br/>interface.<br/>The substr() SQL function can now also be called "substring()" for<br/>compatibility with SQL Server.<br/>The syntax diagrams are now implemented as Pikchr scripts and<br/>rendered as SVG for improved legibility and ease of maintenance.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2020-12-01 16:14:00<br/>a26b6597e3ae272231b96f9982c3bcc17ddec2f2b6eb4df06a224b91089fed5b<br/>SHA3-256 for sqlite3.c:<br/>fbd895b0655a337b2cd657675f314188a4e9fe614444cc63dfeb3f066f674514<br/><br/>2020-08-14 (3.33.0)<br/>Support for UPDATE FROM following the PostgreSQL syntax.<br/>Increase the maximum size of database files to 281 TB.<br/>Extended the PRAGMA integrity_check statement so that it can<br/>optionally be limited to verifying just a single table and its<br/>indexes, rather than the entire database file.<br/>Added the decimal extension for doing arbitrary-precision decimal<br/>arithmetic.<br/>Enhancements to the ieee754 extension for working with IEEE 754<br/>binary64 numbers.<br/>CLI enhancements:<br/>Added four new output modes: "box", "json", "markdown", and "table".<br/>The "column" output mode automatically expands columns to contain<br/>the longest output row and automatically turns ".header" on if it<br/>has not been previously set.<br/>The "quote" output mode honors ".separator"<br/>The decimal extension and the ieee754 extension are built-in to<br/>the CLI<br/>Query planner improvements:<br/>Add the ability to find a full-index-scan query plan for queries<br/>using INDEXED BY which previously would fail with "no query solution".<br/>Do a better job of detecting missing, incomplete, and/or dodgy<br/>sqlite_stat1 data and generates good query plans in spite of the<br/>misinformation.<br/>Improved performance of queries like "SELECT min(x) FROM t WHERE<br/>y IN (?,?,?)" assuming an index on t(x,y).<br/>In WAL mode, if a writer crashes and leaves the shm file in an<br/>inconsistent state, subsequent transactions are now able to recover<br/>the shm file even if there are active read transactions. Before<br/>this enhancement, shm file recovery that scenario would result in<br/>an SQLITE_PROTOCOL error.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2020-08-14 13:23:32<br/>fca8dc8b578f215a969cd899336378966156154710873e68b3d9ac5881b0ff3f<br/>SHA3-256 for sqlite3.c:<br/>d00b7fffa6d33af2303430eaf394321da2960604d25a4471c7af566344f2abf9<br/><br/>2020-06-18 (3.32.3)<br/>Various minor bug fixes including fixes for tickets 8f157e8010b22af0,<br/>9fb26d37cefaba40, e367f31901ea8700, b706351ce2ecf59a, 7c6d876f84e6e7e2,<br/>and c8d3b9f0a750a529.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2020-06-18 14:00:33<br/>7ebdfa80be8e8e73324b8d66b3460222eb74c7e9dfd655b48d6ca7e1933cc8fd<br/>SHA3-256 for sqlite3.c:<br/>b62b77ee1c561a69a71bb557694aaa5141f1714c1ff6cc1ba8aa8733c92d4f52<br/><br/>2020-06-04 (3.32.2)<br/>Fix a long-standing bug in the byte-code engine that can cause a<br/>COMMIT command report as success when in fact it failed to commit.<br/>Ticket 810dc8038872e212<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2020-06-04 12:58:43<br/>ec02243ea6ce33b090870ae55ab8aa2534b54d216d45c4aa2fdbb00e86861e8c<br/>SHA3-256 for sqlite3.c:<br/>f17a2a57f7eebc72d405f3b640b4a49bcd02364a9c36e04feeb145eccafa3f8d<br/><br/>2020-05-25 (3.32.1)<br/>Fix two long-standing bugs that allow malicious SQL statements to<br/>crash the process that is running SQLite. These bugs were announced<br/>by a third-party approximately 24 hours after the 3.32.0 release<br/>but are not specific to the 3.32.0 release.<br/>Other minor compiler-warning fixes and whatnot.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2020-05-25 16:19:56<br/>0c1fcf4711a2e66c813aed38cf41cd3e2123ee8eb6db98118086764c4ba83350<br/>SHA3-256 for sqlite3.c:<br/>f695ae21abf045e4ee77980a67ab2c6e03275009e593ee860a2eabf840482372<br/><br/>2020-05-22 (3.32.0)<br/>Added support for approximate ANALYZE using the PRAGMA analysis_limit<br/>command.<br/>Added the bytecode virtual table.<br/>Add the checksum VFS shim to the set of run-time loadable extensions<br/>included in the source tree.<br/>Added the iif() SQL function.<br/>INSERT and UPDATE statements now always apply column affinity before<br/>computing CHECK constraints. This bug fix could, in theory, cause<br/>problems for legacy databases with unorthodox CHECK constraints<br/>the require the input type for an INSERT is different from the<br/>declared column type. See ticket 86ba67afafded936 for more information.<br/>Added the sqlite3_create_filename(), sqlite3_free_filename(), and<br/>sqlite3_database_file_object() interfaces to better support of VFS<br/>shim implementations.<br/>Increase the default upper bound on the number of parameters from<br/>999 to 32766.<br/>Added code for the UINT collating sequence as an optional loadable<br/>extension.<br/>Enhancements to the CLI:<br/>Add options to the .import command: --csv, --ascii, --skip<br/>The .dump command now accepts multiple LIKE-pattern arguments and<br/>outputs the union of all matching tables.<br/>Add the .oom command in debugging builds<br/>Add the --bom option to the .excel, .output, and .once commands.<br/>Enhance the .filectrl command to support the --schema option.<br/>The UINT collating sequence extension is automatically loaded<br/>The ESCAPE clause of a LIKE operator now overrides wildcard<br/>characters, so that the behavior matches what PostgreSQL does.<br/>SQLITE_SOURCE_ID: 2020-05-22 17:46:16<br/>5998789c9c744bce92e4cff7636bba800a75574243d6977e1fc8281e360f8d5a<br/>SHA3-256 for sqlite3.c:<br/>33ed868b21b62ce1d0352ed88bdbd9880a42f29046497a222df6459fc32a356f<br/><br/>2020-01-27 (3.31.1)<br/>Revert the data layout for an internal-use-only SQLite data structure.<br/>Applications that use SQLite should never reference internal SQLite<br/>data structures, but some do anyhow, and a change to one such data<br/>structure in 3.30.0 broke a popular and widely-deployed application.<br/>Reverting that change in SQLite, at least temporarily, gives<br/>developers of misbehaving applications time to fix their code.<br/>Fix a typos in the sqlite3ext.h header file that prevented the<br/>sqlite3_stmt_isexplain() and sqlite3_value_frombind() interfaces<br/>from being called from run-time loadable extensions.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2020-01-27 19:55:54<br/>3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837bb4d6<br/>SHA3-256 for sqlite3.c:<br/>de465c64f09529429a38cbdf637acce4dfda6897f93e3db3594009e0fed56d27<br/><br/>2020-01-22 (3.31.0)<br/>Add support for generated columns.<br/>Add the sqlite3_hard_heap_limit64() interface and the corresponding<br/>PRAGMA hard_heap_limit command.<br/>Enhance the function_list pragma to show the number of arguments<br/>on each function, the type of function (scalar, aggregate, window),<br/>and the function property flags SQLITE_DETERMINISTIC, SQLITE_DIRECTONLY,<br/>SQLITE_INNOCUOUS, and/or SQLITE_SUBTYPE.<br/>Add the aggregated mode feature to the DBSTAT virtual table.<br/>Add the SQLITE_OPEN_NOFOLLOW option to sqlite3_open_v2() that<br/>prevents SQLite from opening symbolic links.<br/>Added the "#-N" array notation for JSON function path arguments.<br/>Added the SQLITE_DBCONFIG_TRUSTED_SCHEMA connection setting which<br/>is also controllable via the new trusted_schema pragma and at<br/>compile-time using the -DSQLITE_TRUSTED_SCHEMA compile-time option.<br/>Added APIs sqlite3_filename_database(), sqlite3_filename_journal(),<br/>and sqlite3_filename_wal() which are useful for specialized<br/>extensions.<br/>Add the sqlite3_uri_key() interface.<br/>Upgraded the sqlite3_uri_parameter() function so that it works with<br/>the rollback journal or WAL filename in addition to the database<br/>filename.<br/>Provide the ability to tag application-defined SQL functions with<br/>new properties SQLITE_INNOCUOUS or SQLITE_DIRECTONLY.<br/>Add new verbs to sqlite3_vtab_config() so that the xConnect method<br/>of virtual tables can declare the virtual table as SQLITE_VTAB_INNOCUOUS<br/>or SQLITE_VTAB_DIRECTONLY.<br/>Faster response to sqlite3_interrupt().<br/>Added the uuid.c extension module implementing functions for<br/>processing RFC-4122 UUIDs.<br/>The lookaside memory allocator is enhanced to support two separate<br/>memory pools with different sized allocations in each pool. This<br/>allows more memory allocations to be covered by lookaside while at<br/>the same time reducing the heap memory usage to 48KB per connection,<br/>down from 120KB.<br/>The legacy_file_format pragma is deactivated. It is now a no-op.<br/>In its place, the SQLITE_DBCONFIG_LEGACY_FILE_FORMAT option to<br/>sqlite3_db_config() is provided. The legacy_file_format pragma is<br/>deactivated because (1) it is rarely useful and (2) it is incompatible<br/>with VACUUM in schemas that have tables with both generated columns<br/>and descending indexes. Ticket 6484e6ce678fffab<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2020-01-22 18:38:59<br/>f6affdd41608946fcfcea914ece149038a8b25a62bbe719ed2561c649b86d824<br/>SHA3-256 for sqlite3.c:<br/>a5fca0b9f8cbf80ac89b97193378c719d4af4b7d647729d8df9c0c0fca7b1388<br/><br/>2019-10-10 (3.30.1)<br/>Fix a bug in the query flattener that might cause a segfault for<br/>nested queries that use the new FILTER clause on aggregate functions.<br/>Ticket 1079ad19993d13fa<br/>Cherrypick fixes for other obscure problems found since the 3.30.0<br/>release<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2019-10-10 20:19:45<br/>18db032d058f1436ce3dea84081f4ee5a0f2259ad97301d43c426bc7f3df1b0b<br/>SHA3-256 for sqlite3.c:<br/>f96fafe4c110ed7d77fc70a7d690e5edd1e64fefb84b3b5969a722d885de1f2d<br/><br/>2019-10-04 (3.30.0)<br/>Add support for the FILTER clause on aggregate functions.<br/>Add support for the NULLS FIRST and NULLS LAST syntax in ORDER BY<br/>clauses.<br/>The index_info and index_xinfo pragmas are enhanced to provide<br/>information about the on-disk representation of WITHOUT ROWID<br/>tables.<br/>Add the sqlite3_drop_modules() interface, allowing applications to<br/>disable automatically loaded virtual tables that they do not need.<br/>Improvements to the .recover dot-command in the CLI so that it<br/>recovers more content from corrupt database files.<br/>Enhance the RBU extension to support indexes on expressions.<br/>Change the schema parser so that it will error out if any of the<br/>type, name, and tbl_name columns of the sqlite_master table have<br/>been corrupted and the database connection is not in writable_schema<br/>mode.<br/>The PRAGMA function_list, PRAGMA module_list, and PRAGMA pragma_list<br/>commands are now enabled in all builds by default. Disable them<br/>using -DSQLITE_OMIT_INTROSPECTION_PRAGMAS.<br/>Add the SQLITE_DBCONFIG_ENABLE_VIEW option for sqlite3_db_config().<br/>Added the TCL Interface config method in order to be able to disable<br/>SQLITE_DBCONFIG_ENABLE_VIEW as well as control other sqlite3_db_config()<br/>options from TCL.<br/>Added the SQLITE_DIRECTONLY flag for application-defined SQL<br/>functions to prevent those functions from being used inside triggers<br/>and views.<br/>The legacy SQLITE_ENABLE_STAT3 compile-time option is now a no-op.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2019-10-04 15:03:17<br/>c20a35336432025445f9f7e289d0cc3e4003fb17f45a4ce74c6269c407c6e09f<br/>SHA3-256 for sqlite3.c:<br/>f04393dd47205a4ee2b98ff737dc51a3fdbcc14c055b88d58f5b27d0672158f5<br/><br/>2019-07-10 (3.29.0)<br/>Added the SQLITE_DBCONFIG_DQS_DML and SQLITE_DBCONFIG_DQS_DDL<br/>actions to sqlite3_db_config() for activating and deactivating the<br/>double-quoted string literal misfeature. Both default to "on" for<br/>legacy compatibility, but developers are encouraged to turn them<br/>"off", perhaps using the -DSQLITE_DQS=0 compile-time option.<br/>-DSQLITE_DQS=0 is now a recommended compile-time option.<br/>Improvements to the query planner:<br/>Improved optimization of AND and OR operators when one or the other<br/>operand is a constant.<br/>Enhancements to the LIKE optimization for cases when the left-hand<br/>side column has numeric affinity.<br/>Added the "sqlite_dbdata" virtual table for extracting raw low-level<br/>content from an SQLite database, even a database that is corrupt.<br/>Improvements to rounding behavior, so that the results of rounding<br/>binary numbers using the round() function are closer to what people<br/>who are used to thinking in decimal actually expect.<br/>Enhancements to the CLI:<br/>Add the ".recover" command which tries to recover as much content<br/>as possible from a corrupt database file.<br/>Add the ".filectrl" command useful for testing.<br/>Add the long-standing ".testctrl" command to the ".help" menu.<br/>Added the ".dbconfig" command<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2019-07-10 17:32:03<br/>fc82b73eaac8b36950e527f12c4b5dc1e147e6f4ad2217ae43ad82882a88bfa6<br/>SHA3-256 for sqlite3.c:<br/>d9a5daf7697a827f4b2638276ce639fa04e8e8bb5fd3a6b683cfad10f1c81b12<br/><br/>2019-04-16 (3.28.0)<br/>Enhanced window functions:<br/>Add support the EXCLUDE clause.<br/>Add support for window chaining.<br/>Add support for GROUPS frames.<br/>Add support for "&lt;expr&gt; PRECEDING" and "&lt;expr&gt; FOLLOWING" boundaries<br/>in RANGE frames.<br/>Added the new sqlite3_stmt_isexplain(S) interface for determining<br/>whether or not a prepared statement is an EXPLAIN.<br/>Enhanced VACUUM INTO so that it works for read-only databases.<br/>New query optimizations:<br/>Enable the LIKE optimization for cases when the ESCAPE keyword is<br/>present and PRAGMA case_sensitive_like is on.<br/>In queries that are driven by a partial index, avoid unnecessary<br/>tests of the constraint named in the WHERE clause of the partial<br/>index, since we know that constraint must always be true.<br/>Enhancements to the TCL Interface:<br/>Added the -returntype option to the function method.<br/>Added the new bind_fallback method.<br/>Enhancements to the CLI:<br/>Added support for bound parameters and the .parameter command.<br/>Fix the readfile() function so that it returns an empty BLOB rather<br/>than throwing an out-of-memory error when reading an empty file.<br/>Fix the writefile() function so that when it creates new directories<br/>along the path of a new file, it gives them umask permissions rather<br/>than the same permissions as the file.<br/>Change --update option in the .archive command so that it skips<br/>files that are already in the archive and are unchanged. Add the<br/>new --insert option that works like --update used to work.<br/>Added the fossildelta.c extension that can create, apply, and<br/>deconstruct the Fossil DVCS file delta format that is used by the<br/>RBU extension.<br/>Added the SQLITE_DBCONFIG_WRITABLE_SCHEMA verb for the sqlite3_db_config()<br/>interface, that does the same work as PRAGMA writable_schema without<br/>using the SQL parser.<br/>Added the sqlite3_value_frombind() API for determining if the<br/>argument to an SQL function is from a bound parameter.<br/>Security and compatibilities enhancements to fts3_tokenizer():<br/>The fts3_tokenizer() function always returns NULL unless either<br/>the legacy application-defined FTS3 tokenizers interface are enabled<br/>using the sqlite3_db_config(SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER)<br/>setting, or unless the first argument to fts3_tokenizer() is a<br/>bound parameter.<br/>The two-argument version of fts3_tokenizer() accepts a pointer to<br/>the tokenizer method object even without the<br/>sqlite3_db_config(SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER) setting<br/>if the second argument is a bound parameter<br/>Improved robustness against corrupt database files.<br/>Miscellaneous performance enhancements<br/>Established a Git mirror of the offical SQLite source tree. The<br/>canonical sources for SQLite are maintained using the Fossil DVCS<br/>at https://sqlite.org/src. The Git mirror can be seen at<br/>https://github.com/sqlite/sqlite.<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2019-04-16 19:49:53<br/>884b4b7e502b4e991677b53971277adfaf0a04a284f8e483e2553d0f83156b50<br/>SHA3-256 for sqlite3.c:<br/>411efca996b65448d9798eb203d6ebe9627b7161a646f5d00911e2902a57b2e9<br/><br/>2019-02-25 (3.27.2)<br/>Fix a bug in the IN operator that was introduced by an attempted<br/>optimization in version 3.27.0. Ticket df46dfb631f75694<br/>Fix a bug causing a crash when a window function is misused. Ticket<br/>4feb3159c6bc3f7e33959.<br/>Fix various documentation typos<br/>Hashes:<br/>SQLITE_SOURCE_ID:<br/>bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0f6d7<br/>SHA3-256 for sqlite3.c:<br/>1dbae33bff261f979d0042338f72c9e734b11a80720fb32498bae9150cc576e7<br/><br/>2019-02-08 (3.27.1)<br/>Fix a bug in the query optimizer: an adverse interaction between<br/>the OR optimization and the optimization that tries to use values<br/>read directly from an expression index instead of recomputing the<br/>expression. Ticket 4e8e4857d32d401f<br/>Hashes:<br/>SQLITE_SOURCE_ID: 2019-02-08 13:17:39<br/>0eca3dd3d38b31c92b49ca2d311128b74584714d9e7de895b1a6286ef959a1dd<br/>SHA3-256 for sqlite3.c:<br/>11c14992660d5ac713ea8bea48dc5e6123f26bc8d3075fe5585d1a217d090233<br/><br/>2019-02-07 (3.27.0)<br/>Added the VACUUM INTO command<br/>Issue an SQLITE_WARNING message on the error log if a double-quoted<br/>string literal is used.<br/>The sqlite3_normalized_sql() interface works on any prepared<br/>statement created using sqlite3_prepare_v2() or sqlite3_prepare_v3().<br/>It is no longer necessary to use sqlite3_prepare_v3() with<br/>SQLITE_PREPARE_NORMALIZE in order to use sqlite3_normalized_sql().<br/>Added the remove_diacritics=2 option to FTS3 and FTS5.<br/>Added the SQLITE_PREPARE_NO_VTAB option to sqlite3_prepare_v3().<br/>Use that option to prevent circular references to shadow tables<br/>from causing resource leaks.<br/>Enhancements to the sqlite3_deserialize() interface:<br/>Add the SQLITE_FCNTL_SIZE_LIMIT file-control for setting an upper<br/>bound on the size of the in-memory database created by sqlite3_deserialize.<br/>The default upper bound is 1GiB, or whatever alternative value is<br/>specified by sqlite3_config(SQLITE_CONFIG_MEMDB_MAXSIZE) and/or<br/>SQLITE_MEMDB_DEFAULT_MAXSIZE.<br/>Honor the SQLITE_DESERIALIZE_READONLY flag, which was previously<br/>described in the documentation, but was previously a no-op.<br/>Enhance the "deserialize" command of the TCL Interface to give it<br/>new "--maxsize N" and "--readonly BOOLEAN" options.<br/>Enhancements to the CLI, mostly to support testing and debugging<br/>of the SQLite library itself:<br/>Add support for ".open --hexdb". The "dbtotxt" utility program used<br/>to generate the text for the "hexdb" is added to the source tree.<br/>Add support for the "--maxsize N" option on ".open --deserialize".<br/>Add the "--memtrace" command-line option, to show all memory<br/>allocations and deallocations.<br/>Add the ".eqp trace" option on builds with SQLITE_DEBUG, to enable<br/>bytecode program listing with indentation and PRAGMA vdbe_trace<br/>all in one step.<br/>Add the ".progress" command for accessing the sqlite3_progress_handler()<br/>interface.<br/>Add the "--async" option to the ".backup" command.<br/>Add options "--expanded", "--normalized", "--plain", "--profile",<br/>"--row", "--stmt", and "--close" to the ".trace" command.<br/>Increased robustness against malicious SQL that is run against a<br/>maliciously corrupted database.<br/>Bug fixes:<br/>Do not use a partial index to do a table scan on an IN operator.<br/>Ticket 1d958d90596593a774.<br/>Fix the query flattener so that it works on queries that contain<br/>subqueries that use window functions. Ticket 709fcd17810f65f717<br/>Ensure that ALTER TABLE modifies table and column names embedded<br/>in WITH clauses that are part of views and triggers.<br/>Fix a parser bug that prevented the use of parentheses around<br/>table-valued functions.<br/>Fix a problem with the OR optimization on indexes on expressions.<br/>Ticket d96eba87698a428c1d.<br/>Fix a problem with the LEFT JOIN strength reduction optimization<br/>in which the optimization was being applied inappropriately due to<br/>an IS NOT NULL operator. Ticket 5948e09b8c415bc45d.<br/>Fix the REPLACE command so that it is no longer able to sneak a<br/>NULL value into a NOT NULL column even if the NOT NULL column has<br/>a default value of NULL. Ticket e6f1f2e34dceeb1ed6<br/>Fix a problem with the use of window functions used within correlated<br/>subqueries. Ticket d0866b26f83e9c55e3<br/>Fix the ALTER TABLE RENAME COLUMN command so that it works for<br/>tables that have redundant UNIQUE constraints. Ticket bc8d94f0fbd633fd9a<br/>Fix a bug that caused zeroblob values to be truncated when inserted<br/>into a table that uses an expression index. Ticket bb4bdb9f7f654b0bb9<br/>Hashes:<br/>SQLITE_SOURCE_ID: "2019-02-07 17:02:52<br/>97744701c3bd414e6c9d7182639d8c2ce7cf124c4fce625071ae65658ac61713<br/>"<br/>SHA3-256 for sqlite3.c:<br/>ca011a10ee8515b33e5643444b98ee3d74dc45d3ac766c3700320def52bc6aba</title>
    <description>/src/external/public-domain/sqlite/dist/INSTALL - 1.1.1.1</description>
    <pubDate>Mon Sep 04 16:46:20 UTC 2023</pubDate>
    <dc:creator>christos</dc:creator>
</item>
</channel></rss>

