Documentation Source Text

Check-in [32b82e8386]
Login

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

Overview
Comment:Updates to the change log for 3.28.0.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 32b82e8386e0958f54edc6275df39ec13b5dd1d2272a83a297dc7a9ab668270c
User & Date: drh 2019-03-25 20:56:11
Context
2019-03-26
00:14
Update to the ".parameter" command documentation to conform to the latest implementation. check-in: 9dab48bb9d user: drh tags: trunk
2019-03-25
20:56
Updates to the change log for 3.28.0. check-in: 32b82e8386 user: drh tags: trunk
15:19
Update the CLI documentation to describe the new --insert option to ".archive" and the behavior change to the --update option. check-in: bf3c223723 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to pages/changes.in.

20
21
22
23
24
25
26

27
28
29
30
31
32
33
..
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
  set xrefChng($date) $nChng
  incr nChng
}

chng {2019-04-00 (3.28.0)} {
<li> Added the new [sqlite3_stmt_isexplain(S)] interface for determining
     whether or not a [prepared statement] is an [EXPLAIN].

<li> New query optimizations:
<ol type="a">
<li> Enable the [LIKE optimization] for cases when the ESCAPE keyword
     is present and [PRAGMA case_sensitive_like] is on.
<li> In queries that are driven by a [partial index], avoid unnecessary
     tests of the constraint named in the WHERE clause of the partial
     index, since we know that constraint must always be true.
................................................................................
</ol>
<li> Enhancements to the [CLI]:
<ol type="a">
<li> Added support for [bound parameters] and the [.parameter command].
<li> Fix the [file I/O functions|readfile()] function so that it returns
     an empty BLOB rather than throwing an out-of-memory error when
     reading an empty file.






</ol>
<li> Added the [https://sqlite.org/src/file/ext/misc/fossildelta.c|fossildelta.c]
     extension that can create, apply, and deconstruct the 
 [https://fossil-scm.org/fossil/doc/trunk/www/delta_format.wiki|Fossil DVCS file delta format]
     that is used by the [RBU extension].
<li> The [fts3_tokenizer()] function is restricted to return only NULL
     values unless application-defined FTS3 tokenizers are enabled using
     the [sqlite3_db_config]([SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER])
     setting.
<li> Improved robustnessness against corrupt database files.
<li> Miscellaneous performance enhancements




}

chng {2019-02-25 (3.27.2)} {
<li> Fix a bug in the IN operator that was introduced by an 
     attempted optimization in version 3.27.0. Ticket
     [https://www.sqlite.org/src/info/df46dfb631f75694|df46dfb631f75694]
<li> Fix a bug causing a crash when a [window function] is misused.  Ticket







>







 







>
>
>
>
>
>











>
>
>
>







20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
..
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
  set xrefChng($date) $nChng
  incr nChng
}

chng {2019-04-00 (3.28.0)} {
<li> Added the new [sqlite3_stmt_isexplain(S)] interface for determining
     whether or not a [prepared statement] is an [EXPLAIN].
<li> Enhanced [VACUUM INTO] so that it works for read-only databases.
<li> New query optimizations:
<ol type="a">
<li> Enable the [LIKE optimization] for cases when the ESCAPE keyword
     is present and [PRAGMA case_sensitive_like] is on.
<li> In queries that are driven by a [partial index], avoid unnecessary
     tests of the constraint named in the WHERE clause of the partial
     index, since we know that constraint must always be true.
................................................................................
</ol>
<li> Enhancements to the [CLI]:
<ol type="a">
<li> Added support for [bound parameters] and the [.parameter command].
<li> Fix the [file I/O functions|readfile()] function so that it returns
     an empty BLOB rather than throwing an out-of-memory error when
     reading an empty file.
<li> Fix the [file I/O functions|writefile()] function so that when it
     creates new directories along the path of a new file, it gives them
     umask permissions rather than the same permissions as the file.
<li> Change [--update option] in the [.archive command] so that it skips
     files that are already in the archive and are unchanged.  Add the
     new --insert option that works like --update used to work.
</ol>
<li> Added the [https://sqlite.org/src/file/ext/misc/fossildelta.c|fossildelta.c]
     extension that can create, apply, and deconstruct the 
 [https://fossil-scm.org/fossil/doc/trunk/www/delta_format.wiki|Fossil DVCS file delta format]
     that is used by the [RBU extension].
<li> The [fts3_tokenizer()] function is restricted to return only NULL
     values unless application-defined FTS3 tokenizers are enabled using
     the [sqlite3_db_config]([SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER])
     setting.
<li> Improved robustnessness against corrupt database files.
<li> Miscellaneous performance enhancements
<li> Established a Git mirror of the offical SQLite source tree. 
     The canonical sources for SQLite are maintained using the
     [https://fossil-scm.org/|Fossil DVCS] at [https://sqlite.org/src].
     The Git mirror can be seen at [https://github.com/sqlite/sqlite].
}

chng {2019-02-25 (3.27.2)} {
<li> Fix a bug in the IN operator that was introduced by an 
     attempted optimization in version 3.27.0. Ticket
     [https://www.sqlite.org/src/info/df46dfb631f75694|df46dfb631f75694]
<li> Fix a bug causing a crash when a [window function] is misused.  Ticket

Changes to pages/cli.in.

958
959
960
961
962
963
964

965
966
967
968
969
970
971
change in the future.

<codeblock>
  <i>-- List contents of archive in current "main" db.</i>.
  .ar --list
</codeblock>


<h2> SQLite Archive Insert And Update Commands </h2>

<p> The --update and --insert commands work like --create command, except that 
they do not delete the current archive before commencing. New versions of
files silently replace existing files with the same names, but otherwise
the initial contents of the archive (if any) remain intact.








>







958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
change in the future.

<codeblock>
  <i>-- List contents of archive in current "main" db.</i>.
  .ar --list
</codeblock>

<tcl>hd_fragment {arinsup} {/--update option} {/--insert option}</tcl>
<h2> SQLite Archive Insert And Update Commands </h2>

<p> The --update and --insert commands work like --create command, except that 
they do not delete the current archive before commencing. New versions of
files silently replace existing files with the same names, but otherwise
the initial contents of the archive (if any) remain intact.

Changes to wrap.tcl.

354
355
356
357
358
359
360

361
362
363
364
365
366
367
    }
    if {[regexp {^\*} $a]} {
      set visible 0
      set a [string range $a 1 end]
    } else {
      set visible 1
    }

    regsub -all {[^a-zA-Z0-9_.#/ -]} $a {} kw
    if {[info exists glink($kw)]} {
      if {[info exists hd(aux)] && $glink($kw)==$hd(fn-aux)} {
        db eval {DELETE FROM keyword WHERE kw=$kw}
      } elseif {$override_flag==0} {
        puts stderr "WARNING: duplicate keyword \"$kw\" - $glink($kw) and $lurl"
      }







>







354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
    }
    if {[regexp {^\*} $a]} {
      set visible 0
      set a [string range $a 1 end]
    } else {
      set visible 1
    }
    if {[regexp {^/--} $a]} {set a [string range $a 1 end]}
    regsub -all {[^a-zA-Z0-9_.#/ -]} $a {} kw
    if {[info exists glink($kw)]} {
      if {[info exists hd(aux)] && $glink($kw)==$hd(fn-aux)} {
        db eval {DELETE FROM keyword WHERE kw=$kw}
      } elseif {$override_flag==0} {
        puts stderr "WARNING: duplicate keyword \"$kw\" - $glink($kw) and $lurl"
      }