Index: pages/changes.in ================================================================== --- pages/changes.in +++ pages/changes.in @@ -28,11 +28,11 @@ exist columns named "true" or "false", then the identifiers refer to the columns rather than Boolean constants.)
  • Support operators IS TRUE, IS FALSE, IS NOT TRUE, and IS NOT FALSE.
  • Added the [SQLITE_DBSTATUS_CACHE_SPILL] option to [sqlite3_db_status()] for reporting the number of cache spills that have occurred. -
  • The "alternate-form-2" flag ("!") on the [built-in printf] implemention +
  • The "alternate-form-2" flag ("!") on the [built-in printf] implementation now causes string substitutions to measure the width and precision in characters instead of bytes.
  • If the [xColumn] method in a [virtual table] implementation returns an error message using [sqlite3_result_error()] then give that error message preference over internally-generated messages. Index: pages/cli.in ================================================================== --- pages/cli.in +++ pages/cli.in @@ -1005,11 +1005,11 @@

    The various SQLite Archive Archive commands are implemented using SQL statements. Application developers can easily add SQLite Archive Archive reading and writing support to their own projects by running the appropriate SQL. -

    To see what SQL statements are used to implement an SQLine Archive +

    To see what SQL statements are used to implement an SQLite Archive operation, add the --dryrun or -n option. This causes the SQL to be displayed but inhibits the execution of the SQL.

    The SQL statements used to implement SQLite Archive operations make use of various [loadable extensions]. These extensions are all available in Index: pages/copyright.in ================================================================== --- pages/copyright.in +++ pages/copyright.in @@ -67,11 +67,11 @@

    Many people associated "open-source" software with software that has grown organically through contributions from countless individuals. And, indeed, there is some open-source software that works that way. But not SQLite. SQLite uses the the -[https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar|cathedral development philosopy] +[https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar|cathedral development philosophy] not the bazaar approach. All of the SQLite code has been written by people who are well known to each other. hd_fragment warrantyoftitle {Warranty of Title} Index: pages/lang.in ================================================================== --- pages/lang.in +++ pages/lang.in @@ -2386,14 +2386,14 @@

    Beginning with SQLite 3.23.0 ([dateof:3.23.0]), SQLite recognizes the identifiers "TRUE" and "FALSE" as boolean literals, if and only if those identifiers are not already used for some other meaning. If there already exists columns or tables or other objects named TRUE or FALSE, then for -the sake of backwards compatibility, the TRUE and FALSE indentifiers refer +the sake of backwards compatibility, the TRUE and FALSE identifiers refer to those other objects, not to the boolean values. -

    The boolean identifers TRUE and FALSE are usually just aliases for +

    The boolean identifiers TRUE and FALSE are usually just aliases for the integer values 1 and 0, respectively. However, if TRUE or FALSE occur on the right-hand side of an IS operator, then they form new unary postfix operators "IS TRUE" and "IS FALSE" which test the boolean value of the operand on the left. Index: pages/tclsqlite.in ================================================================== --- pages/tclsqlite.in +++ pages/tclsqlite.in @@ -868,11 +868,11 @@ to correlate SQL statement text with the result of a profile or row callback. The second argument is the unexpanded text of the SQL statement being run. By "unexpanded", we mean that variable substitutions in the text are not expanded into the variable values. This is different from the behavior of the "trace" -method which does expand variable substitions. +method which does expand variable substitutions.

    Traces for profile invoke the callback with two arguments as each SQL statement finishes. The first argument is an integer which is the value of the underlying [sqlite3_stmt] object. The second argument is the approximate run-time for the statement in nanoseconds. Index: pages/whyc.in ================================================================== --- pages/whyc.in +++ pages/whyc.in @@ -151,11 +151,11 @@ question often arises as to why SQLite is not coded in a "safe" language.

    1. None of the safe programming languages existed for the first 10 years -of SQLite's existance. SQLite could be recoded in Go or Rust, but doing +of SQLite's existence. SQLite could be recoded in Go or Rust, but doing so would probably introduce far more bugs than would be fixed, and it seems also likely to result in slower code.

    2. Safe programming languages solve the easy problems: memory leaks,