Documentation Source Text

Check-in [44e1ce5453]
Login

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

Overview
Comment:Version 3.31.0
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk | release | version-3.31.0
Files: files | file ages | folders
SHA3-256: 44e1ce54539a5c6e638bab34addcab5779bf7866ed209caaccf6998daa8b907c
User & Date: drh 2020-01-22 19:04:48.410
Context
2020-01-26
18:03
Fix two documentation typos. (check-in: a7a8ecb98d user: drh tags: trunk)
2020-01-22
19:04
Version 3.31.0 (check-in: 44e1ce5453 user: drh tags: trunk, release, version-3.31.0)
17:53
Add news for the 3.31.0 release. (check-in: 0e92e9f7c1 user: drh tags: trunk)
2020-01-08
11:12
Further clarification that collating functions only work on string values. (Leaf check-in: ba755cbcaa user: drh tags: branch-3.30)
Changes
Unified Diff Ignore Whitespace Patch
Changes to pages/changes.in.
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
proc chng {date desc {options {}}} {
  global nChng aChng xrefChng
  set aChng($nChng) [list $date $desc $options]
  set xrefChng($date) $nChng
  incr nChng
}

chng {2020-01-31 (3.31.0)} {
<li>Add support for [generated columns].
<li>Add the [sqlite3_hard_heap_limit64()] interface and the corresponding
    [PRAGMA hard_heap_limit] command.
<li>Enhance the [function_list pragma] to show the number of arguments on each
    function, the type of function (scalar, aggregate, window), and the function
    property flags [SQLITE_DETERMINISTIC], [SQLITE_DIRECTONLY],
    [SQLITE_INNOCUOUS], and/or [SQLITE_SUBTYPE].







|







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

chng {2020-01-22 (3.31.0)} {
<li>Add support for [generated columns].
<li>Add the [sqlite3_hard_heap_limit64()] interface and the corresponding
    [PRAGMA hard_heap_limit] command.
<li>Enhance the [function_list pragma] to show the number of arguments on each
    function, the type of function (scalar, aggregate, window), and the function
    property flags [SQLITE_DETERMINISTIC], [SQLITE_DIRECTONLY],
    [SQLITE_INNOCUOUS], and/or [SQLITE_SUBTYPE].
56
57
58
59
60
61
62



63
64
65
66
67
68
69
70
71
72
    heap memory usage to 48KB per connection, down from 120KB.
<li>The [legacy_file_format pragma] is deactivated.  It is now a no-op.  In its place,
    the [SQLITE_DBCONFIG_LEGACY_FILE_FORMAT] option to [sqlite3_db_config()] is
    provided.  The legacy_file_format pragma is deactivated because (1) it is
    rarely useful and (2) it is incompatible with [VACUUM] in schemas that have
    tables with both generated columns and descending indexes.
    Ticket [https://www.sqlite.org/src/info/6484e6ce678fffab|6484e6ce678fffab]



}

chng {2019-10-11 (3.30.1)} {
<li> Fix a bug in the [query flattener] that might cause a segfault
for nested queries that use the new 
[FILTER clause on aggregate functions].
Ticket [https://www.sqlite.org/src/info/1079ad19993d13fa|1079ad19993d13fa]
<li> Cherrypick fixes for other obscure problems found since the 3.30.0
     release
<p><b>Hashes:</b>







>
>
>


|







56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
    heap memory usage to 48KB per connection, down from 120KB.
<li>The [legacy_file_format pragma] is deactivated.  It is now a no-op.  In its place,
    the [SQLITE_DBCONFIG_LEGACY_FILE_FORMAT] option to [sqlite3_db_config()] is
    provided.  The legacy_file_format pragma is deactivated because (1) it is
    rarely useful and (2) it is incompatible with [VACUUM] in schemas that have
    tables with both generated columns and descending indexes.
    Ticket [https://www.sqlite.org/src/info/6484e6ce678fffab|6484e6ce678fffab]
<p><b>Hashes:</b>
<li>SQLITE_SOURCE_ID: 2020-01-22 18:38:59 f6affdd41608946fcfcea914ece149038a8b25a62bbe719ed2561c649b86d824
<li>SHA3-256 for sqlite3.c: a5fca0b9f8cbf80ac89b97193378c719d4af4b7d647729d8df9c0c0fca7b1388
}

chng {2019-10-10 (3.30.1)} {
<li> Fix a bug in the [query flattener] that might cause a segfault
for nested queries that use the new 
[FILTER clause on aggregate functions].
Ticket [https://www.sqlite.org/src/info/1079ad19993d13fa|1079ad19993d13fa]
<li> Cherrypick fixes for other obscure problems found since the 3.30.0
     release
<p><b>Hashes:</b>
Changes to pages/chronology.in.
27
28
29
30
31
32
33
34
35

36
37
38
39
40
41
42
#    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.31.0
18db032d05|2019-10-11|Version 3.30.1

c20a353364|2019-10-04|Version 3.30.0
fc82b73eaa|2019-07-10|Version 3.29.0
884b4b7e50|2019-04-16|Version 3.28.0
bd49a8271d|2019-02-25|Version 3.27.2
0eca3dd3d3|2019-02-08|Version 3.27.1
97744701c3|2019-02-07|Version 3.27.0
bf8c1b2b7a|2018-12-01|Version 3.26.0







|

>







27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#    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 {
f6affdd416|2020-01-22|Version 3.31.0
18db032d05|2019-10-11|Version 3.30.1
18db032d05|2019-10-10|Version 3.30.1
c20a353364|2019-10-04|Version 3.30.0
fc82b73eaa|2019-07-10|Version 3.29.0
884b4b7e50|2019-04-16|Version 3.28.0
bd49a8271d|2019-02-25|Version 3.27.2
0eca3dd3d3|2019-02-08|Version 3.27.1
97744701c3|2019-02-07|Version 3.27.0
bf8c1b2b7a|2018-12-01|Version 3.26.0
Changes to pages/datatype3.in.
609
610
611
612
613
614
615




616
617
618
619
620
621
622

<li>^(<b>RTRIM</b> - The same as binary, except that trailing space
     characters are ignored.)^</li>
</ul>

<p>An application can register additional collating functions using
the [sqlite3_create_collation()] interface.</p>





<h2>Assigning Collating Sequences from SQL</h2>

<p>
^Every column of every
table has an associated collating function.  ^If no collating function
is explicitly defined, then the collating function defaults to BINARY.







>
>
>
>







609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626

<li>^(<b>RTRIM</b> - The same as binary, except that trailing space
     characters are ignored.)^</li>
</ul>

<p>An application can register additional collating functions using
the [sqlite3_create_collation()] interface.</p>

<p>Collating functions only matter when comparing string values.
Numeric values are always compared numerically, and BLOBs are always
compared byte-by-byte using memcmp().</p>

<h2>Assigning Collating Sequences from SQL</h2>

<p>
^Every column of every
table has an associated collating function.  ^If no collating function
is explicitly defined, then the collating function defaults to BINARY.
Changes to pages/download.in.
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
    source code and binaries of SQLite for .NET.</td></tr>
  "
}

Heading {Alternative Source Code Formats} old

Product {YEAR/sqlite-src-VVV.zip} {
  Snapshop of the complete (raw) source tree for SQLite version VERSION.
  See [How To Compile SQLite] for usage details.
}

Product {YEAR/sqlite-preprocessed-VVV.zip} {
  Preprocessed C sources for SQLite version VERSION.
}








|







363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
    source code and binaries of SQLite for .NET.</td></tr>
  "
}

Heading {Alternative Source Code Formats} old

Product {YEAR/sqlite-src-VVV.zip} {
  Snapshot of the complete (raw) source tree for SQLite version VERSION.
  See [How To Compile SQLite] for usage details.
}

Product {YEAR/sqlite-preprocessed-VVV.zip} {
  Preprocessed C sources for SQLite version VERSION.
}

Changes to pages/eqp.in.
35
36
37
38
39
40
41
42
43
44
45



46
47
48
49
50
51
52
In raw form, as returned by [sqlite3_step()], each node of the tree
consists of four fields:  An integer node id, an integer parent id,
an auxiliary integer field that is not currently used, and a description
of the node.
The entire tree is therefore a table with four columns and zero or more
rows.
The [command-line shell] will usually intercept this table and renders
it as an ASCII-art graph for more convenient viewing.  To defeat the
shells automatic graph rendering, simply include extra white space
in between any of the "EXPLAIN", "QUERY", and/or "PLAN" keywords and
the output will appear in a (less helpful) tabular format.




<p>One can also set the [CLI] into automatic EXPLAIN QUERY PLAN mode
using the ".eqp on" command:

<codeblock>
     sqlite&gt; .eqp on
</codeblock>







|
|
<
|
>
>
>







35
36
37
38
39
40
41
42
43

44
45
46
47
48
49
50
51
52
53
54
In raw form, as returned by [sqlite3_step()], each node of the tree
consists of four fields:  An integer node id, an integer parent id,
an auxiliary integer field that is not currently used, and a description
of the node.
The entire tree is therefore a table with four columns and zero or more
rows.
The [command-line shell] will usually intercept this table and renders
it as an ASCII-art graph for more convenient viewing.  To disable the
shells automatic graph rendering and to display EXPLAIN QUERY PLAN

output in its tabular format, run the command ".explain off" to set
the "EXPLAIN formatting mode" to off.  To restore automatic graph rendering,
run ".explain auto".  You can see the current "EXPLAIN formatting mode" 
setting using the ".show" command.

<p>One can also set the [CLI] into automatic EXPLAIN QUERY PLAN mode
using the ".eqp on" command:

<codeblock>
     sqlite&gt; .eqp on
</codeblock>
Changes to pages/news.in.
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  }
  hd_puts "<h3>$date - $title</h3>"
  regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt
  hd_resolve "<blockquote>$txt</blockquote>"
  hd_puts "<hr width=\"50%\">"
}

newsitem {2020-01-23} {Release 3.31.0} {
Version 3.31.0 is an ordinary maintenance release of SQLite.
This release features the ability to define
[generated columns] for tables as well as many other enhancements.
See the [version 3.31.0|change log] for additional information.
}

newsitem {2019-10-11} {Release 3.30.1} {







|







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  }
  hd_puts "<h3>$date - $title</h3>"
  regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt
  hd_resolve "<blockquote>$txt</blockquote>"
  hd_puts "<hr width=\"50%\">"
}

newsitem {2020-01-22} {Release 3.31.0} {
Version 3.31.0 is an ordinary maintenance release of SQLite.
This release features the ability to define
[generated columns] for tables as well as many other enhancements.
See the [version 3.31.0|change log] for additional information.
}

newsitem {2019-10-11} {Release 3.30.1} {