Documentation Source Text

Check-in [b6f0b02c8c]
Login

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

Overview
Comment:Final adjustments to the change log before starting release tests.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: b6f0b02c8c744141b736f74654144dba5989d326
User & Date: drh 2017-02-09 19:48:30
Context
2017-02-10
17:56
Add news for 3.17.0. Set the dates and check-in hash for 3.17.0. check-in: 2ca5036003 user: drh tags: trunk
2017-02-09
19:48
Final adjustments to the change log before starting release tests. check-in: b6f0b02c8c user: drh tags: trunk
2017-02-08
18:10
Clarification of a sentence in the R-Tree documentation. check-in: 96728cbc13 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to images/cpu-usage.jpg.

cannot compute difference between binary files

Changes to misc/speed-size-graph.ods.

cannot compute difference between binary files

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
..
48
49
50
51
52
53
54





55
56
57
58
59
60
61
62
  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
................................................................................
<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







|
>
>
>
>
>
>
>







>
>
>
>







 







>
>
>
>
>
|







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
..
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
  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>Approximately 25% better performance from the [R-Tree extension].
    <ul>
    <li> Uses compiler built-ins (ex: __builtin_bswap32() or _byteswap_ulong())
         for byteswapping when available.
    <li> Uses the [sqlite3_blob] key/value access object instead of SQL
         for pull content out of R-Tree nodes
    <li> Other miscellaneous enhancements such as loop unrolling.
    </ul>
<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>Use compiler built-ins __builtin_sub_overflow(), __builtin_add_overflow(),
    and __builtin_mul_overflow() when available.  (All compiler
    built-ins can be omitted with the [SQLITE_DISABLE_INTRINSIC] compile-time
    option.)
<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
................................................................................
<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>Enhance the 
    [https://www.sqlite.org/src/doc/trunk/doc/lemon.html|LEMON parser generator]
    so that it can store the parser object as a stack variable rather than 
    allocating space from the heap and make use of that enhancement in
    the [amalgamation].
<li>Other performance improvements. Uses about [CPU cycles used|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

Changes to pages/compile.in.

200
201
202
203
204
205
206













207
208
209
210
211
212
213
....
1090
1091
1092
1093
1094
1095
1096






1097
1098
1099
1100
1101
1102
1103
}

COMPILE_OPTION {HAVE_UTIME} {
  If the HAVE_UTIME option is true, then the built-in but non-standard
  "unix-dotfile" VFS will use the utime() system call, instead of utimes(),
  to set the last access time on the lock file.
}













</tcl>

<a name="defaults"></a>
<h1> Options To Set Default Parameter Values</h1>

<tcl>

................................................................................
COMPILE_OPTION {SQLITE_DISABLE_FTS4_DEFERRED} {
  If this C-preprocessor macro disables the "deferred token" optimization
  in [FTS4].  The "deferred token" optimization avoids loading massive
  posting lists for terms that are in most documents of the collection
  and instead simply scans for those tokens in the document source.  [FTS4]
  should get exactly the same answer both with and without this optimization.
}






</tcl>

<tcl>
  hd_fragment "omitfeatures"
  hd_keywords "omitfeatures"
</tcl>
<h1> Options To Omit Features</h1>







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







 







>
>
>
>
>
>







200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
....
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
}

COMPILE_OPTION {HAVE_UTIME} {
  If the HAVE_UTIME option is true, then the built-in but non-standard
  "unix-dotfile" VFS will use the utime() system call, instead of utimes(),
  to set the last access time on the lock file.
}

COMPILE_OPTION {SQLITE_BYTEORDER=<i>(0|1234|4321)</i>} {
  SQLite needs to know if the native byte order of the target CPU is
  big-endian or little-ending.  The SQLITE_BYTEORDER preprocessor is set
  to 4321 for big-endian machines and 1234 for little-endian machines, or
  it can be 0 to mean that the byte order must be determined at run-time.
  There are #ifdefs in the code that set SQLITE_BYTEORDER automatically
  for all common platforms and compilers.  However, it may be advantageous
  to set SQLITE_BYTEORDER appropriately when compiling SQLite for obscure
  targets.  If the target byte order cannot be determined at compile-time,
  then SQLite falls back to doing run-time checks, which always work, though
  with a small performance penalty.
}
</tcl>

<a name="defaults"></a>
<h1> Options To Set Default Parameter Values</h1>

<tcl>

................................................................................
COMPILE_OPTION {SQLITE_DISABLE_FTS4_DEFERRED} {
  If this C-preprocessor macro disables the "deferred token" optimization
  in [FTS4].  The "deferred token" optimization avoids loading massive
  posting lists for terms that are in most documents of the collection
  and instead simply scans for those tokens in the document source.  [FTS4]
  should get exactly the same answer both with and without this optimization.
}

COMPILE_OPTION {SQLITE_DISABLE_INTRINSIC} {
  This option disables the use of compiler-specific built-in functions
  such as __builtin_bswap32() and __builtin_add_overflow() in GCC and Clang, 
  or _byteswap_ulong() and _ReadWriteBarrier() with MSVC.  
}
</tcl>

<tcl>
  hd_fragment "omitfeatures"
  hd_keywords "omitfeatures"
</tcl>
<h1> Options To Omit Features</h1>