Documentation Source Text

Check-in [fe054454f3]
Login

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

Overview
Comment:Initial draft of release notes for version 3.20.0.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: fe054454f33ade03a9d1b645e8ac18f384aa22aa1a52a37dd8a8f1b3e6a1f6b0
User & Date: drh 2017-06-29 14:47:30.351
Context
2017-06-29
14:53
Updates to the query planner stability guarantee description to make it clear that it is off by default. (check-in: fa4e2ba5b2 user: drh tags: trunk)
14:47
Initial draft of release notes for version 3.20.0. (check-in: fe054454f3 user: drh tags: trunk)
2017-06-26
14:43
Correction to the schema for the DBSTAT virtual table. (check-in: a30aad4d5c user: drh tags: trunk)
Changes
Side-by-Side Diff Ignore Whitespace Patch
Changes to pages/changes.in.
16
17
18
19
20
21
22










































23
24
25
26
27
28
29
16
17
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







+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+







set nChng 0
proc chng {date desc {options {}}} {
  global nChng aChng xrefChng
  set aChng($nChng) [list $date $desc $options]
  set xrefChng($date) $nChng
  incr nChng
}

chng {2017-08-31 (3.20.0)} {
<li> Added the LSM1 extension
<li> Added the stmt virtual table extension
<li> Enhancements to the [command-line shell]:
<ul>
<li> Add the ".cd" command.
<li> Enhance the ".schema" command to show the schema of all attached
     databases.
<li> Enhance ".tables" so that it shows the schema names for all attached
     if the name is anything other than "main".
<li> The ".import" command ignores an initial UTF-8 BOM.
</ul>
<li> Query planner enhancements:
<ul>
<li> When generating individual loops for each ORed term of an OR scan,
     move any constant WHERE expressions outside of the loop, as is 
     done for top-level loops.
<li> The query planner examines the values of bound parameters to help
     determine if a partial index is usable.
<li> When deciding between two plans with the same estimated cost, bias 
     the selection toward the one that does not use the sorter.
</ul>
<li> Add [SQLITE_STMTSTATUS_REPREPARE], [SQLITE_STMTSTATUS_RUN], 
     and [SQLITE_STMTSTATUS_MEMUSED] options for the
     [sqlite3_stmt_status()] interface.
<li> Provide eponymous virtual tables for
     [PRAGMA integrity_check], [PRAGMA quick_check], and
     [PRAGMA foreign_key_check].
<li> Add the -withoutnulls option to the [TCL interface eval method].
<li> Enhance the [sqlite3_analyzer.exe] utility program so that it shows
     the number of bytes of metadata on btree pages.
<li> The [SQLITE_DBCONFIG_ENABLE_QPSG] run-time option and the
     [SQLITE_ENABLE_QPSG] compile-time option enable the
     [query planner stability guarantee].  See also ticket
     [https://www.sqlite.org/src/info/892fc34f173e99d8|892fc34f173e99d8]
<p><b>Bug Fixes:</b>
<li> Ensure that the query planner knows that any column of a 
     [flattening optimization|flattened] LEFT JOIN can be NULL even 
     if that column is labeled with "NOT NULL". Fix for ticket 
     [https://sqlite.org/src/info/892fc34f173e99d8|892fc34f173e99d8].
}

chng {2017-06-17 (3.18.2)} {
<li>Fix a bug that might cause duplicate output rows when an IN operator is
    used in the WHERE clause.
    Ticket [https://sqlite.org/src/info/61fe9745|61fe9745].
<p><b>Hashes:</b>
<li>SQLITE_SOURCE_ID: "2017-06-17 09:59:36 036ebf729e4b21035d7f4f8e35a6f705e6bf99887889e2dc14ebf2242e7930dd"
Changes to pages/chronology.in.
24
25
26
27
28
29
30

31
32
33
34
35
36
37
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38







+







#    ORDER BY mtime DESC;
#
# A small amount of manual editing and de-duplication followed.
#
# Manually edit the list for each subsequent release.
#      
foreach line [split {
xxxxxxxxxx|pending|version 3.20.0
036ebf729e|2017-06-17|version 3.18.2
77bb46233d|2017-06-16|version 3.18.1
0ee482a1e0|2017-06-08|version 3.19.3
edb4e819b0|2017-05-25|version 3.19.2
f6d7b988f4|2017-05-24|version 3.19.1
28a94eb282|2017-05-22|version 3.19.0
424a0d3803|2017-03-28|version 3.18.0
Changes to pages/compile.in.
952
953
954
955
956
957
958







959
960
961
962
963
964
965
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972







+
+
+
+
+
+
+







  [sqlite3_update_hook|update hook] except that the callback is
  invoked before the change, not afterwards, and the preupdate
  hook interfaces are omitted unless this compile-time option is
  used.
  <p>The preupdate hook interfaces were originally added to
  support the [session] extension.
}

COMPILE_OPTION {SQLITE_ENABLE_QPSG} {
  This option causes the [query planner stability guarantee] (QPSG) to
  be on by default.  Normally the QPSG is off and must be activated
  at run-time using the [SQLITE_DBCONFIG_ENABLE_QPSG] option to the
  [sqlite3_db_config()] interface.
}

COMPILE_OPTION {SQLITE_ENABLE_RBU} {
  Enable the code the implements the [RBU extension].
}

COMPILE_OPTION {SQLITE_ENABLE_RTREE} {
  This option causes SQLite to include support for the
Changes to pages/index.in.
10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
10
11
12
13
14
15
16

17
18
19
20
21
22
23
24







-
+







[full-featured SQL|full-featured], [public-domain],
SQL database engine.
SQLite is the [most used] database engine in the world.
<a class="button" href="about.html">More Info</a></p>

<hr class="xhr">
<span class="hdrfont">Latest Release:&nbsp;&nbsp;</span>
<a href="releaselog/3_19_3.html">Version 3.19.3</a> ([dateof:3.19.3]).
<a href="releaselog/3_20_0.html">Version 3.20.0</a> ([dateof:3.19.3]).
<a class="button" href="download.html">Download</a>
<a class="button" href="chronology.html">Prior Releases</a>

<div class="mobileonly">
<hr class="xhr">
<h3>Common Links</h3>
<tcl>common_links</tcl>