Index: pages/about.in ================================================================== --- pages/about.in +++ pages/about.in @@ -79,12 +79,12 @@ the automated tests using special test harnesses which simulate system failures. Of course, even with all this testing, there are still bugs. But unlike some similar projects (especially commercial competitors) SQLite is open and honest about all bugs and provides -bugs lists and -minute-by-minute +bugs lists and +minute-by-minute chronologies of code changes.

The SQLite code base is supported by an international team of developers who work on SQLite full-time. Index: pages/affcase1.in ================================================================== --- pages/affcase1.in +++ pages/affcase1.in @@ -238,11 +238,11 @@ would be larger than a ZIP archive, but at least in the case of NeoOffice that is not so. The following is an actual screen-scrape showing the sizes of the same NeoOffice presentation, both in its original ZIP archive format as generated by NeoOffice (self2014.odp), and as repacked as an SQLite database using the -[http://www.sqlite.org/sqlar/doc/trunk/README.md|SQLAR] utility: +[https://www.sqlite.org/sqlar/doc/trunk/README.md|SQLAR] utility:

 -rw-r--r--  1 drh  staff  10514994 Jun  8 14:32 self2014.odp
 -rw-r--r--  1 drh  staff  10464256 Jun  8 14:37 self2014.sqlar
 -rw-r--r--  1 drh  staff  10416644 Jun  8 14:40 zip.odp

Index: pages/amalgamation.in
==================================================================
--- pages/amalgamation.in
+++ pages/amalgamation.in
@@ -151,13 +151,13 @@
 substituting "sqlite3-all.c" for "sqlite3.c" as the make target.
 
 

Dependencies

The build process makes extensive use of the -[http://www.tcl-lang.org/|Tcl] scripting language. You will need to have a +[http://www.tcl.tk/|Tcl] scripting language. You will need to have a copy of TCL installed in order for the make targets above to work. -Easy-to-use installers can be obtained from [http://www.tcl-lang.org/]. +Easy-to-use installers can be obtained from [http://www.tcl.tk/]. Many unix workstations have Tcl installed by default.

See Also

Additional notes on compiling SQLite can be found on the Index: pages/appfileformat.in ================================================================== --- pages/appfileformat.in +++ pages/appfileformat.in @@ -279,12 +279,12 @@ together such that either all or none of them occur, and so that the changes can be rolled back if a problem is found prior to commit. This allows an application to make a change incrementally, then run various sanity and consistency checks on the resulting data prior to committing the changes to disk. The -[http://www.fossil-scm.org/ | Fossil] DVCS -[http://www.fossil-scm.org/fossil/doc/tip/www/selfcheck.wiki|uses this technique] +[https://www.fossil-scm.org/ | Fossil] DVCS +[https://www.fossil-scm.org/fossil/doc/tip/www/selfcheck.wiki|uses this technique] to verify that no repository history has been lost prior to each change.

  • Incremental And Continuous Updates. When writing to an SQLite database file, only those parts of the file that actually change are written out to disk. This makes the writing happen faster Index: pages/asyncvfs.in ================================================================== --- pages/asyncvfs.in +++ pages/asyncvfs.in @@ -120,11 +120,11 @@

    2.0 COMPILATION AND USAGE

    The asynchronous IO extension consists of a single file of C code (sqlite3async.c), and a header file (sqlite3async.h), located in the - + ext/async/ subfolder of the SQLite source tree, that defines the C API used by applications to activate and control the modules functionality.

    @@ -146,11 +146,11 @@

  • Use the normal SQLite API to read and write to databases via the asynchronous IO VFS.

    Refer to comments in the - + sqlite3async.h header file for details.

    3.0 PORTING

    Index: pages/books.in ================================================================== --- pages/books.in +++ pages/books.in @@ -288,11 +288,11 @@ relational database management system. There is no separate install or setup procedure to initialize SQLite before using it. There is no configuration file. SQLite is open source, and is available in the public domain (for more information on open source, visit http://opensource.org). -You can download SQLite source code from its homepage http://www.sqlite.org, +You can download SQLite source code from its homepage https://www.sqlite.org, compile it using your favorite C compiler, and start using the compiled library. SQLite runs on Linux, Windows, Mac OS X, and a few other operating systems. It has been widely used in low-to-medium tier database applications. This Short Cut discusses design principles, engineering trade-offs, implementation issues, and operations of SQLite. It presents a comprehensive description of all important components of the SQLite engine.

    Index: pages/changes.in ================================================================== --- pages/changes.in +++ pages/changes.in @@ -3,14 +3,14 @@

    Release History

    This page provides a high-level summary of changes to SQLite. For more detail, see the Fossil checkin logs at - -http://www.sqlite.org/src/timeline and - -http://www.sqlite.org/src/timeline?t=release. + +https://www.sqlite.org/src/timeline and + +https://www.sqlite.org/src/timeline?t=release. See the [chronology] a succinct listing of releases.

    set nChng 0 @@ -1330,11 +1330,11 @@ number of CPU cycles relative to the previous release. SQLite now runs twice as fast as [version 3.8.0] and three times as fast as [version 3.3.9]. (Measured using [http://valgrind.org/docs/manual/cg-manual.html|cachegrind] on the - [http://www.sqlite.org/src/artifact/83f6b3318f7ee|speedtest1.c] workload on + [https://www.sqlite.org/src/artifact/83f6b3318f7ee|speedtest1.c] workload on Ubuntu 14.04 x64 with gcc 4.8.2 and -Os. Your performance may vary.)
  • Added the [sqlite3_result_zeroblob64()] and [sqlite3_bind_zeroblob64()] interfaces.

    Important bug fixes:

  • Fix [CREATE TABLE AS] so that columns of type TEXT never end up @@ -1539,16 +1539,16 @@ as the schema is unchanged. Formerly, a ROLLBACK would cause all pending queries to fail with an [SQLITE_ABORT] or [SQLITE_ABORT_ROLLBACK] error. That error is still returned if the ROLLBACK modifies the schema.
  • Bug fix: Make sure that NULL results from OP_Column are fully and completely NULL and do not have the MEM_Ephem bit set. - Ticket [http://www.sqlite.org/src/info/094d39a4c95ee4|094d39a4c95ee4]. + Ticket [https://www.sqlite.org/src/info/094d39a4c95ee4|094d39a4c95ee4].
  • Bug fix: The %c format in sqlite3_mprintf() is able to handle precisions greater than 70.
  • Bug fix: Do not automatically remove the DISTINCT keyword from a SELECT that forms the right-hand side of an IN operator since it is necessary if the SELECT also contains a LIMIT. - Ticket [http://www.sqlite.org/src/info/db87229497|db87229497]. + Ticket [https://www.sqlite.org/src/info/db87229497|db87229497].
  • SQLITE_SOURCE_ID: "2014-11-18 20:57:56 2ab564bf9655b7c7b97ab85cafc8a48329b27f93"
  • SHA1 for sqlite3.c: b2a68d5783f48dba6a8cb50d8bf69b238c5ec53a } @@ -1571,11 +1571,11 @@
  • Many micro-optimizations result in 20.3% more work for the same number of CPU cycles relative to the previous release. The cumulative performance increase since [version 3.8.0] is 61%. (Measured using [http://valgrind.org/docs/manual/cg-manual.html|cachegrind] on the - [http://www.sqlite.org/src/artifact/83f6b3318f7ee|speedtest1.c] workload on + [https://www.sqlite.org/src/artifact/83f6b3318f7ee|speedtest1.c] workload on Ubuntu 13.10 x64 with gcc 4.8.1 and -Os. Your performance may vary.)
  • The sorter can use auxiliary helper threads to increase real-time response. This feature is off by default and may be enabled using the [PRAGMA threads] command or the [SQLITE_DEFAULT_WORKER_THREADS] compile-time option. @@ -1596,25 +1596,25 @@ obtained from [sqlite3_malloc64()] and its variants.
  • Added the [SQLITE_LIMIT_WORKER_THREADS] option to [sqlite3_limit()] and [PRAGMA threads] command for configuring the number of available worker threads.
  • The [spellfix1] extension allows the application to optionally specify the rowid for each INSERT. -
  • Added the [http://www.sqlite.org/src/doc/trunk/ext/userauth/user-auth.txt|User Authentication] +
  • Added the [https://www.sqlite.org/src/doc/trunk/ext/userauth/user-auth.txt|User Authentication] extension.

    Bug Fixes:

  • Fix a bug in the [partial index] implementation that might result in an incorrect answer if a partial index is used in a subquery or in a [view]. - Ticket [http://www.sqlite.org/src/info/98d973b8f5|98d973b8f5]. + Ticket [https://www.sqlite.org/src/info/98d973b8f5|98d973b8f5].
  • Fix a query planner bug that might cause a table to be scanned in the wrong direction (thus reversing the order of output) when a DESC index is used to implement the ORDER BY clause on a query that has an identical GROUP BY clause. - Ticket [http://www.sqlite.org/src/info/ba7cbfaedc7e6|ba7cbfaedc7e6]. + Ticket [https://www.sqlite.org/src/info/ba7cbfaedc7e6|ba7cbfaedc7e6].
  • Fix a bug in [sqlite3_trace()] that was causing it to sometimes fail to print an SQL statement if that statement needed to be re-prepared. - Ticket [http://www.sqlite.org/src/info/11d5aa455e0d98f3c1e6a08|11d5aa455e0d98f3c1e6a08] + Ticket [https://www.sqlite.org/src/info/11d5aa455e0d98f3c1e6a08|11d5aa455e0d98f3c1e6a08]
  • Fix a faulty assert() statement. - Ticket [http://www.sqlite.org/src/info/369d57fb8e5ccdff06f1|369d57fb8e5ccdff06f1] + Ticket [https://www.sqlite.org/src/info/369d57fb8e5ccdff06f1|369d57fb8e5ccdff06f1]

    Test, Debug, and Analysis Changes:

  • Show ASCII-art abstract syntax tree diagrams using the ".selecttrace" and ".wheretrace" commands in the [command-line shell] when compiled with [SQLITE_DEBUG], SQLITE_ENABLE_SELECTTRACE, and SQLITE_ENABLE_WHERETRACE. Also provide the sqlite3TreeViewExpr() and @@ -1641,11 +1641,11 @@
  • The [unicode61] tokenizer is now included in [FTS4] by default.
  • Trigger automatic reprepares on all prepared statements when [ANALYZE] is run.
  • Added a new [loadable extension] source code file to the source tree: - [http://www.sqlite.org/src/finfo?name=ext/misc/fileio.c|fileio.c] + [https://www.sqlite.org/src/finfo?name=ext/misc/fileio.c|fileio.c]
  • Add extension functions [file I/O functions|readfile(X) and writefile(X,Y)] (using code copy/pasted from fileio.c in the previous bullet) to the [command-line shell].
  • Added the [.fullschema] dot-command to the [command-line shell].

    Performance Enhancements: @@ -1663,30 +1663,30 @@

  • Other minor tweaks to improve the quality of [VDBE] code.

    Bug Fixes:

  • Fix a bug in [CREATE INDEX|CREATE UNIQUE INDEX], introduced when [WITHOUT ROWID] support added in version 3.8.2, that allows a non-unique NOT NULL column to be given a UNIQUE index. - Ticket [http://www.sqlite.org/src/info/9a6daf340df99ba93c|9a6daf340df99ba93c] + Ticket [https://www.sqlite.org/src/info/9a6daf340df99ba93c|9a6daf340df99ba93c]
  • Fix a bug in [R-Tree extension], introduced in the previous release, that can cause an incorrect results for queries that use the rowid of the R-Tree on the left-hand side of an [IN operator]. - Ticket [http://www.sqlite.org/src/info/d2889096e7bdeac6|d2889096e7bdeac6]. + Ticket [https://www.sqlite.org/src/info/d2889096e7bdeac6|d2889096e7bdeac6].
  • Fix the [sqlite3_stmt_busy()] interface so that it gives the correct answer for [ROLLBACK] statements that have been stepped but never reset.
  • Fix a bug in that would cause a null pointer to be dereferenced if a column with a DEFAULT that is an aggregate function tried to usee its DEFAULT. - Ticket [http://www.sqlite.org/src/info/3a88d85f36704eebe1|3a88d85f36704eebe1] + Ticket [https://www.sqlite.org/src/info/3a88d85f36704eebe1|3a88d85f36704eebe1]
  • CSV output from the [command-line shell] now always uses CRNL for the row separator and avoids inserting CR in front of NLs contained in data.
  • Fix a [column affinity] problem with the [IN operator]. - Ticket [http://www.sqlite.org/src/info/9a8b09f8e6|9a8b09f8e6]. + Ticket [https://www.sqlite.org/src/info/9a8b09f8e6|9a8b09f8e6].
  • Fix the [ANALYZE] command so that it adds correct samples for [WITHOUT ROWID] tables in the [sqlite_stat4] table. - Ticket [http://www.sqlite.org/src/info/b2fa5424e6fcb15|b2fa5424e6fcb15]. + Ticket [https://www.sqlite.org/src/info/b2fa5424e6fcb15|b2fa5424e6fcb15].
  • SQLITE_SOURCE_ID: "2014-08-15 11:46:33 9491ba7d738528f168657adb43a198238abde19e"
  • SHA1 for sqlite3.c: 72c64f05cd9babb9c0f9b3c82536d83be7804b1c } @@ -1708,33 +1708,33 @@
  • Added the [SQLITE_IOCAP_IMMUTABLE] bit to the set of bits that can be returned by the xDeviceCharacteristics method of a [VFS].
  • Added the [SQLITE_TESTCTRL_BYTEORDER] test control.

    Bug Fixes:

  • OFFSET clause ignored on queries without a FROM clause. - Ticket [http://www.sqlite.org/src/info/07d6a0453d | 07d6a0453d] + Ticket [https://www.sqlite.org/src/info/07d6a0453d | 07d6a0453d]
  • Assertion fault on queries involving expressions of the form - "x IN (?)". Ticket [http://www.sqlite.org/src/info/e39d032577|e39d032577]. + "x IN (?)". Ticket [https://www.sqlite.org/src/info/e39d032577|e39d032577].
  • Incorrect column datatype reported. - Ticket [http://www.sqlite.org/src/info/a8a0d2996a | a8a0d2996a] + Ticket [https://www.sqlite.org/src/info/a8a0d2996a | a8a0d2996a]
  • Duplicate row returned on a query against a table with more than 16 indices, each on a separate column, and all used via OR-connected constraints. - Ticket [http://www.sqlite.org/src/info/10fb063b11 | 10fb063b11] + Ticket [https://www.sqlite.org/src/info/10fb063b11 | 10fb063b11]
  • Partial index causes assertion fault on UPDATE OR REPLACE. - Ticket [http://www.sqlite.org/src/info/2ea3e9fe63 | 2ea3e9fe63] + Ticket [https://www.sqlite.org/src/info/2ea3e9fe63 | 2ea3e9fe63]
  • Crash when calling undocumented SQL function sqlite_rename_parent() with NULL parameters. - Ticket [http://www.sqlite.org/src/info/264b970c4379fd | 264b970c43] + Ticket [https://www.sqlite.org/src/info/264b970c4379fd | 264b970c43]
  • ORDER BY ignored if the query has an identical GROUP BY. - Ticket [http://www.sqlite.org/src/info/b75a9ca6b0499 | b75a9ca6b0] + Ticket [https://www.sqlite.org/src/info/b75a9ca6b0499 | b75a9ca6b0]
  • The group_concat(x,'') SQL function returns NULL instead of an empty string when all inputs are empty strings. - Ticket [http://www.sqlite.org/src/info/55746f9e65f85 | 55746f9e65] + Ticket [https://www.sqlite.org/src/info/55746f9e65f85 | 55746f9e65]
  • Fix a bug in the VDBE code generator that caused crashes when doing an INSERT INTO ... SELECT statement where the number of columns being inserted is larger than the number of columns in the destination table. - Ticket [http://www.sqlite.org/src/info/e9654505cfda9 | e9654505cfd] + Ticket [https://www.sqlite.org/src/info/e9654505cfda9 | e9654505cfd]
  • Fix a problem in CSV import in the [command-line shell] where if the leftmost field of the first row in the CSV file was both zero bytes in size and unquoted no data would be imported.
  • Fix a problem in FTS4 where the left-most column that contained @@ -1748,14 +1748,14 @@
  • SHA1 for sqlite3.c: 7bc194957238c61b1a47f301270286be5bc5208c } chng {2014-04-03 (3.8.4.3)} {
  • Add a - [http://www.sqlite.org/src/fdiff?sbs=1&v1=7d539cedb1c&v2=ebad891b7494d&smhdr|one-character fix] + [https://www.sqlite.org/src/fdiff?sbs=1&v1=7d539cedb1c&v2=ebad891b7494d&smhdr|one-character fix] for a problem that might cause incorrect query results on a query that mixes DISTINCT, GROUP BY in a subquery, and ORDER BY. - [http://www.sqlite.org/src/info/98825a79ce1456863|Ticket 98825a79ce14]. + [https://www.sqlite.org/src/info/98825a79ce1456863|Ticket 98825a79ce14].
  • SQLITE_SOURCE_ID: "2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3"
  • SHA1 for sqlite3.c: 310a1faeb9332a3cd8d1f53b4a2e055abf537bdc } chng {2014-03-26 (3.8.4.2)} { @@ -1788,37 +1788,37 @@
  • Get extension loading working on Cygwin.
  • Bug fix: Fix the [char()] SQL function so that it returns an empty string rather than an "out of memory" error when called with zero arguments.
  • Bug fix: DISTINCT now recognizes that a [zeroblob] and a blob of all 0x00 bytes are the same thing. - [http://www.sqlite.org/src/info/fccbde530a | Ticket [fccbde530a]] + [https://www.sqlite.org/src/info/fccbde530a | Ticket [fccbde530a]]
  • Bug fix: Compute the correct answer for queries that contain an IS NOT NULL term in the WHERE clause and also contain an OR term in the WHERE clause and are compiled with [SQLITE_ENABLE_STAT4]. - [http://www.sqlite.org/src/info/4c86b126f2 | Ticket [4c86b126f2]] + [https://www.sqlite.org/src/info/4c86b126f2 | Ticket [4c86b126f2]]
  • Bug fix: Make sure "rowid" columns are correctly resolved in joins between normal tables and WITHOUT ROWID tables. - [http://www.sqlite.org/src/info/c34d0557f7 | Ticket [c34d0557f7]] + [https://www.sqlite.org/src/info/c34d0557f7 | Ticket [c34d0557f7]]
  • Bug fix: Make sure the same temporary registers are not used in concurrent co-routines used to implement compound SELECT statements containing ORDER BY clauses, as such use can lead to incorrect answers. - [http://www.sqlite.org/src/info/8c63ff0eca | Ticket [8c63ff0eca]] + [https://www.sqlite.org/src/info/8c63ff0eca | Ticket [8c63ff0eca]]
  • Bug fix: Ensure that "ORDER BY random()" clauses do not get optimized out. - [http://www.sqlite.org/src/info/65bdeb9739 | Ticket [65bdeb9739]] + [https://www.sqlite.org/src/info/65bdeb9739 | Ticket [65bdeb9739]]
  • Bug fix: Repair a name-resolution error that can occur in sub-select statements contained within a TRIGGER. - [http://www.sqlite.org/src/info/4ef7e3cfca | Ticket [4ef7e3cfca]] + [https://www.sqlite.org/src/info/4ef7e3cfca | Ticket [4ef7e3cfca]]
  • Bug fix: Fix column default values expressions of the form "DEFAULT(-(-9223372036854775808))" so that they work correctly, initializing the column to a floating point value approximately equal to +9223372036854775808.0.
  • SQLITE_SOURCE_ID: "2014-03-10 12:20:37 530a1ee7dc2435f80960ce4710a3c2d2bfaaccc5"
  • SHA1 for sqlite3.c: b0c22e5f15f5ba2afd017ecd990ea507918afe1c } chng {2014-02-11 (3.8.3.1)} { -
  • Fix a bug (ticket [http://www.sqlite.org/src/info/4c86b126f2|4c86b126f2]) +
  • Fix a bug (ticket [https://www.sqlite.org/src/info/4c86b126f2|4c86b126f2]) that causes rows to go missing on some queries with OR clauses and IS NOT NULL operators in the WHERE clause, when the [SQLITE_ENABLE_STAT3] or [SQLITE_ENABLE_STAT4] compile-time options are used.
  • Fix a harmless compiler warning that was causing problems for VS2013.
  • SQLITE_SOURCE_ID: "2014-02-11 14:52:19 ea3317a4803d71d88183b29f1d3086f46d68a00e" @@ -1922,11 +1922,11 @@ TMPDIR environment variable. The [sqlite3_temp_directory] global variable still has higher precedence than both environment variables, however.
  • Added the [PRAGMA stats] statement.
  • Bug fix: Return the correct answer for "SELECT count(*) FROM table" even if there is a [partial index] on the table. Ticket - [http://www.sqlite.org/src/info/a5c8ed66ca|a5c8ed66ca]. + [https://www.sqlite.org/src/info/a5c8ed66ca|a5c8ed66ca].
  • SQLITE_SOURCE_ID: "2013-10-17 12:57:35 c78be6d786c19073b3a6730dfe3fb1be54f5657a"
  • SHA1 for sqlite3.c: 0a54d76566728c2ba96292a49b138e4f69a7c391 } @@ -2051,40 +2051,40 @@
  • Improved tracing and debugging facilities in the Windows [VFS].
  • Bug fix: Fix a potential database corruption bug in [shared cache mode] when one [database connection] is closed while another is in the middle of a write transaction. - Ticket [http://www.sqlite.org/src/info/e636a050b7 | e636a050b7] + Ticket [https://www.sqlite.org/src/info/e636a050b7 | e636a050b7]
  • Bug fix: Only consider AS names from the result set as candidates for resolving identifiers in the WHERE clause if there are no other matches. In the ORDER BY clause, AS names take priority over any column names. - Ticket [http://www.sqlite.org/src/info/2500cdb9be05 | 2500cdb9be05] + Ticket [https://www.sqlite.org/src/info/2500cdb9be05 | 2500cdb9be05]
  • Bug fix: Do not allow a virtual table to cancel the ORDER BY clause unless all outer loops are guaranteed to return no more than one row result. - Ticket [http://www.sqlite.org/src/info/ba82a4a41eac1 | ba82a4a41eac1]. + Ticket [https://www.sqlite.org/src/info/ba82a4a41eac1 | ba82a4a41eac1].
  • Bug fix: Do not suppress the ORDER BY clause on a virtual table query if an IN constraint is used. - Ticket [http://www.sqlite.org/src/info/f69b96e3076e | f69b96e3076e]. + Ticket [https://www.sqlite.org/src/info/f69b96e3076e | f69b96e3076e].
  • Bug fix: The [command-line shell] gives an exit code of 0 when terminated using the ".quit" command.
  • Bug fix: Make sure [PRAGMA] statements appear in [sqlite3_trace()] output.
  • Bug fix: When a [compound query] that uses an ORDER BY clause with a [COLLATE operator], make sure that the sorting occurs according to the specified collation and that the comparisons associate with the compound query use the native collation. Ticket - [http://www.sqlite.org/src/info/6709574d2a8d8 | 6709574d2a8d8]. + [https://www.sqlite.org/src/info/6709574d2a8d8 | 6709574d2a8d8].
  • Bug fix: Makes sure the [sqlite3_set_authorizer | authorizer] callback gets a valid pointer to the string "ROWID" for the column-name parameter when doing an [UPDATE] that changes the rowid. Ticket - [http://www.sqlite.org/src/info/0eb70d77cb05bb2272 | 0eb70d77cb05bb2272] + [https://www.sqlite.org/src/info/0eb70d77cb05bb2272 | 0eb70d77cb05bb2272]
  • Bug fix: Do not move WHERE clause terms inside OR expressions that are contained within an ON clause of a LEFT JOIN. Ticket - [http://www.sqlite.org/src/info/f2369304e4 | f2369304e4] + [https://www.sqlite.org/src/info/f2369304e4 | f2369304e4]
  • Bug fix: Make sure an error is always reported when attempting to preform an operation that requires a [collating sequence] that is missing. - Ticket [http://www.sqlite.org/src/info/0fc59f908b | 0fc59f908b] + Ticket [https://www.sqlite.org/src/info/0fc59f908b | 0fc59f908b]
  • SQLITE_SOURCE_ID: "2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668"
  • SHA1 for sqlite3.c: 246987605d0503c700a08b9ee99a6b5d67454aab } @@ -2092,11 +2092,11 @@ chng {2013-04-12 (3.7.16.2)} {
  • Fix a bug (present since version 3.7.13) that could result in database corruption on windows if two or more processes try to access the same database file at the same time and immediately after third process crashed in the middle of committing to that same file. See ticket - [http://www.sqlite.org/src/info/7ff3120e4f | 7ff3120e4f] for further + [https://www.sqlite.org/src/info/7ff3120e4f | 7ff3120e4f] for further information.
  • SQLITE_SOURCE_ID: "2013-04-12 11:52:43 cbea02d93865ce0e06789db95fd9168ebac970c7"
  • SHA1 for sqlite3.c: d466b54789dff4fb0238b9232e74896deaefab94 @@ -2104,20 +2104,20 @@ chng {2013-03-29 (3.7.16.1)} {
  • Fix for a bug in the ORDER BY optimizer that was introduced in [version 3.7.15] which would sometimes optimize out the sorting step when in fact the sort was required. - Ticket [http://www.sqlite.org/src/info/a179fe7465 | a179fe7465] + Ticket [https://www.sqlite.org/src/info/a179fe7465 | a179fe7465]
  • Fix a long-standing bug in the [CAST expression] that would recognize UTF16 characters as digits even if their most-significant-byte was not zero. - Ticket [http://www.sqlite.org/src/info/689137afb6da41 | 689137afb6da41]. + Ticket [https://www.sqlite.org/src/info/689137afb6da41 | 689137afb6da41].
  • Fix a bug in the NEAR operator of [FTS3] when applied to subfields. - Ticket [http://www.sqlite.org/src/info/38b1ae018f | 38b1ae018f]. + Ticket [https://www.sqlite.org/src/info/38b1ae018f | 38b1ae018f].
  • Fix a long-standing bug in the storage engine that would (very rarely) cause a spurious report of an SQLITE_CORRUPT error but which was otherwise harmless. - Ticket [http://www.sqlite.org/src/info/6bfb98dfc0c | 6bfb98dfc0c]. + Ticket [https://www.sqlite.org/src/info/6bfb98dfc0c | 6bfb98dfc0c].
  • The SQLITE_OMIT_MERGE_SORT option has been removed. The merge sorter is now a required component of SQLite.
  • Fixed lots of spelling errors in the source-code comments
  • SQLITE_SOURCE_ID: "2013-03-29 13:44:34 527231bc67285f01fb18d4451b28f61da3c4e39d" @@ -2165,11 +2165,11 @@ into the "command" field.
  • Bug fix: repair a long-standing problem that could cause incorrect query results in a 3-way or larger join that compared INTEGER fields against TEXT fields in two or more places. - Ticket [http://www.sqlite.org/src/info/fc7bd6358f | fc7bd6358f] + Ticket [https://www.sqlite.org/src/info/fc7bd6358f | fc7bd6358f]
  • Bug fix: Issue an error message if the 16-bit reference counter on a view overflows due to an overly complex query.
  • Bug fix: Avoid leaking memory on LIMIT and OFFSET clauses in deeply nested UNION ALL queries.
  • Bug fix: Make sure the schema is up-to-date prior to running pragmas @@ -2182,11 +2182,11 @@ chng {2013-01-09 (3.7.15.2)} {
  • Fix a bug, introduced in [version 3.7.15], that causes an ORDER BY clause to be optimized out of a three-way join when the ORDER BY is actually required. - Ticket [http://www.sqlite.org/src/info/598f5f7596b055 | 598f5f7596b055] + Ticket [https://www.sqlite.org/src/info/598f5f7596b055 | 598f5f7596b055]
  • SQLITE_SOURCE_ID: "2013-01-09 11:53:05 c0e09560d26f0a6456be9dd3447f5311eb4f238f"
  • SHA1 for sqlite3.c: 5741f47d1bc38aa0a8c38f09e60a5fe0031f272d } @@ -2193,11 +2193,11 @@ chng {2012-12-19 (3.7.15.1)} {
  • Fix a bug, introduced in [version 3.7.15], that causes a segfault if the AS name of a result column of a SELECT statement is used as a logical term in the WHERE clause. Ticket - [http://www.sqlite.org/src/info/a7b7803e8d1e869 | a7b7803e8d1e869]. + [https://www.sqlite.org/src/info/a7b7803e8d1e869 | a7b7803e8d1e869].
  • SQLITE_SOURCE_ID: "2012-12-19 20:39:10 6b85b767d0ff7975146156a99ad673f2c1a23318"
  • SHA1 for sqlite3.c: bbbaa68061e925bd4d7d18d7e1270935c5f7e39a } @@ -2314,11 +2314,11 @@
  • SHA1 for sqlite3.c: ff0a771d6252545740ba9685e312b0e3bb6a641b } chng {2012-05-22 (3.7.12.1)} {
  • Fix a bug - [http://www.sqlite.org/src/info/c2ad16f997ee9c | (ticket c2ad16f997)] + [https://www.sqlite.org/src/info/c2ad16f997ee9c | (ticket c2ad16f997)] in the 3.7.12 release that can cause a segfault for certain obscure nested aggregate queries.
  • Fix various other minor test script problems.
  • SQLITE_SOURCE_ID: "2012-05-22 02:45:53 6d326d44fd1d626aae0e8456e5fa2049f1ce0789" @@ -2354,14 +2354,14 @@
  • Bug fix: Fix the [RELEASE] command so that it does not cancel pending queries. This repairs a problem introduced in 3.7.11.
  • Bug fix: Do not discard the DISTINCT as superfluous unless a subset of the result set is subject to a UNIQUE constraint and it none of the columns in that subset can be NULL. - Ticket [http://www.sqlite.org/src/info/385a5b56b9 | 385a5b56b9]. + Ticket [https://www.sqlite.org/src/info/385a5b56b9 | 385a5b56b9].
  • Bug fix: Do not optimize away an ORDER BY clause that has the same terms as a UNIQUE index unless those terms are also NOT NULL. - Ticket [http://www.sqlite.org/src/info/2a5629202f | 2a5629202f]. + Ticket [https://www.sqlite.org/src/info/2a5629202f | 2a5629202f].
  • SQLITE_SOURCE_ID: "2012-05-14 01:41:23 8654aa9540fe9fd210899d83d17f3f407096c004"
  • SHA1 for sqlite3.c: 57e2104a0f7b3f528e7f6b7a8e553e2357ccd2e1 } @@ -2384,11 +2384,11 @@ actually been in the code since [version 3.7.9] but is only now considered to be officially supported.
  • Pending statements no longer block [ROLLBACK]. Instead, the pending statement will return SQLITE_ABORT upon next access after the ROLLBACK.
  • Improvements to the handling of CSV inputs in the [command-line shell] -
  • Fix a [http://www.sqlite.org/src/info/b7c8682cc1|bug] introduced +
  • Fix a [https://www.sqlite.org/src/info/b7c8682cc1|bug] introduced in [version 3.7.10] that might cause a LEFT JOIN to be incorrectly converted into an INNER JOIN if the WHERE clause indexable terms connected by OR.
  • SQLITE_SOURCE_ID: @@ -2448,18 +2448,18 @@ that it processes, for debugging and analysis.
  • Bug fix: Add an additional xSync when restarting a WAL in order to prevent an exceedingly unlikely but theoretically possible database corruption following power-loss. - Ticket [http://www.sqlite.org/src/info/ff5be73dee | ff5be73dee]. + Ticket [https://www.sqlite.org/src/info/ff5be73dee | ff5be73dee].
  • Bug fix: Change the VDBE so that all registers are initialized to Invalid instead of NULL. - Ticket [http://www.sqlite.org/src/info/7bbfb7d442 | 7bbfb7d442] + Ticket [https://www.sqlite.org/src/info/7bbfb7d442 | 7bbfb7d442]
  • Bug fix: Fix problems that can result from 32-bit integer overflow. - Ticket [http://www.sqlite.org/src/info/ac0ff496b7e2 | ac00f496b7e2] + Ticket [https://www.sqlite.org/src/info/ac0ff496b7e2 | ac00f496b7e2]
  • SQLITE_SOURCE_ID: "2012-01-16 13:28:40 ebd01a8deffb5024a5d7494eef800d2366d97204"
  • SHA1 for sqlite3.c: 6497cbbaad47220bd41e2e4216c54706e7ae95d4 } @@ -2526,11 +2526,11 @@ "2011-09-19 14:49:19 3e0da808d2f5b4d12046e05980ca04578f581177"
  • SHA1 for sqlite3.c: bfcd74a655636b592c5dba6d0d5729c0f8e3b4de } chng {2011-06-28 (3.7.7.1)} { -
  • Fix [http://www.sqlite.org/src/info/25ee812710 | a bug] causing +
  • Fix [https://www.sqlite.org/src/info/25ee812710 | a bug] causing [PRAGMA case_sensitive_like] statements compiled using sqlite3_prepare() to fail with an [SQLITE_SCHEMA] error.
  • SQLITE_SOURCE_ID: "2011-06-28 17:39:05 af0d91adf497f5f36ec3813f04235a6e195a605f"
  • SHA1 for sqlite3.c: d47594b8a02f6cf58e91fb673e96cb1b397aace0 @@ -2618,11 +2618,11 @@
  • Added the [SQLITE_OMIT_AUTORESET] compile-time option.
  • Added the [SQLITE_DEFAULT_FOREIGN_KEYS] compile-time option.
  • Updates to [sqlite3_stmt_readonly()] so that its result is well-defined for all prepared statements and so that it works with [VACUUM].
  • Added the "-heap" option to the [command-line shell] -
  • Fix [http://www.sqlite.org/src/info/5d863f876e | a bug] involving +
  • Fix [https://www.sqlite.org/src/info/5d863f876e | a bug] involving frequent changes in and out of WAL mode and VACUUM that could (in theory) cause database corruption.
  • Enhance the [sqlite3_trace()] mechanism so that nested SQL statements such as might be generated by virtual tables are shown but are shown in comments and without parameter expansion. This @@ -2655,11 +2655,11 @@ code for obtaining an exclusive lock to a rollback or WAL database.
  • Added the test_multiplex.c module which provides an example VFS that provides multiplexing (sharding) of a DB, splitting it over multiple files of fixed size. -
  • A [http://www.sqlite.org/src/info/80ba201079 | very obscure bug] +
  • A [https://www.sqlite.org/src/info/80ba201079 | very obscure bug] associated with the [or optimization] was fixed. } chng {2010-10-08 (3.7.3)} {
  • Added the [sqlite3_create_function_v2()] interface that includes a @@ -2688,11 +2688,11 @@ tables.
  • Miscellaneous documentation enhancements. } chng {2010-08-24 (3.7.2)} { -
  • Fix an +
  • Fix an old and very obscure bug that can lead to corruption of the database [free-page list] when [incremental_vacuum] is used. } chng {2010-08-23 (3.7.1)} { @@ -2715,11 +2715,11 @@ } chng {2010-08-04 (3.7.0.1)} {
  • Fix a potential database corruption bug that can occur if version 3.7.0 and version 3.6.23.1 alternately write to the same database file. - + Ticket [51ae9cad317a1]
  • Fix a performance regression related to the query planner enhancements of version 3.7.0. } @@ -2803,28 +2803,28 @@
  • Various minor bug fixes and documentation enhancements. } chng {2009-10-30 (3.6.16.1)} {
  • A small patch to version 3.6.16 to fix -the OP_If bug. +the OP_If bug. } chng {2009-10-14 (3.6.19)} {
  • Added support for [foreign key constraints]. Foreign key constraints are disabled by default. Use the [foreign_keys pragma] to turn them on.
  • Generalized the IS and IS NOT operators to take arbitrary expressions on their right-hand side.
  • The [TCL Interface] has been enhanced to use the - [http://www.tcl-lang.org/cgi-bin/tct/tip/322.html | Non-Recursive Engine (NRE)] + [https://www.tcl.tk/cgi-bin/tct/tip/322.html | Non-Recursive Engine (NRE)] interface to the TCL interpreter when linked against TCL 8.6 or later.
  • Fix a bug introduced in 3.6.18 that can lead to a segfault when an attempt is made to write on a read-only database. } chng {2009-09-11 (3.6.18)} {
  • Versioning of the SQLite source code has transitioned from CVS to - [http://www.fossil-scm.org/ | Fossil]. + [https://www.fossil-scm.org/ | Fossil].
  • Query planner enhancements.
  • The [SQLITE_ENABLE_STAT2] compile-time option causes the [ANALYZE] command to collect a small histogram of each index, to help SQLite better select among competing range query indices.
  • Recursive triggers can be enabled using the [PRAGMA recursive_triggers] @@ -2837,11 +2837,11 @@ [shared cache mode] settings for individual database connections.
  • Added improved version identification features: C-Preprocessor macro [SQLITE_SOURCE_ID], C/C++ interface [sqlite3_sourceid()], and SQL function [sqlite_source_id()].
  • Obscure bug fix on triggers -([efc02f9779]). +([efc02f9779]). } chng {2009-08-10 (3.6.17)} {
  • Expose the [sqlite3_strnicmp()] interface for use by extensions and applications. @@ -3019,13 +3019,13 @@
  • Add the [INDEXED BY] clause.
  • The LOCKING_STYLE extension is now enabled by default on Mac OS X
  • Added the TRUNCATE option to [PRAGMA journal_mode]
  • Performance enhancements to tree balancing logic in the B-Tree layer.
  • Added the - + source code and - + documentation for the genfkey program for automatically generating triggers to enforce foreign key constraints.
  • Added the [SQLITE_OMIT_TRUNCATE_OPTIMIZATION] compile-time option.
  • The SQL language documentation is converted to use syntax diagrams instead of BNF.
  • @@ -3213,11 +3213,11 @@
  • Other small bug fixes and optimizations.
  • } chng {2007-11-27 (3.5.3)} {
  • Move website and documentation files out of the source tree into -a separate CM system. +a separate CM system.
  • Fix a long-standing bug in INSERT INTO ... SELECT ... statements where the SELECT is compound.
  • Fix a long-standing bug in RAISE(IGNORE) as used in BEFORE triggers.
  • Fixed the operator precedence for the ~ operator.
  • On Win32, do not return an error when attempting to delete a file @@ -3310,11 +3310,11 @@ are prefixed with either SQLITE_PRIVATE or SQLITE_API. } chng {2007-07-20 (3.4.1)} {
  • Fix a bug in VACUUM that can lead to - + database corruption if two processes are connected to the database at the same time and one VACUUMs then the other then modifies the database.
  • The expression "+column" is now considered the same as "column" when computing the collating sequence to use on the expression.
  • @@ -3343,11 +3343,11 @@ chng {2007-06-18 (3.4.0)} {
  • Fix a bug that can lead to database corruption if an [SQLITE_BUSY] error occurs in the middle of an explicit transaction and that transaction is later committed. [Ticket #2409]. See the - + CorruptionFollowingBusyError wiki page for details.
  • Fix a bug that can lead to database corruption if autovacuum mode is on and a malloc() failure follows a CREATE TABLE or CREATE INDEX statement which itself follows a cache overflow inside a transaction. See [ticket #2418]. @@ -3520,11 +3520,11 @@ chng {2007-01-09 (3.3.10)} {
  • Fix bugs in the implementation of the new sqlite3_prepare_v2() API that can lead to segfaults.
  • Fix 1-second round-off errors in the - + strftime() function
  • Enhance the Windows OS layer to provide detailed error codes
  • Work around a win2k problem so that SQLite can use single-character database file names
  • The @@ -3567,11 +3567,11 @@ to "etilqs".
  • } chng {2006-10-09 (3.3.8)} {
  • Support for full text search using the -FTS1 module +FTS1 module (beta)
  • Added Mac OS X locking patches (beta - disabled by default)
  • Introduce extended error codes and add error codes for various kinds of I/O errors.
  • Added support for IF EXISTS on CREATE/DROP TRIGGER/VIEW
  • @@ -3582,14 +3582,14 @@
  • Various minor bug fixes
  • } chng {2006-08-12 (3.3.7)} {
  • Added support for -virtual tables +virtual tables (beta)
  • Added support for - + dynamically loaded extensions (beta)
  • The sqlite3_interrupt() routine can be called for a different thread
  • Added the MATCH operator.
  • @@ -4219,11 +4219,11 @@ chng {2002-08-13 (2.6.3)} {
  • Add the ability to read both little-endian and big-endian databases. So a database created under SunOS or Mac OS X can be read and written under Linux or Windows and vice versa.
  • -
  • Convert to the new website: http://www.sqlite.org/
  • +
  • Convert to the new website: https://www.sqlite.org/
  • Allow transactions to span Linux Threads
  • Bug fix in the processing of the ORDER BY clause for GROUP BY queries
  • } chng {2002-07-31 (2.6.2)} { @@ -5148,11 +5148,11 @@ hd_resolve {

    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.

    } hd_close_aux hd_enable_main 1 if {$i==0 && [file exists $DEST/$filename]} { Index: pages/cintro.in ================================================================== --- pages/cintro.in +++ pages/cintro.in @@ -423,12 +423,12 @@

    All of the built-in SQL functions of SQLite are created using exactly these same interfaces. Refer to the SQLite source code, and in particular the - [http://www.sqlite.org/src/doc/trunk/src/date.c | date.c] and - [http://www.sqlite.org/src/doc/trunk/src/func.c | func.c] source files + [https://www.sqlite.org/src/doc/trunk/src/date.c | date.c] and + [https://www.sqlite.org/src/doc/trunk/src/func.c | func.c] source files for examples.

    Shared libraries or DLLs can be used as [loadable extensions] to SQLite. Index: pages/cli.in ================================================================== --- pages/cli.in +++ pages/cli.in @@ -488,11 +488,11 @@ }

    Note that the readfile(X) and writefile(X,Y) functions are extension functions and are not built into the core SQLite library. These routines are available as a [loadable extension] in the -[http://www.sqlite.org/src/artifact?ci=trunk&filename=ext/misc/fileio.c|ext/misc/fileio.c] +[https://www.sqlite.org/src/artifact?ci=trunk&filename=ext/misc/fileio.c|ext/misc/fileio.c] source file in the [SQLite source code repositories]. hd_fragment editfunc {edit() SQL function}

    The edit() SQL function

    @@ -806,11 +806,11 @@

    SQLite computes the entry point for the extension based on the extension filename. To override this choice, simply add the name of the extension as a second argument to the ".load" command.

    Source code for several useful extensions can be found in the -ext/misc +ext/misc subdirectory of the SQLite source tree. You can use these extensions as-is, or as a basis for creating your own custom extensions to address your own particular needs. hd_fragment sha3sum {.sha3sum dot-command} @@ -1118,11 +1118,11 @@ option.

    Th functionality described in this section may be integrated into other applications or tools using the - + SQLite expert extension code. hd_fragment dotother

    Other Dot Commands

    Index: pages/compile.in ================================================================== --- pages/compile.in +++ pages/compile.in @@ -1077,11 +1077,11 @@ option to [sqlite3_config()]) that can be used to create logs of all SQLite processing performed by an application. These logs can be useful in doing off-line analysis of the behavior of an application, and especially for performance analysis. In order for the SQLITE_ENABLE_SQLLOG option to be useful, some extra code is required. The - "test_sqllog.c" + "test_sqllog.c" source code file in the SQLite source tree is a working example of the required extra code. On unix and windows systems, a developer can append the text of the "test_sqllog.c" source code file to the end of an "sqlite3.c" amalgamation, recompile the application using the -DSQLITE_ENABLE_SQLLOG option, then @@ -1863,11 +1863,11 @@ or [SQLITE_SYSCALL]. } COMPILE_OPTION {SQLITE_TCLAPI} { This macro specifies the calling convention used by the - [http://www.tcl.tk | TCL] library interface routines. + [https://www.tcl.tk | TCL] library interface routines. This macro is not used by the SQLite core, but only by the [TCL Interface] and [TCL test suite]. This macro is normally defined to be nothing, though on Windows builds it can sometimes be set to "__cdecl". This macro is used on TCL library interface routines which are always compiled Index: pages/dev.in ================================================================== --- pages/dev.in +++ pages/dev.in @@ -1,9 +1,9 @@ SQLite Developer Links

    Developer Resources

    Index: pages/download.in ================================================================== --- pages/download.in +++ pages/download.in @@ -109,22 +109,22 @@ } Product {snapshot/sqlite-amalgamation-DATE.zip} { The [amalgamation]: complete source code a single "sqlite3.c" file. } # The [amalgamation] as of VERSION. -# See the pending +# See the pending # change log for details. Product {snapshot/sqlite-amalgamation32k-DATE.zip} { The [amalgamation] split into 6 separate source files each with less than 32767 lines of code. } -# See the pending +# See the pending # change log for details. #Product {snapshot/sqlite-tea-DATE.zip} { # This is a snapshot (as of VERSION) of the current SQLite code under # development, packaged and ready to build using the -# Tcl Extension Architecture (TEA). +# Tcl Extension Architecture (TEA). # Use this snapshot for testing only. This is not a release. #} Product {snapshot/sqlite-uap-DATE.vsix} { VSIX package for Universal Windows Platform development using Visual Studio 2015 CTP. } @@ -135,17 +135,17 @@ Heading {Pre-release Windows DLLs} {} $Caution Product snapshot/sqlite-dll-win32-x86-DATE.zip { A 32-bit Windows DLL as of VERSION. See the - pending change log + pending change log for details. } Product snapshot/sqlite-dll-win64-x64-DATE.zip { A 64-bit Windows DLL as of VERSION. See the - pending change log + pending change log for details. } Product {snapshot/sqlite-shell-win32-x86-DATE.zip} { This is a snapshot (as of VERSION) build of the @@ -176,17 +176,17 @@ C source code as the [split amalgamation], version VERSION. } Product {YEAR/sqlite-autoconf-VVV.tar.gz} { C source code as an [amalgamation]. Also includes a "configure" script - and [http://www.tcl-lang.org/doc/tea/|TEA] makefiles for the [TCL Interface]. + and [https://www.tcl-lang.org/doc/tea/|TEA] makefiles for the [TCL Interface]. } {amalgtarball {amalgamation tarball}} Product {YEAR/sqlite-tea-VVV.tar.gz} { A tarball of the [amalgamation] together with a - Tcl Extension + Tcl Extension Architecture (TEA) compatible configure script and makefile. } {teatarball {TEA tarball}} Heading {Documentation} docco @@ -349,16 +349,16 @@ if {$nDownload>$start} { hd_puts {Precompiled Binaries for .NET} hd_puts "" hd_puts "" - set url http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki + set url https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki hd_puts "System.Data.SQLite" hd_puts "" hd_puts "" hd_puts " - Visit the System.Data.SQLite.org + Visit the System.Data.SQLite.org website and especially the download page for source code and binaries of SQLite for .NET. " } @@ -410,19 +410,19 @@

    Source Code Repositories

    The SQLite source code is maintained in three geographically-dispersed self-synchronizing -[http://www.fossil-scm.org/ | Fossil] repositories that are +[https://www.fossil-scm.org/ | Fossil] repositories that are available for anonymous read-only access. Anyone can view the repository contents and download historical versions of individual files or ZIP archives of historical check-ins. You can also [clone the entire repository].

    See the [How To Compile SQLite] page for additional information on how to use the raw SQLite source code. -Note that a recent version of Tcl +Note that a recent version of Tcl is required in order to build from the repository sources. The [amalgamation] source code files (the "sqlite3.c" and "sqlite3.h" files) build products and are not contained in raw source code tree.

    @@ -431,11 +431,11 @@ https://www2.sqlite.org/cgi/src (Newark)
    https://www3.sqlite.org/cgi/src (San Francisco)

    The documentation is maintained in separate -[http://www.fossil-scm.org/ | Fossil] repositories located +[https://www.fossil-scm.org/ | Fossil] repositories located at:

    https://www.sqlite.org/cgi/docsrc (Dallas)
    https://www2.sqlite.org/cgi/docsrc (Newark)
    Index: pages/famous.in ================================================================== --- pages/famous.in +++ pages/famous.in @@ -139,11 +139,11 @@ There are [http://www.mail-archive.com/sqlite-users%40sqlite.org/msg27326.html | multiple] [http://www.mail-archive.com/sqlite-users%40sqlite.org/msg27332.html|sightings] of SQLite in the Skype client for Mac OS X and Windows. } -famous_user tcl http://www.tcl-lang.org/ tcl.gif { +famous_user tcl https://www.tcl.tk/ tcl.gif { The Tcl/Tk programming language now comes with SQLite built-in. SQLite works particularly well with Tcl since SQLite was originally a Tcl extension that subsequently "escaped" into the wild. } famous_user loc http://www.loc.gov/ loc.jpg { Index: pages/faq.in ================================================================== --- pages/faq.in +++ pages/faq.in @@ -577,11 +577,11 @@ faq { How are the syntax diagrams (a.k.a. "railroad" diagrams) for SQLite generated? } { - The process is explained at [http://wiki.tcl-lang.org/21708]. + The process is explained at [http://wiki.tcl.tk/21708]. } faq { The SQL standard requires that a UNIQUE constraint be enforced even if one or more of the columns in the constraint are NULL, but SQLite does Index: pages/fileformat2.in ================================================================== --- pages/fileformat2.in +++ pages/fileformat2.in @@ -363,11 +363,11 @@ The application ID is intended for database files used as an [application file-format]. The application ID can be used by utilities such as [http://www.darwinsys.com/file/ | file(1)] to determine the specific file type rather than just reporting "SQLite3 Database". A list of assigned application IDs can be seen by consulting the -[http://www.sqlite.org/src/artifact?ci=trunk&filename=magic.txt|magic.txt] +[https://www.sqlite.org/src/artifact?ci=trunk&filename=magic.txt|magic.txt] file in the SQLite source repository.

    hd_fragment validfor {version-valid-for number}

    Write library version number and version-valid-for number

    Index: pages/fts3.in ================================================================== --- pages/fts3.in +++ pages/fts3.in @@ -2912,11 +2912,11 @@ in the sub-query so that the rank function may access them.

    This version of the query is very similar to that used by the - sqlite.org documentation search + sqlite.org documentation search application. -- This table stores the static weight assigned to each document in FTS table -- "documents". For each row in the documents table there is a corresponding row Index: pages/fts5.in ================================================================== --- pages/fts5.in +++ pages/fts5.in @@ -1968,9 +1968,5 @@ [FTS5 external content tables|external content] FTS5 tables. <name>_docsize Contains the size of each column of each row in the virtual table in tokens. This shadow table is not present if the [FTS5 columnsize option|"columnsize" option] is set to 0. - - - - Index: pages/getthecode.in ================================================================== --- pages/getthecode.in +++ pages/getthecode.in @@ -24,11 +24,11 @@ guess the name of an historical release and download it that way.

    Obtaining Code Directly From the Version Control System

    For any historical version of SQLite, the source tree can be obtained -from the [http://www.fossil-scm.org/|Fossil] version control system, +from the [https://www.fossil-scm.org/|Fossil] version control system, either downloading a tarball or ZIP archive for a specific version, or by cloning the entire project history.

    SQLite sources are maintained on three geographically dispersed servers: @@ -48,16 +48,16 @@ [https://www3.sqlite.org/cgi/docsrc] (San Francisco)

    To download a specific historical version, first locate the specific version desired by visiting the timeline page on one of these servers -(for example: [http://www.sqlite.org/cgi/src/timeline]). If +(for example: [https://www.sqlite.org/cgi/src/timeline]). If you know the approximate date of the version you want to download, you can add a query parameter like "c=YYYY-MM-DD" to the "timeline" URL to see a timeline centered on that date. For example, to see all the check-ins that occurred around August 26, 2013, visit -[http://www.sqlite.org/cgi/src/timeline?c=2013-08-26]. +[https://www.sqlite.org/cgi/src/timeline?c=2013-08-26]. If you are looking for an official release, visit the [chronology] page, click on the date to the left of the release you are looking for, and that will take you immediately to the check-in corresponding to the release. @@ -68,11 +68,11 @@ hd_fragment {clone} {clone the entire repository}

    Cloning The Complete Development History

    To clone the entire history of SQLite, first go to the -[http://www.fossil-scm.org/download.html] page and grab a precompiled binary +[https://www.fossil-scm.org/download.html] page and grab a precompiled binary for the Fossil version control program. Or get the source code on the same page and compile it yourself.

    As of 2017-03-12, you must use Fossil version 2.0 or later for the following instructions to work. @@ -86,11 +86,11 @@ program, so install it simply by putting the "fossil" or "fossil.exe" executable someplace on your $PATH or %PATH%. After you have Fossil installed, do this: -fossil clone http://www.sqlite.org/cgi/src sqlite.fossil +fossil clone https://www.sqlite.org/cgi/src sqlite.fossil

    The command above will make a copy of the complete development history of SQLite into the "sqlite.fossil" file on your computer. Making this copy @@ -112,7 +112,7 @@

    Where VERSION can be a branch name (like "trunk" or "session") to get the latest check-in on a specific branch, or VERSION can be a SHA1 hash or a prefix of a SHA1 hash for a specific check-in, or VERSION can be a tag such as "version-3.8.8". Every time you run "fossil update" it will automatically reach out to the original repository at -http://www.sqlite.org/cgi/src to obtain new check-ins that might have been +https://www.sqlite.org/cgi/src to obtain new check-ins that might have been made by others since your previous update. Index: pages/howtocompile.in ================================================================== --- pages/howtocompile.in +++ pages/howtocompile.in @@ -145,13 +145,13 @@

    The TCL interface for SQLite is a small module that is added into the regular amalgamation. The result is a new amalgamated source file called "tclsqlite3.c". This single source file is all that is needed to generate a shared library that can be loaded into a standard -[http://wiki.tcl-lang.org/2541 | tclsh] or -[http://wiki.tcl-lang.org/2364 | wish] using the -[http://wiki.tcl-lang.org/9830 | TCL load command], or to generate a +[https://wiki.tcl.tk/2541 | tclsh] or +[https://wiki.tcl.tk/2364 | wish] using the +[https://wiki.tcl.tk/9830 | TCL load command], or to generate a standalone tclsh that comes with SQLite built in. A copy of the tcl amalgamation is included on the [download page] as a file in the [TEA tarball].

    To generate a TCL-loadable library for SQLite on Linux, the following @@ -219,11 +219,11 @@

    To build a custom amalgamation, first download the original individual source files onto a unix or unix-like development platform. Be sure to get the original source files not the "preprocessed source files". One can obtain the complete set of original source files either from the [download page] or directly -from the [http://www.sqlite.org/src | configuration management system].

    +from the [https://www.sqlite.org/src | configuration management system].

    Suppose the SQLite source tree is stored in a directory named "sqlite". Plan to construct the amalgamation in a parallel directory named (for example) "bld". First construct an appropriate Makefile by either running the configure script at the top of the SQLite source tree, or by @@ -252,11 +252,11 @@

    Building A Windows DLL

    To build a DLL of SQLite for use in Windows, first acquire the appropriate amalgamated source code files, sqlite3.c and sqlite3.h. These can either -be downloaded from the [http://www.sqlite.org/download.html | SQLite website] +be downloaded from the [https://www.sqlite.org/download.html | SQLite website] or custom generated from sources as shown above.

    With source code files in the working directory, a DLL can be generated using MSVC with the following command: Index: pages/howtocorrupt.in ================================================================== --- pages/howtocorrupt.in +++ pages/howtocorrupt.in @@ -34,11 +34,11 @@ the information that was intended to go into the original file ended up overwriting parts of the SQLite database, leading to corruption of the database.

    One example of this occurred circa 2013-08-30 on the canonical repository -for the Fossil DVCS. In that event, +for the Fossil DVCS. In that event, file descriptor 2 (standard error) was being erroneously closed (by [http://www.stunnel.org/|stunnel], we suspect) prior to [sqlite3_open_v2()] so that the file descriptor used for the repository database file was 2. Later, an application bug caused an assert() statement to emit @@ -410,11 +410,11 @@

    Since SQLite databases are ordinary disk files, any malfunction in the filesystem can corrupt the database. Filesystems in modern operating systems are very reliable, but errors do still occur. For example, on 2013-10-01 the SQLite database that holds the -Wiki for Tcl/Tk went corrupt a few days +Wiki for Tcl/Tk went corrupt a few days after the host computer was moved to a dodgy build of the (linux) kernel that had issues in the filesystem layer. In that event, the filesystem eventually became so badly corrupted that the machine was unusable, but the earliest symptom of trouble was the corrupted SQLite database.

    Index: pages/lang.in ================================================================== --- pages/lang.in +++ pages/lang.in @@ -1982,11 +1982,11 @@ $AAAA ^A dollar-sign followed by an identifier name also holds a spot for a named parameter with the name $AAAA. ^(The identifier name in this case can include one or more occurrences of "::" and a suffix enclosed in "(...)" containing any text at all.)^ This syntax is the form of a variable name in the -[http://www.tcl-lang.org/ | Tcl programming language]. The presence +[https://www.tcl.tk/ | Tcl programming language]. The presence of this syntax results from the fact that SQLite is really a [Tcl extension] that has escaped into the wild. @@ -3890,13 +3890,13 @@ differing lengths between any two checkins.

    We want to know the twenty most recent ancestors in time (out of the thousands and thousands of ancestors in the whole DAG) for checkin "@BASELINE". (A query similar to this is used -by the Fossil VCS to +by the Fossil VCS to show the N most recent ancestors of a check. For example: -http://www.sqlite.org/src/timeline?p=trunk&n=30.) +https://www.sqlite.org/src/timeline?p=trunk&n=30.)

     WITH RECURSIVE
       ancestor(id,mtime) AS (
         SELECT id, mtime FROM checkin WHERE id=@BASELINE
    
    Index: pages/lockingv3.in
    ==================================================================
    --- pages/lockingv3.in
    +++ pages/lockingv3.in
    @@ -59,11 +59,11 @@
     
     HEADING 1 {Overview} overview
     
     

    Locking and concurrency control are handled by the - + pager module. The pager module is responsible for making SQLite "ACID" (Atomic, Consistent, Isolated, and Durable). The pager module makes sure changes happen all at once, that either all changes occur or none of them do, that two or more processes do not try to access the database @@ -80,13 +80,13 @@ "page 1" and the second 1024 bytes are call "page 2" and so forth. All other encoding details are handled by higher layers of the library. The pager communicates with the operating system using one of several modules (Examples: - + os_unix.c, - + os_win.c) that provides a uniform abstraction for operating system services.

    The pager module effectively controls access for separate threads, or Index: pages/news.in ================================================================== --- pages/news.in +++ pages/news.in @@ -12,11 +12,11 @@ {\0} title } hd_puts "

    $date - $title

    " regsub -all "\n( *\n)+" $text "

    \n\n

    " txt regsub -all {[Tt]icket #(\d+)} $txt \ - {\0} txt + {\0} txt hd_resolve "

    $txt
    " hd_puts "
    " } newsitem {2018-06-04} {Release 3.24.0} { Index: pages/oldnews.in ================================================================== --- pages/oldnews.in +++ pages/oldnews.in @@ -268,11 +268,11 @@ A problem appeared in the [CREATE INDEX] command beginning with [version 3.8.2] (2013-12-06) that allowed, under some circumstances, a UNIQUE index to be created on a column that was not unique. Once the index was created, no new non-unique entries could be inserted, but preexisting non-unique entries would remain. See ticket - [http://www.sqlite.org/src/info/9a6daf340df99ba93c|9a6daf340df99ba93c] + [https://www.sqlite.org/src/info/9a6daf340df99ba93c|9a6daf340df99ba93c] for further information. In addition to fixing this bug, the [PRAGMA integrity_check] command has been enhanced to detect non-uniqueness in UNIQUE indices, so that if this bug did introduce any problems in databases, those problems can be easily detected. @@ -283,11 +283,11 @@ help some queries run up to five times faster.

    Version 3.8.6 uses 25% fewer CPU cycles than version 3.8.0 from approximately one year ago, according to [http://valgrind.org/|valgrind] and the - [http://www.sqlite.org/src/artifact/d29c8048beb7e|test/speedtest1.c] + [https://www.sqlite.org/src/artifact/d29c8048beb7e|test/speedtest1.c] test program. On the other hand, the compiled binary for version 3.8.6 is about 5% larger than 3.8.0. The size increase is due in part to the addition of new features such as [WITHOUT ROWID] @@ -314,24 +314,24 @@ newsitem {2014-04-03} {Release 3.8.4.3} {

    The optimizations added in [version 3.8.4] caused some queries that involve subqueries in the FROM clause, DISTINCT, and ORDER BY clauses, to give an incorrect result. See - [http://www.sqlite.org/src/info/98825a79ce145686392d8074032ae54863aa21a3| ticket 98825a79ce145] + [https://www.sqlite.org/src/info/98825a79ce145686392d8074032ae54863aa21a3| ticket 98825a79ce145] for details. This release adds a - [http://www.sqlite.org/src/fdiff?sbs=1&v1=7d539cedb1c&v2=ebad891b7494d&smhdr|one-character change] + [https://www.sqlite.org/src/fdiff?sbs=1&v1=7d539cedb1c&v2=ebad891b7494d&smhdr|one-character change] to a single line of code to fix the problem. } newsitem {2014-03-26} {Release 3.8.4.2} {

    The code changes that resulted in the performance improvements in [version 3.8.4] missed a single buffer overflow test, which could result in a read past the end of a buffer while searching a database that is corrupted in a particular way. [Version 3.8.4.2] fixes that problem using a - [http://www.sqlite.org/src/fdiff?v1=e45e3f9daf38c5be&v2=714df4e1c82f629d&sbs=1|one-line patch]. + [https://www.sqlite.org/src/fdiff?v1=e45e3f9daf38c5be&v2=714df4e1c82f629d&sbs=1|one-line patch].

    We are not aware of any problems in [version 3.8.4] when working with well-formed database files. The problem fixed by this release only comes up when reading corrupt database files. } @@ -381,11 +381,11 @@ then during query planning SQLite might mistakenly converted the "column IS NOT NULL" term into "column>NULL". But the latter term is never true, and so the query would return no rows.

    The trouble ticket for this bug is - [[http://www.sqlite.org/src/info/4c86b126f2|4c86b126f2]]. + [[https://www.sqlite.org/src/info/4c86b126f2|4c86b126f2]]. It is recommended that all users upgrade to avoid this problem. } newsitem {2014-02-03} {Release 3.8.3} {

    SQLite [version 3.8.3] is a regularly scheduled maintenance release. @@ -441,11 +441,11 @@ newsitem {2013-10-17} {Release 3.8.1} {

    SQLite [version 3.8.1] is a regularly scheduled maintenance release. Upgrading from the previous release is optional, though you should upgrade if you are using [partial indices] as there was a - [http://www.sqlite.org/src/info/a5c8ed66ca|bug] related to partial + [https://www.sqlite.org/src/info/a5c8ed66ca|bug] related to partial indices in the previous release that could result in an incorrect answer for count(*) queries.

    The [next generation query planner] that was premiered in the previous release continues to work well. @@ -529,11 +529,11 @@ newsitem {2013-04-12} {Release 3.7.16.2} { SQLite [version 3.7.16.2] fixes a long-standing flaw in the Windows OS interface that can result in database corruption under a rare race condition. - See [http://www.sqlite.org/src/info/7ff3120e4f] for a full description + See [https://www.sqlite.org/src/info/7ff3120e4f] for a full description of the problem. As far as we know, this bug has never been seen in the wild. The problem was discovered by the SQLite developers while writing stress tests for a separate component of SQLite. Those stress tests have not yet @@ -554,11 +554,11 @@ The primary motivation for version 3.7.16.1 is to fix a bug in the query optimizer that was introduced as part of [version 3.7.15]. The query optimizer was being a little overzealous in optimizing out some ORDER BY clauses, which resulted in sorting being omitted on occasions where sorting is required to get the correct answer. See - ticket [http://www.sqlite.org/src/info/a179fe7465 | a179fe7465] for + ticket [https://www.sqlite.org/src/info/a179fe7465 | a179fe7465] for details. In addition to the ORDER BY fix, several other patches to fix obscure (and mostly harmless) bugs and to fix spelling errors in source code comments are also included in this release. @@ -569,11 +569,11 @@ This release contains several language enhancements and improvements to the query optimizer. A list of the major enhancements and optimizations can be see on the [version 3.7.16 | change log]. There was one important bug fix - (see [http://www.sqlite.org/src/info/fc7bd6358f | Ticket fc7bd6358f]) + (see [https://www.sqlite.org/src/info/fc7bd6358f | Ticket fc7bd6358f]) that addresses an incorrect query result that could have occurred in a three-way join where the join constraints compared INTEGER columns to TEXT columns. This issue had been in the code for time out of mind and had never before been reported, so we surmise that it is very obscure. Nevertheless, all users are advised to upgrade to avoid any future problems @@ -707,11 +707,11 @@ 2 or 3 month interval. } newsitem {2012-05-22} {Patch Release 3.7.12.1} { SQLite [version 3.7.12.1] is a patch release for [version 3.7.12] that - fixes a [http://www.sqlite.org/src/info/c2ad16f997ee9c | bug] that was + fixes a [https://www.sqlite.org/src/info/c2ad16f997ee9c | bug] that was introduced in version 3.7.12 and that can cause a segfault for certain obscure nested aggregate queries. There are very few changes in 3.7.12.1, and upgrading is only needed for applications that do nested aggregate queries. } @@ -723,11 +723,11 @@ } newsitem {2012-03-20} {Version 3.7.11} { SQLite [version 3.7.11] is a regularly scheduled maintenance release which was rushed out early due to a - [http://www.sqlite.org/src/info/b7c8682cc1 | bug in the query optimizer] + [https://www.sqlite.org/src/info/b7c8682cc1 | bug in the query optimizer] introduced in the previous release. The bug is obscure - it changes a LEFT JOIN into an INNER JOIN in some cases when there is a 3-way join and OR terms in the WHERE clause. But it was considered serious enough to rush out a fix. Apart from this one problem, SQLite [version 3.7.10] has not given any trouble. Upgrading to [version 3.7.11] from versions @@ -780,11 +780,11 @@ [http://en.wikipedia.org/wiki/Kibibyte | kibibytes] of memory to cache, divided up according to page size. This enhancement allows programs to more easily control their memory usage. There have been several obscure bug fixes. One noteworthy bug, - ticket [http://www.sqlite.org/src/info/ff5be73dee | ff5be73dee], + ticket [https://www.sqlite.org/src/info/ff5be73dee | ff5be73dee], could in theory result in a corrupt database file if a power loss occurred at just the wrong moment on an unusually cantankerous disk drive. But that is mostly a theoretical concern and is very unlikely to happen in practice. The bug was found during laboratory testing and has never been observed to occur in the wild. @@ -851,11 +851,11 @@ problems detected. Version 3.7.8 is recommended for all new development. } newsitem {2011-06-28} {Version 3.7.7.1} { SQLite [version 3.7.7.1] adds a one-line bug fix to 3.7.7 to fix - [http://www.sqlite.org/src/info/25ee812710 | a problem] + [https://www.sqlite.org/src/info/25ee812710 | a problem] causing [PRAGMA case_sensitive_like] statements compiled using the legacy [sqlite3_prepare()] interface to fail with an [SQLITE_SCHEMA] error. Because [sqlite3_exec()] uses sqlite3_prepare() internally, the problem also affects sqlite3_exec(). @@ -901,11 +901,11 @@ stable release. } newsitem {2011-05-19} {Version 3.7.6.3} { SQLite [version 3.7.6.3] is a patch release that fixes a - [http://www.sqlite.org/src/info/2d1a5c67df | single bug] + [https://www.sqlite.org/src/info/2d1a5c67df | single bug] associated with [WAL mode]. The bug has been in SQLite ever since WAL was added, but the problem is very obscure and so nobody has noticed before now. Nevertheless, all users are encouraged to upgrade to version 3.7.6.3 or later. @@ -974,11 +974,11 @@ } newsitem {2011-02-01} {Version 3.7.5} { SQLite [version 3.7.5] is a regularly scheduled bi-monthly maintenance release of SQLite. Due to the discovery and fix of - [http://www.sqlite.org/src/tktview?name=5d863f876e | an obscure bug] + [https://www.sqlite.org/src/tktview?name=5d863f876e | an obscure bug] that could cause database corruption, upgrading from all prior releases of SQLite is recommended. This bug was found during code review and has not been observed in the wild. This release adds new [SQLITE_DBSTATUS_LOOKASIDE_HIT | opcodes] for the @@ -1035,11 +1035,11 @@

  • OpenBSD 4.7 The previous release of SQLite ([version 3.7.3]) has proven to be very robust. The only serious issue discovered was - [http://www.sqlite.org/src/info/80ba201079 | ticket 80ba201079] that + [https://www.sqlite.org/src/info/80ba201079 | ticket 80ba201079] that describes an incorrect query result that can occur under very unusual circumstances. The ticket description contains details of the problem. Suffice it to say here that the problem is very obscure and is unlikely to effect most applications and so upgrading is optional. The problem is fixed, of course, in this release. @@ -1071,11 +1071,11 @@ database [free-page list] to go corrupt if [incremental_vacuum] is used multiple times to partially reduce the size of a database file that contains many hundreds of unused database pages. The original bug reports together with links to the patch that fixes it can be seen - here. + here. This bug has been in the code for at least a year and possibly longer. The bug has nothing to do with the versions 3.7.1 or 3.7.0 or any other recent release. The fact that the bug was discovered (and fixed) within hours of the 3.7.1 release is purely a coincidence. @@ -1162,16 +1162,16 @@ newsitem {2010-01-06} {Version 3.6.22} { SQLite [version 3.6.22] is a bug-fix release. Two bugs have been fixed that might cause incorrect query results.
      -
    • Ticket [http://www.sqlite.org/src/info/31338dca7e | 31338dca7e] +
    • Ticket [https://www.sqlite.org/src/info/31338dca7e | 31338dca7e] describes a problem with queries that have a WHERE clause of the form (x AND y) OR z where x and z come from one table of a join and y comes from a different table. -
    • Ticket [http://www.sqlite.org/src/info/eb5548a849 | eb5548a849] +
    • Ticket [https://www.sqlite.org/src/info/eb5548a849 | eb5548a849] describes a problem where the use of the CAST operator in the WHERE clause can lead to incorrect results if the column being cast to a new datatype is also used in the same WHERE clause without being cast.
    @@ -1216,11 +1216,11 @@ NULL values compare equal to one another. } newsitem {2009-09-11} {Version 3.6.18} { Beginning with this release, the SQLite source code is tracked and - managed using the [http://www.fossil-scm.org/ | Fossil] + managed using the [https://www.fossil-scm.org/ | Fossil] distributed configuration management system. SQLite was previously versioned using CVS. The entire CVS history has been imported into Fossil. The older CVS repository remains on the website but is read-only. @@ -1294,14 +1294,14 @@ bugs. } newsitem {2009-05-25} {Version 3.6.14.2} { SQLite [version 3.6.14.2] fixes an obscure bug in the code generator - (ticket #3879) + (ticket #3879) section of SQLite which can potentially cause incorrect query results. The changes from the prior release consist of only this one bug fix, - check-in [6676] + check-in [6676] and a change to the version number text. The bug was introduced in version 3.6.14. It is recommended that users of version 3.6.14 and 3.6.14.1 upgrade to this release. Applications are unlikely to hit this bug, but since it is difficult to predict which @@ -1544,11 +1544,11 @@ newsitem {2007-10-04} {Version 3.5.1} { Fix a long-standing bug that might cause database corruption if a disk-full error occurs in the middle of a transaction and that transaction is not rolled back. - Ticket #2686. + Ticket #2686. The new VFS layer is stable. However, we still reserve the right to make tweaks to the interface definition of the VFS if necessary. } @@ -1568,12 +1568,12 @@ newsitem {2007-08-13} {Version 3.4.2} { While stress-testing the soft_heap_limit feature, a bug that could lead to - database - corruption was + database + corruption was discovered and fixed. Though the consequences of this bug are severe, the chances of hitting it in a typical application are remote. Upgrading is recommended only if you use the sqlite3_soft_heap_limit @@ -1580,11 +1580,11 @@ interface. } newsitem {2007-07-20} {Version 3.4.1} { This release fixes a bug in VACUUM that - can lead to + can lead to database corruption. The bug was introduced in version 3.3.14. Upgrading is recommended for all users. Also included are a slew of other more routine enhancements and bug fixes. @@ -1594,13 +1594,13 @@ This release fixes two separate bugs either of which can lead to database corruption. Upgrading is strongly recommended. If you must continue using an older version of SQLite, please at least read about how to avoid these bugs at - + CorruptionFollowingBusyError and - ticket #2418 + ticket #2418

    This release also adds explicit limits on the sizes and quantities of things SQLite will handle. The new limits might causes compatibility problems for existing applications that use excessively large strings, BLOBs, tables, or SQL statements. @@ -1635,11 +1635,11 @@ also many enhancements to the test suite. } newsitem {2007-04-02} {Version 3.3.14} { This version focuses on performance improvements. If you recompile - + the amalgamation using GCC option -O3 (the precompiled binaries use -O2) you may see performance improvements of 35% or more over version 3.3.13 depending on your workload. This version also adds support for @@ -1672,23 +1672,23 @@ } newsitem {2007-01-04} {Version 3.3.9} { Version 3.3.9 fixes bugs that can lead to database corruption under obscure and difficult to reproduce circumstances. See - + DatabaseCorruption in the - wiki for details. + wiki for details. This release also adds the new sqlite3_prepare_v2() API and includes important bug fixes in the command-line shell and enhancements to the query optimizer. Upgrading is recommended. } newsitem {2006-10-09} {Version 3.3.8} { Version 3.3.8 adds support for full-text search using the - FTS1 + FTS1 module. There are also minor bug fixes. Upgrade only if you want to try out the new full-text search capabilities or if you are having problems with 3.3.7. } @@ -1749,11 +1749,11 @@ Database connections can now be moved between threads as long as the connection holds no locks at the time it is moved. Thus the common paradigm of maintaining a pool of database connections and handing them off to transient worker threads is now supported. Please help test this new feature. - See + See the MultiThreading wiki page for additional information. } newsitem {2006-01-10} {Version 3.3.0 alpha} { @@ -1845,19 +1845,19 @@ Version 3.2.0 also fixes an obscure but serious bug that was discovered just prior to release. If you have a multi-statement transaction and within that transaction an UPDATE or INSERT statement fails due to a constraint, then you try to rollback the whole transaction, the rollback might not work correctly. See - Ticket #1171 + Ticket #1171 for details. Upgrading is recommended for all users. } newsitem {2005-03-16} {Version 3.1.6} { Version 3.1.6 fixes a critical bug that can cause database corruption when inserting rows into tables with around 125 columns. This bug was introduced in version 3.0.0. See - Ticket #1163 + Ticket #1163 for additional information. } newsitem {2005-03-11} {Versions 3.1.4 and 3.1.5 Released} { Version 3.1.4 fixes a critical bug that could cause database corruption @@ -1880,38 +1880,38 @@ A critical bug in the VACUUM command that can lead to database corruption has been fixed in both the 2.x branch and the main 3.x line. This bug has existed in all prior versions of SQLite. Even though it is unlikely you will ever encounter this bug, it is suggested that all users upgrade. See - + ticket #1116. for additional information. Version 3.1.2 is also the first stable release of the 3.1 series. SQLite 3.1 features added support for correlated subqueries, autovacuum, autoincrement, ALTER TABLE, and other enhancements. See the - release notes + release notes for version 3.1.0 for a detailed description of the changes available in the 3.1 series. } newsitem {2005-02-01} {Version 3.1.1 (beta) Released} { Version 3.1.1 (beta) is now available on the website. Version 3.1.1 is fully backwards compatible with the 3.0 series and features many new features including Autovacuum and correlated subqueries. The - release notes + release notes From version 3.1.0 apply equally to this release beta. A stable release is expected within a couple of weeks. } newsitem {2005-01-21} {Version 3.1.0 (alpha) Released} { Version 3.1.0 (alpha) is now available on the website. Version 3.1.0 is fully backwards compatible with the 3.0 series and features many new features including Autovacuum and correlated subqueries. See the - release notes + release notes for details. This is an alpha release. A beta release is expected in about a week with the first stable release to follow after two more weeks. } @@ -1918,11 +1918,11 @@ newsitem {2004-11-09} {SQLite at the 2004 International PHP Conference} { There was a talk on the architecture of SQLite and how to optimize SQLite queries at the 2004 International PHP Conference in Frankfurt, Germany. - + Slides from that talk are available. } newsitem {2004-10-11} {Version 3.0.8} { Version 3.0.8 of SQLite contains several code optimizations and minor @@ -1934,13 +1934,13 @@ newsitem {2004-10-10} {SQLite at the 11th Annual Tcl/Tk Conference} { There will be a talk on the use of SQLite in Tcl/Tk at the 11th Tcl/Tk Conference this week in - New Orleans. Visit [http://www.tcl-lang.org/community/tcl2004/] + New Orleans. Visit [https://www.tcl.tk/community/tcl2004/] for details. - + Slides from the talk are available. } newsitem {2004-09-18} {Version 3.0.7} { Version 3.0 has now been in use by multiple projects for several Index: pages/opcode.in ================================================================== --- pages/opcode.in +++ pages/opcode.in @@ -136,11 +136,11 @@ "prepared statement" interchangeably, as they are mostly the same thing.

    VDBE Source Code

    The source code to the bytecode engine is in the -[http://www.sqlite.org/src/finfo?name=src/vdbe.c | vdbe.c] source +[https://www.sqlite.org/src/finfo?name=src/vdbe.c | vdbe.c] source file. The [opcode definitions] in this document are derived from comments in that source file. The source code comments are the canonical source of information about the bytecode engine. When in doubt, refer to the source code.

    @@ -418,11 +418,11 @@ from the file if {$uuid==""} { hd_puts "vdbe.c.\n" } else { - hd_puts "vdbe.c.\n" + hd_puts "vdbe.c.\n" }

    Remember: The VDBE opcodes are not part of the interface definition for SQLite. The number of opcodes and their names and meanings Index: pages/pragma.in ================================================================== --- pages/pragma.in +++ pages/pragma.in @@ -245,11 +245,11 @@ [application file-format] should set the Application ID integer to a unique integer so that utilities such as [http://www.darwinsys.com/file/ | file(1)] can determine the specific file type rather than just reporting "SQLite3 Database". A list of assigned application IDs can be seen by consulting the - [http://www.sqlite.org/src/artifact?ci=trunk&filename=magic.txt + [https://www.sqlite.org/src/artifact?ci=trunk&filename=magic.txt |magic.txt] file in the SQLite source repository.

    See also the [user_version pragma]. } Index: pages/privatebranch.in ================================================================== --- pages/privatebranch.in +++ pages/privatebranch.in @@ -39,19 +39,19 @@

    The Basic Idea

    We propose to use the -[http://www.fossil-scm.org | fossil software configuration management] +[https://www.fossil-scm.org | fossil software configuration management] system to set up two branches. One branch (the "public branch" or "trunk") contains the published SQLite sources and the other branch is the private branch which contains the code that is customized for the project. Whenever a new public release of SQLite is made, that release is added to the public branch and then the changes are merged into the private branch.

    This document proposes to use -[http://www.fossil-scm.org/ | fossil], +[https://www.fossil-scm.org/ | fossil], but any other distributed software configuration management system such as [http://www.monotone.ca/ | monotone] or [http://www.selenic.com/mercurial/wiki/ | mercurial] (a.k.a. "hg"), or [http://www.git-scm.org/ | git] could serve just as well. The concept will be the same, @@ -102,18 +102,18 @@ is one of many. Use this document as a baseline for preparing project-specific procedures. Do not be afraid to experiment.

    Obtain The Software

    -

    [http://www.fossil-scm.org/ | Fossil] is a computer program +

    [https://www.fossil-scm.org/ | Fossil] is a computer program that must be installed on your machine before you use it. Fortunately, installing fossil is very easy. Fossil is a single "*.exe" file that you simply download and run. To uninstall fossil, simply delete the exe file. -[http://www.fossil-scm.org/index.html/doc/tip/www/quickstart.wiki | Detailed instructions] for installing and getting started with +[https://www.fossil-scm.org/index.html/doc/tip/www/quickstart.wiki | Detailed instructions] for installing and getting started with fossil are available on the -[http://www.fossil-scm.org | fossil website].

    +[https://www.fossil-scm.org | fossil website].

    Create A Project Repository

    Create a fossil repository to host the private branch using the following command:

    @@ -347,17 +347,17 @@

    Variations

    Since this document was first written, the canonical SQLite source code has been moved from the venerable CVS system into a Fossil repository at -[http://www.sqlite.org/src]. This means that if you are working with +[https://www.sqlite.org/src]. This means that if you are working with canonical SQLite source code (as opposed to the [amalgamation] source code files, sqlite3.c and sqlite3.h) then you can create a private repository simply by cloning the official repository:

    -fossil clone http://www.sqlite.org/src private-project.fossil
    +fossil clone https://www.sqlite.org/src private-project.fossil
     

    This command both creates the new repository and populates it with all the latest SQLite code. You can then create a private branch as described in section 3.4.

    Index: pages/queryplanner-ng.in ================================================================== --- pages/queryplanner-ng.in +++ pages/queryplanner-ng.in @@ -392,11 +392,11 @@ However, cases do arise (rarely) where performance regressions can occur.

    hd_fragment fossilcasestudy {The Fossil NGQP Upgrade Case Study}

    Case Study: Upgrading Fossil to the NGQP

    -

    The Fossil DVCS is the version +

    The Fossil DVCS is the version control system used to track all of the SQLite source code. A Fossil repository is an SQLite database file. (Readers are invited to ponder this recursion as an independent exercise.) Fossil is both the version-control system for SQLite and a test platform for SQLite. Whenever enhancements are made to SQLite, @@ -406,11 +406,11 @@

    Unfortunately, the NGQP caused a performance regression in Fossil.

    One of the many reports that Fossil makes available is a timeline of changes to a single branch showing all merges in and out of that branch. See -http://www.sqlite.org/src/timeline?nd&n=200&r=trunk +https://www.sqlite.org/src/timeline?nd&n=200&r=trunk for a typical example of such a report. Generating such a report normally takes just a few milliseconds. But after upgrading to the NGQP we noticed that this one report was taking closer to 10 seconds for the trunk of the repository.

    Index: pages/quickstart.in ================================================================== --- pages/quickstart.in +++ pages/quickstart.in @@ -25,11 +25,11 @@

    Write Programs That Use SQLite

    • Below is a simple -[http://www.tcl-lang.org | TCL program] that demonstrates how to use +[https://www.tcl.tk | TCL program] that demonstrates how to use the TCL interface to SQLite. The program executes the SQL statements given as the second argument on the database defined by the first argument. The commands to watch for are the sqlite3 command on line 7 which opens an SQLite database and creates a new object named "db" to access that database, the Index: pages/spellfix1.in ================================================================== --- pages/spellfix1.in +++ pages/spellfix1.in @@ -12,11 +12,11 @@ misspelled words.

      The implementation for the spellfix1 virtual table is held in the SQLite source tree in the miscellaneous extensions folder and in particular in the file -[http://www.sqlite.org/src/finfo?name=ext/misc/spellfix.c|ext/misc/spellfix1.c]. +[https://www.sqlite.org/src/finfo?name=ext/misc/spellfix.c|ext/misc/spellfix1.c]. The spellfix1 virtual table is not included in the SQLite [amalgamation] and is not a part of any standard SQLite build. It is a [loadable extension].

      Once the spellfix1 extension is loaded, an instance of the spellfix1 virtual table is created like this: Index: pages/tclsqlite.in ================================================================== --- pages/tclsqlite.in +++ pages/tclsqlite.in @@ -9,12 +9,12 @@

      The Tcl interface to the SQLite library

      The SQLite library is designed to be very easy to use from -a [http://www.tcl-lang.org | Tcl or Tcl/Tk] script. SQLite -began as a [http://www.tcl-lang.org/doc/tea/ | Tcl extension] +a [https://www.tcl.tk | Tcl or Tcl/Tk] script. SQLite +began as a [https://www.tcl.tk/doc/tea/ | Tcl extension] and the primary [test suite] for SQLite is written in TCL. SQLite can be used with any programming language, but its connections to TCL run deep.

      This document gives an overview of the Tcl Index: pages/testing.in ================================================================== --- pages/testing.in +++ pages/testing.in @@ -154,11 +154,11 @@ The TCL Tests are the oldest set of tests for SQLite. They are contained in the same source tree as the SQLite core and like the SQLite core are in the public domain. The TCL tests are the primary tests used during development. The TCL tests are written using the -[http://www.tcl-lang.org/ | TCL scripting language]. +[https://www.tcl.tk/ | TCL scripting language]. The TCL test harness itself consists of KB {$stat(tclcSLOC)} KSLOC of C code used to create the TCL interface. The test scripts are contained in N {$stat(tclsNFile)} files totaling MiB {$stat(tclsNByte)}MB in size. There are N {$stat(tclNTest)} distinct test cases, but many of the test @@ -185,11 +185,11 @@ prior to release does hundreds of millions of tests. Additional information on TH3 is [TH3 | available separately].

    • hd_fragment slt {SLT} {SQL Logic Tests} -The SQL Logic Test +The SQL Logic Test or SLT test harness is used to run huge numbers of SQL statements against both SQLite and several other SQL database engines and verify that they all get the same answers. SLT currently compares SQLite against PostgreSQL, MySQL, Microsoft SQL Server, and Oracle 10g. SLT runs MB {$stat(sltNTest)} million queries comprising @@ -964,11 +964,11 @@ hd_fragment cklist {release testing checklists} {checklist}

      Checklists

      The SQLite developers use an on-line checklist to coordinate testing activity and to verify that all tests pass prior each SQLite release. -Past checklists +Past checklists are retained for historical reference. (The checklists are read-only for anonymous internet viewers, but developers can log in and update checklist items in their web browsers.) The use of checklists for SQLite testing and other development activities Index: pages/th3.in ================================================================== --- pages/th3.in +++ pages/th3.in @@ -51,11 +51,11 @@ more portable form that would compile and run on SymbianOS, and that was sufficient to run the SQLite tests. TH1 did not survive as a standard testing tool for SQLite, but it did find continued service as a scripting language used to customize the -[http://www.fossil-scm.org/|Fossil] version control system. +[https://www.fossil-scm.org/|Fossil] version control system. There was also a "Test Harness #2" which was an attempt to create a simple scripting language using operator prefix notation to drive tests. TH3 was the third attempt.

      At about that same time, some avionics manufacturers were Index: pages/undoredo.in ================================================================== --- pages/undoredo.in +++ pages/undoredo.in @@ -84,11 +84,11 @@ An important feature of the technique demonstrated below is that the triggers are generated automatically.

      The implementation language for the example code is -[http://www.tcl-lang.org|TCL], though you can easily do the same thing +[https://www.tcl.tk|TCL], though you can easily do the same thing in another programming language. Remember that the code here is a demonstration of the technique, not a drop-in module that will automatically do everything for you. The demonstration code shown below is derived from actual code in production use. But you will need to make changes to tailor it Index: pages/version3.in ================================================================== --- pages/version3.in +++ pages/version3.in @@ -97,11 +97,11 @@

      Details of the low-level B-tree format used in SQLite version 3.0 can be found in header comments to the -btreeInt.h +btreeInt.h source file and in the [file format] documentation.

      Manifest Typing and BLOB Support

      Index: pages/vfs.in ================================================================== --- pages/vfs.in +++ pages/vfs.in @@ -94,11 +94,11 @@

      The various unix VFSes differ only in the way they handle file locking - they share most of their implementation in common with one another and are all located in the same SQLite source file: -[http://www.sqlite.org/src/doc/trunk/src/os_unix.c | os_unix.c]. +[https://www.sqlite.org/src/doc/trunk/src/os_unix.c | os_unix.c]. Note that except for "unix" and "unix-excl", the various unix VFSes all use incompatible locking implementations. If two processes are accessing the same SQLite database using different unix VFSes, they may not see each others locks and may end up interfering with one another, resulting in database corruption. The "unix-none" VFS in particular @@ -188,11 +188,11 @@

      A simple example of a shim is the "vfstrace" VFS. This is a VFS (implemented in the -[http://www.sqlite.org/src/doc/trunk/src/test_vfstrace.c | test_vfstrace.c] +[https://www.sqlite.org/src/doc/trunk/src/test_vfstrace.c | test_vfstrace.c] source file) that writes a message associated with each VFS method call into a log file, then passes control off to another VFS to do the actual work.

      @@ -203,20 +203,20 @@ SQLite source tree:

      • -[http://www.sqlite.org/src/file/ext/misc/appendvfs.c | appendvfs.c] - +[https://www.sqlite.org/src/file/ext/misc/appendvfs.c | appendvfs.c] - This VFS allows an SQLite database to be appended to the end of some other file. This can be used, for example, to append an SQLite database onto the end of an executable such that the executable where it can then be easily located by the executable when needed. The [command-line shell] will use this VFS if launched with the --append option.

      • -[http://www.sqlite.org/src/doc/trunk/src/test_demovfs.c | test_demovfs.c] - +[https://www.sqlite.org/src/doc/trunk/src/test_demovfs.c | test_demovfs.c] - This file implements a very simple VFS named "demo" that uses POSIX functions such as open(), read(), write(), fsync(), close(), fsync(), sleep(), time(), and so forth. This VFS only works on unix systems. But it is not intended as a replacement for the standard "unix" VFS used by default @@ -223,11 +223,11 @@ on unix platforms. The "demo" VFS is deliberately kept very simple so that it can be used as a learning aid or as template for building other VFSes or for porting SQLite to new operating systems.

      • -[http://www.sqlite.org/src/doc/trunk/src/test_quota.c | test_quota.c] - +[https://www.sqlite.org/src/doc/trunk/src/test_quota.c | test_quota.c] - This file implements a shim called "quota" that enforces cumulative file size limits on a collection of database files. An auxiliary interface is used to define "quota groups". A quota group is a set of files (database files, journals, and temporary files) whose names all match a [GLOB] pattern. The sum of the sizes of all files @@ -237,30 +237,30 @@ that would have exceeded the quota to fail with an [SQLITE_FULL] error. One of the uses of this shim is used to enforce resource limits on application databases in Firefox.

      • -[http://www.sqlite.org/src/doc/trunk/src/test_multiplex.c | test_multiplex.c] - +[https://www.sqlite.org/src/doc/trunk/src/test_multiplex.c | test_multiplex.c] - This file implements a shim that allows database files to exceed the maximum file size of the underlying filesystem. This shim presents an interface to the upper six layers of SQLite that makes it look like very large files are being used, when in reality each such large file is split up into many smaller files on the underlying system. This shim has been used, for example, to allow databases to grow larger than 2 gibibytes on FAT16 filesystems.

      • -[http://www.sqlite.org/src/doc/trunk/src/test_onefile.c | test_onefile.c] - +[https://www.sqlite.org/src/doc/trunk/src/test_onefile.c | test_onefile.c] - This file implements a demonstration VFS named "fs" that shows how SQLite can be used on an embedded device that lacks a filesystem. Content is written directly to the underlying media. A VFS derived from this demonstration code could be used by a gadget with a limited amount of flash memory to make SQLite behave as the filesystem for the flash memory on the device.

      • -[http://www.sqlite.org/src/doc/trunk/src/test_journal.c | test_journal.c] - +[https://www.sqlite.org/src/doc/trunk/src/test_journal.c | test_journal.c] - This file implements a shim used during SQLite testing that verifies that the database and rollback journal are written in the correct order and are "synced" at appropriate times in order to guarantee that the database can recover from a power lose are hard reset at any time. The shim checks several invariants on the operation of databases and rollback @@ -269,11 +269,11 @@ Running a large suite of test cases using this shim provides added assurance that SQLite databases will not be damaged by unexpected power failures or device resets.

      • -[http://www.sqlite.org/src/doc/trunk/src/test_vfs.c | test_vfs.c] - +[https://www.sqlite.org/src/doc/trunk/src/test_vfs.c | test_vfs.c] - This file implements a shim that can be used to simulate filesystem faults. This shim is used during testing to verify that SQLite responses sanely to hardware malfunctions or to other error conditions such as running out of filesystem space that are difficult to test on a real system.

      Index: pages/vtab.in ================================================================== --- pages/vtab.in +++ pages/vtab.in @@ -480,12 +480,12 @@ a table-valued function in the FROM clause of a [SELECT] statement. The arguments to the table-valued function become constraints on the HIDDEN columns of the virtual table.

      For example, the "generate_series" extension (located in the -[http://www.sqlite.org/src/artifact?ci=trunk&filename=ext/misc/series.c|ext/misc/series.c] -file in the [http://www.sqlite.org/src/tree?ci=trunk|source tree]) +[https://www.sqlite.org/src/artifact?ci=trunk&filename=ext/misc/series.c|ext/misc/series.c] +file in the [https://www.sqlite.org/src/tree?ci=trunk|source tree]) implements an [eponymous virtual table] with the following schema: CREATE TABLE generate_series( value, Index: pages/withoutrowid.in ================================================================== --- pages/withoutrowid.in +++ pages/withoutrowid.in @@ -240,11 +240,11 @@ intermediate nodes mean that each intermediate node entry takes up more space on the page and thus reduces the fan-out, increasing the search cost.

      The "sqlite3_analyzer.exe" utility program, available as source code in the SQLite source tree or as a precompiled binary on the -[http://www.sqlite.org/download.html | SQLite Download page], can be +[https://www.sqlite.org/download.html | SQLite Download page], can be used to measure the average sizes of table rows in an existing SQLite database.

      Note that except for a few corner-case differences detailed above, WITHOUT ROWID tables and rowid tables work the same. They both generate