Documentation Source Text

Check-in [90822d4b15]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Updates to the change log for 3.17.0.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 90822d4b157a5c64640fc1c2de50e4bb20264090
User & Date: drh 2017-02-04 15:16:01
Context
2017-02-04
16:22
Update the preformance spreadsheet check-in: 49eb6735bf user: drh tags: trunk
15:16
Updates to the change log for 3.17.0. check-in: 90822d4b15 user: drh tags: trunk
14:45
Remove obsolete statements from the EXPLAIN QUERY PLAN documentation. check-in: 735ffb4d2d user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to pages/changes.in.

18
19
20
21
22
23
24

25
26
27
28
29
30
31




32
33
34
35
36
37












38
39
40
41
42
43
44





45
46
47
48
49
50
51
  global nChng aChng xrefChng
  set aChng($nChng) [list $date $desc $options]
  set xrefChng($date) $nChng
  incr nChng
}

chng {2017-03-00 (3.17.0)} {

<li>Add the [SQLITE_DEFAULT_LOOKASIDE] compile-time option.
<li>Increase the default [lookaside memory allocator|lookaside]
    size from 512,125 to 1200,100 
    as this provides better performance while only adding 56KB 
    of extra memory per connection.  Memory-sensitive 
    applications can restore the old
    default at compile-time, start-time, or run-time.




<li>Change [SQLITE_DEFAULT_PCACHE_INITSZ] from 100 to 20, for
    improved performance.
<li>Added the SQLITE_UINT64_TYPE compile-time option as an
    analog to SQLITE_INT64_TYPE.
<li>Perform some [UPDATE] operations in a single pass instead of
    in two passes.












<li>Other performance improvements.
<p><b>Bug Fixes:</b>
<li>Throw an error if the ON clause of a LEFT JOIN references tables
    to the right of the ON clause.  This is the same behavior as
    PostgreSQL.  Formerly, SQLite silently converted the LEFT JOIN
    into an INNER JOIN.  Fix for ticket
    [https://www.sqlite.org/src/info/25e335f802dd|25e335f802dd].





}

chng {2017-01-06 (3.16.2)} {
<li>Fix the [REPLACE] statement for 
    [WITHOUT ROWID] tables that lack secondary indexes so that
    it works correctly with triggers and foreign keys.  This was a new bug
    caused by performance optimizations added in version 3.16.0.







>







>
>
>
>






>
>
>
>
>
>
>
>
>
>
>
>
|






>
>
>
>
>







18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
  global nChng aChng xrefChng
  set aChng($nChng) [list $date $desc $options]
  set xrefChng($date) $nChng
  incr nChng
}

chng {2017-03-00 (3.17.0)} {
<li>Performance enhancements in the [R-Tree extension].
<li>Add the [SQLITE_DEFAULT_LOOKASIDE] compile-time option.
<li>Increase the default [lookaside memory allocator|lookaside]
    size from 512,125 to 1200,100 
    as this provides better performance while only adding 56KB 
    of extra memory per connection.  Memory-sensitive 
    applications can restore the old
    default at compile-time, start-time, or run-time.
<li>Added the [SQLITE_ENABLE_NULL_TRIM] compile-time option, which
    can result in significantly smaller database files for some
    applications, at the risk of being incompatible with older
    versions of SQLite.
<li>Change [SQLITE_DEFAULT_PCACHE_INITSZ] from 100 to 20, for
    improved performance.
<li>Added the SQLITE_UINT64_TYPE compile-time option as an
    analog to SQLITE_INT64_TYPE.
<li>Perform some [UPDATE] operations in a single pass instead of
    in two passes.
<li>Enhance the [session extension] to support [WITHOUT ROWID]
    tables.
<li>Fixed performance problems and potential stack overflows
    when creating [views] from multi-row VALUES clauses with
    hundreds of thousands of rows.
<li>Added the [https://www.sqlite.org/src/file/ext/misc/sha1.c|sha1.c]
    extension.
<li>In the [command-line shell], enhance the ".mode" command so that it
    restores the default column and row separators for modes "line",
    "list", "column", and "tcl". 
<li>Enhance the [SQLITE_DIRECT_OVERFLOW_READ] option so that it works
    in [WAL mode] as long as the pages being read are not in the WAL file.
<li>Other performance improvements. Uses about 6.5% fewer CPU cycles.
<p><b>Bug Fixes:</b>
<li>Throw an error if the ON clause of a LEFT JOIN references tables
    to the right of the ON clause.  This is the same behavior as
    PostgreSQL.  Formerly, SQLite silently converted the LEFT JOIN
    into an INNER JOIN.  Fix for ticket
    [https://www.sqlite.org/src/info/25e335f802dd|25e335f802dd].
<li>Use the correct affinity for columns of automatic indexes. Ticket
    [https://www.sqlite.org/src/info/7ffd1ca1d2ad4ec|7ffd1ca1d2ad4ec].
<li>Ensure that the [sqlite3_blob_reopen()] interface can correctly
    handle short rows.  Fix for ticket
    [https://www.sqlite.org/src/info/e6e962d6b0f06f46e|e6e962d6b0f06f46e].
}

chng {2017-01-06 (3.16.2)} {
<li>Fix the [REPLACE] statement for 
    [WITHOUT ROWID] tables that lack secondary indexes so that
    it works correctly with triggers and foreign keys.  This was a new bug
    caused by performance optimizations added in version 3.16.0.

Changes to pages/compile.in.

889
890
891
892
893
894
895














896
897
898
899
900
901
902
  supply a large chunk of memory from which all memory allocations are
  taken.
  The MEMSYS5 module rounds all allocations up to the next power
  of two and uses a first-fit, buddy-allocator algorithm
  that provides strong guarantees against fragmentation and breakdown
  subject to certain operating constraints.
}















COMPILE_OPTION {SQLITE_ENABLE_PREUPDATE_HOOK} {
  This option enables 
  [sqlite3_preupdate_hook|several new APIs] that provide callbacks
  prior to any change to a [rowid table].  The callbacks can be used
  to record the state of the row before the change occurs.
  <p>The action of the preupdate hook is similar to the







>
>
>
>
>
>
>
>
>
>
>
>
>
>







889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
  supply a large chunk of memory from which all memory allocations are
  taken.
  The MEMSYS5 module rounds all allocations up to the next power
  of two and uses a first-fit, buddy-allocator algorithm
  that provides strong guarantees against fragmentation and breakdown
  subject to certain operating constraints.
}

COMPILE_OPTION {SQLITE_ENABLE_NULL_TRIM} {
  This option enables an optimization that omits NULL columns at
  the ends of rows, for a space savings on disk.
  <p>
  Databases generated with this option enabled are not readable
  by SQLite version 3.1.6 ([dateof:3.1.6]) and earlier.  Also,
  databases generated with this option enabled are prone to
  triggering the
  [https://www.sqlite.org/src/info/e6e962d6b0f06f46e|e6e962d6b0f06f46]
  bug in the [sqlite3_blob_reopen()] interface.  For those reasons,
  this optimization is disabled by default.  However, this optimization
  may be enabled by default in a future release of SQLite.
}

COMPILE_OPTION {SQLITE_ENABLE_PREUPDATE_HOOK} {
  This option enables 
  [sqlite3_preupdate_hook|several new APIs] that provide callbacks
  prior to any change to a [rowid table].  The callbacks can be used
  to record the state of the row before the change occurs.
  <p>The action of the preupdate hook is similar to the