Documentation Source Text

Check-in [a897222d15]
Login

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

Overview
Comment:Update the change log for the 3.22.0 release.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: a897222d1580aee38de7877889f027f7c85641f7c292ae574fad95c8ba815c2c
User & Date: drh 2018-01-04 03:33:38
Context
2018-01-04
16:33
Add a documentation page that overviews Lemon, its history, and its importance to SQLite. check-in: 106ae9b8df user: drh tags: trunk
03:33
Update the change log for the 3.22.0 release. check-in: a897222d15 user: drh tags: trunk
2018-01-01
17:54
Add documentation for the introspection pragmas that were really added in version 3.20.0 check-in: 73444ff7b8 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to pages/changes.in.

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

chng {2018-01-04 (3.22.0)} {






<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 bias the decision toward the use of co-routines.




</ol>

























}

chng {2017-10-24 (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.







|
>
>
>
>
>
>
|









>
>
>
>

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







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
72
73
74
75
76
77
proc chng {date desc {options {}}} {
  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()] 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> 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 bias 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
       GLOB operators.
str</ol>
<li> Improvements to the [command-line shell]:
<ol type='a'>
  <li> The ".schema" command shows the structure of virtual tables
       inside of a comment.
  <li> Added the ".expert" command
  <li> Added the ".eqp trigger" variant of the ".eqp" command
  <li> Enhance the ".lint fkey-indexes" command so that it works with
       [WITHOUT ROWID] tables.
</ol>
<li> Added the [https://sqlite.org/src/file/ext/misc/btreeinfo.c|sqlite_btreeinfo]
     eponymous virtual table for introspecting and estimating the sizes of
     the btrees in a database.
<li> Enhance the [SQLITE_ENABLE_UPDATE_DELETE_LIMIT] compile-time option so
     that it works for [WITHOUT ROWID] tables.
<li> Provide the sqlite_unsupported_offset(X) SQL function that returns
     the byte offset into the database file to the beginning of the record
     holding value X, when compiling with -DSQLITE_ENABLE_OFFSET_SQL_FUNC.
}

chng {2017-10-24 (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.

Changes to pages/rtree.in.

561
562
563
564
565
566
567



















<p>
^Two or more MATCH operators are allowed in the same WHERE clause, as long
as they are connected by AND operators.  However,
the R*Tree query engine only contains a single priority queue.  ^The priority
assigned to each node in the search is the lowest priority returned by any
of the MATCH operators.

























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585

<p>
^Two or more MATCH operators are allowed in the same WHERE clause, as long
as they are connected by AND operators.  However,
the R*Tree query engine only contains a single priority queue.  ^The priority
assigned to each node in the search is the lowest priority returned by any
of the MATCH operators.

<h1>Implementation Details</h1>

<p>
The following sections describe some low-level details of the R*Tree implementation,
that might be useful for trouble-shooting or performance analysis.

<h2>Shadow Tables</h2>

<p><i>TBD</i>

<tcl>hd_fragment rtreecheck rtreecheck()</tcl>
<h2>Integrity Check using the rtreecheck() SQL function</h2>

<p>The scalar SQL function rtreecheck(R) or rtreecheck(S,R) runs an
integrity check on the rtree table named R containing in database S.
The function returns a human-language description of any problems found,
or the string 'ok' if everything is ok.