Documentation Source Text

Check-in [5cbf9f2c9d]
Login

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

Overview
Comment:Wording improvements and typo fixes.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 5cbf9f2c9d91c9f40b4888fcb68dfc2b9bd226cf2be2da4b905f0d7ec3f17f54
User & Date: drh 2018-01-18 20:15:50.741
Context
2018-01-18
20:26
Another simplification to the change log. (check-in: e040454680 user: drh tags: trunk)
20:15
Wording improvements and typo fixes. (check-in: 5cbf9f2c9d user: drh tags: trunk)
19:07
Update the size and speed spreadsheet. Simplifications to text in the CLI document. (check-in: 2fac94a5a3 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
  global nChng aChng xrefChng
  set aChng($nChng) [list $date $desc $options]
  set xrefChng($date) $nChng
  incr nChng
}

chng {2018-02-00 (3.22.0)} {
<li> The output of [sqlite3_trace_v2()] now shows each individual SQL statements
     run within a trigger.
<li> Add the ability to read from [WAL mode] databases even if the application 
     lacks write permission on the database and its containing directory, as long as
     the -shm and -wal files exist in that directory.
<li> Added the [rtreecheck()] scalar SQL function to the [R-Tree extension].
<li> Added the [sqlite3_vtab_nochange()] and [sqlite3_value_nochange()] interfaces
     to help virtual table implementations optimize UPDATE operations.







|







18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  global nChng aChng xrefChng
  set aChng($nChng) [list $date $desc $options]
  set xrefChng($date) $nChng
  incr nChng
}

chng {2018-02-00 (3.22.0)} {
<li> The output of [sqlite3_trace_v2()] now shows each individual SQL statement
     run within a trigger.
<li> Add the ability to read from [WAL mode] databases even if the application 
     lacks write permission on the database and its containing directory, as long as
     the -shm and -wal files exist in that directory.
<li> Added the [rtreecheck()] scalar SQL function to the [R-Tree extension].
<li> Added the [sqlite3_vtab_nochange()] and [sqlite3_value_nochange()] interfaces
     to help virtual table implementations optimize UPDATE operations.
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
  <li> The [https://sqlite.org/src/file/ext/misc/appendvfs.c|Append VFS] is a
       [VFS shim] that allows an SQLite database to be appended to some other
       file.  This allows (for example) a database to be appended to an
       executable that then opens and reads the database.
</ol>
<li> Query planner enhancements:
<ol type='a'>
  <li> The optimization of using an index to quickly compute an
       aggregate min() or max() is extended to work with
       [indexes on expressions].
  <li> The decision of whether to implement a FROM-clause subquery

       as a co-routine or using query flattening now considers whether
       the result set of the outer query is "complex" (if it
       contains functions or expression subqueries).  A complex result
       set biases the decision toward the use of co-routines.
  <li> Avoiding query plans that use indexes with unknown
       collating functions.
  <li> Omit unused LEFT JOINs even if they are not the right-most joins
       of a query.
</ol>
<li> Other performance optimizations:
<ol type='a'>
  <li> A smaller and faster implementation of text to floating-point
       conversion subroutine: sqlite3AtoF().
  <li> The [Lemon parser generator] creates a faster parser.
  <li> Use the strcspn() C-library routine to speed up the LIKE and







|



>
|



|

|
|







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
  <li> The [https://sqlite.org/src/file/ext/misc/appendvfs.c|Append VFS] is a
       [VFS shim] that allows an SQLite database to be appended to some other
       file.  This allows (for example) a database to be appended to an
       executable that then opens and reads the database.
</ol>
<li> Query planner enhancements:
<ol type='a'>
  <li> The optimization that uses an index to quickly compute an
       aggregate min() or max() is extended to work with
       [indexes on expressions].
  <li> The decision of whether to implement a FROM-clause subquery
       as a co-routine or using [query flattener|query flattening]
       now considers whether
       the result set of the outer query is "complex" (if it
       contains functions or expression subqueries).  A complex result
       set biases the decision toward the use of co-routines.
  <li> The planner avoids query plans that use indexes with unknown
       collating functions.
  <li> The planner omits unused LEFT JOINs even if they are not the 
       right-most joins of a query.
</ol>
<li> Other performance optimizations:
<ol type='a'>
  <li> A smaller and faster implementation of text to floating-point
       conversion subroutine: sqlite3AtoF().
  <li> The [Lemon parser generator] creates a faster parser.
  <li> Use the strcspn() C-library routine to speed up the LIKE and
Changes to pages/cli.in.
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739

<tclscript>DisplayCode {
sqlite> (((.excel)))
sqlite> (((SELECT * FROM tab;)))
}</tclscript>

<p>
The code above writes the output of the query as CSV into a temporary
file, invokes the default handler for CSV files (usually the preferred
spreadsheet program such as Excel or LibreOffice), then deletes the
temporary file.  This is essentially a short-hand method of doing
the sequence of ".csv", ".once", and ".system" commands described above.

<p>
The ".excel" command is really an alias for ".once -x".  The -x option







|







725
726
727
728
729
730
731
732
733
734
735
736
737
738
739

<tclscript>DisplayCode {
sqlite> (((.excel)))
sqlite> (((SELECT * FROM tab;)))
}</tclscript>

<p>
The command above writes the output of the query as CSV into a temporary
file, invokes the default handler for CSV files (usually the preferred
spreadsheet program such as Excel or LibreOffice), then deletes the
temporary file.  This is essentially a short-hand method of doing
the sequence of ".csv", ".once", and ".system" commands described above.

<p>
The ".excel" command is really an alias for ".once -x".  The -x option