Documentation Source Text

Check-in [2d9f1292ff]
Login

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

Overview
Comment:Update the change log for 3.21.0.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 2d9f1292ff6aa5414928583fc5b345fc72c257d0224e9cadcb65ff75b06da975
User & Date: drh 2017-08-25 17:54:45.468
Context
2017-08-29
13:19
Remove the scratch memory allocator. (check-in: d482cfb5ea user: drh tags: trunk)
2017-08-25
17:54
Update the change log for 3.21.0. (check-in: 2d9f1292ff user: drh tags: trunk)
17:26
Update the prototype Makefile. (check-in: 44c52e864a user: drh tags: trunk)
Changes
Unified Diff 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
  global nChng aChng xrefChng
  set aChng($nChng) [list $date $desc $options]
  set xrefChng($date) $nChng
  incr nChng
}

chng {2017-11-01 (3.21.0)} {
<li> Take advantage of the atomic-write capabilities of the 
     [https://en.wikipedia.org/wiki/F2FS|F2FS filesystem] when available, for
     greatly reduced transaction overhead.  This currently requires the
     [SQLITE_ENABLE_BATCH_ATOMIC_WRITE] compile-time option.
<li> Allow [ATTACH] and [DETACH] commands to work inside of a transaction.
<li> Allow [WITHOUT ROWID virtual tables] to be writable if the PRIMARY KEY
     contains exactly one column.











<li> Query planner enhancements:
<ol type="a">
<li> Enhanced the [LIKE optimization] so that it works with an ESCAPE clause.
</ol>



<li> Miscellaneous [microoptimizations] reduce CPU usage by about 1.6%.
<li> Bug fixes:
<ol type="a">
<li> Fix a faulty assert() statement discovered by OSSFuzz.














     Ticket [https://sqlite.org/src/info/cb91bf4290c211d|cb91bf4290c211d]
</ol>
}

chng {2017-08-24 (3.20.1)} {
<li> Fix a potential memory leak in the new [sqlite3_result_pointer()] interface.
     Ticket [https://sqlite.org/src/info/7486aa54b968e9b5|7486aa54b968e9b5].







|






>
>
>
>
>
>
>
>
>
>
>




>
>
>




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







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
74
  global nChng aChng xrefChng
  set aChng($nChng) [list $date $desc $options]
  set xrefChng($date) $nChng
  incr nChng
}

chng {2017-11-01 (3.21.0)} {
<li> Take advantage of the atomic-write capabilities in the 
     [https://en.wikipedia.org/wiki/F2FS|F2FS filesystem] when available, for
     greatly reduced transaction overhead.  This currently requires the
     [SQLITE_ENABLE_BATCH_ATOMIC_WRITE] compile-time option.
<li> Allow [ATTACH] and [DETACH] commands to work inside of a transaction.
<li> Allow [WITHOUT ROWID virtual tables] to be writable if the PRIMARY KEY
     contains exactly one column.
<li> The "fsync()" that occurs after the header is written in a WAL reset
     now uses the sync settings for checkpoints.  This means it will use a
     "fullfsync" on macs if [PRAGMA checkpoint_fullfsync] set on.
<li> The [sqlite3_sourceid()] function tries to detect if the source code has
     been modified from what is checked into version control and if there are
     modifications, the last four characters of the version hash are shown as
     "alt1" or "alt2".  This mechanism is easily subverted by a forger.  The
     goal is to detect accidental edits.
<li> Improved de-quoting of column names for [CREATE TABLE AS] statements with
     an aggregate query on the right-hand side.
<li> Fewer "stat()" system calls issued by the unix VFS.
<li> Query planner enhancements:
<ol type="a">
<li> Enhanced the [LIKE optimization] so that it works with an ESCAPE clause.
</ol>
<li> Enhanced the [CSV virtual table] so that it accepts the last row of
     input if the final new-line character is missing.
<li> Added the swarm virtual table to the existing union virtual table extension.
<li> Miscellaneous [microoptimizations] reduce CPU usage by about 1.6%.
<li> Bug fixes:
<ol type="a">
<li> Fix a faulty assert() statement discovered by OSSFuzz.
     Ticket [https://sqlite.org/src/info/cb91bf4290c211d|cb91bf4290c211d]
<li> Fix an obscure memory leak in [sqlite3_result_pointer()].
     Ticket [https://sqlite.org/src/info/7486aa54b968e9b|7486aa54b968e9b]
<li> Avoid a possible use-after-free error by deferring schema resets until
     after the query planner has finished running.
     Ticket [https://sqlite.org/src/info/be436a7f4587ce5|be436a7f4587ce5]
<li> Only use indexes-on-expressions to optimize ORDER BY or GROUP BY if
     the COLLATE is correct.
     Ticket [https://sqlite.org/src/info/e20dd54ab0e4383|e20dd54ab0e4383]
<li> Fix an assertion fault that was coming up when the expression in an
     index-on-expressions is really a constant.
     Ticket [https://sqlite.org/src/info/aa98619ad08ddca|aa98619ad08ddca]
<li> Fix an assertion fault that could occur following
     [PRAGMA reverse_unordered_selects].
     Ticket [https://sqlite.org/src/info/cb91bf4290c211d|cb91bf4290c211d]
</ol>
}

chng {2017-08-24 (3.20.1)} {
<li> Fix a potential memory leak in the new [sqlite3_result_pointer()] interface.
     Ticket [https://sqlite.org/src/info/7486aa54b968e9b5|7486aa54b968e9b5].