Index: pages/changes.in ================================================================== --- pages/changes.in +++ pages/changes.in @@ -53,10 +53,13 @@
  • The [EXPLAIN QUERY PLAN] output no longer shows an estimate of the number of rows generated by each loop in a join.
  • Added the [FTS4 notindexed option], allowing non-indexed columns in an FTS4 table.
  • Added the [SQLITE_STMTSTATUS_VM_STEP] option to [sqlite3_stmt_status()].
  • Added the [cache_spill pragma]. +
  • Added the [query_only pragma]. +
  • Added the [defer_foreign_keys pragma] and the + [sqlite3_db_status](db, [SQLITE_DBSTATUS_DEFERRED_FKS],...) C-language interface.
  • Added the "percentile()" function as a [loadable extension] in the ext/misc subdirectory of the source tree.
  • Added the [SQLITE_ALLOW_URI_AUTHORITY] compile-time option.
  • Add the [sqlite3_cancel_auto_extension(X)] interface.
  • A running SELECT statement that lacks a FROM clause (or any other statement that @@ -70,10 +73,13 @@
  • Added an optional 5th parameter defining the collating sequence to the next_char() extension SQL function.
  • The [SQLITE_BUSY_SNAPSHOT] extended error code is returned in WAL mode when a read transaction cannot be upgraded to a write transaction because the read is on an older snapshot. +
  • Enhancements to the sqlite3_analyzer utility program to provide size + information separately for each individual index of a table, in addition to + the aggregate size.
  • Allow read transactions to be freely opened and closed by SQL statements run from within the implementation of [application-defined SQL functions] if the function is called by a SELECT statement that does not access any database table.
  • Disable the use of posix_fallocate() on all (unix) systems unless the HAVE_POSIX_FALLOCATE compile-time option is used. @@ -80,10 +86,13 @@
  • Update the ".import" command in the [command-line shell] to support multi-line fields and correct RFC-4180 quoting and to issue warning and/or error messages if the input text is not strictly RFC-4180 compliant.
  • Bug fix: In the [unicode61] tokenizer of [FTS4], treat all private code points as identifier symbols. +
  • Bug fix: Bare identifiers in ORDER BY clauses bind more tightly to output column + names, but indentifiers in expressions bind more tightly to input column names. + Indentifers in GROUP BY clauses always prefer output column names, however.
  • Bug fixes: Multiple problems in the legacy query optimizer were fixed by the move to [NGQP]. } chng {2013-05-20 (3.7.17)} { Index: pages/foreignkeys.in ================================================================== --- pages/foreignkeys.in +++ pages/foreignkeys.in @@ -505,10 +505,13 @@ NOT DEFERRABLE INITIALLY IMMEDIATE -- An immediate foreign key constraint NOT DEFERRABLE -- An immediate foreign key constraint DEFERRABLE INITIALLY IMMEDIATE -- An immediate foreign key constraint DEFERRABLE -- An immediate foreign key constraint )^ + +

    The [defer_foreign_keys pragma] can be used to temporarily change all foreign + key constraints to deferred regardless of how they are declared.

    ^(The following example illustrates the effect of using a deferred foreign key constraint. Index: pages/pragma.in ================================================================== --- pages/pragma.in +++ pages/pragma.in @@ -311,10 +311,26 @@ that fired the trigger, whereas [sqlite3_changes()] and [sqlite3_total_changes()] do not. DISCLAIMER } + +Pragma defer_foreign_keys { +

    PRAGMA defer_foreign_keys +
    PRAGMA defer_foreign_keys =
    boolean;

    +

    ^When the defer_foreign_keys [PRAGMA] is on, + enforcement of all [foreign key constraints] is delayed until the + outermost transaction is committed. ^The defer_foreign_keys pragma + defaults to OFF so that foreign key constraints are only deferred if + they are created as "DEFERRABLE INITIALLY DEFERRED". This pragma is + only meaningful if foreign key constraints are enabled, of course.

    + +

    The [sqlite3_db_status](db,[SQLITE_DBSTATUS_DEFERRED_FKS],...) + C-language interface can be used during a transaction to determine + if there are deferred and unresolved foreign key constraints.

    +} + LegacyPragma default_cache_size { ^(PRAGMA default_cache_size;
    PRAGMA default_cache_size =
    Number-of-pages;

    @@ -746,10 +762,18 @@ ^Both forms of the pragma return the maximum page count. ^The second form attempts to modify the maximum page count. ^The maximum page count cannot be reduced below the current database size.

    } + +Pragma query_only { +

    PRAGMA query_only; +
    PRAGMA query_only =
    boolean;

    + +

    The query_only pragma prevents all changes to database files when + enabled.

    +} Pragma read_uncommitted {

    ^(PRAGMA read_uncommitted;
    PRAGMA read_uncommitted =
    boolean;

    Query, set, or clear READ UNCOMMITTED isolation.)^ ^The default isolation