Documentation Source Text
Check-in [50fc706041]
Not logged in

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

Overview
SHA1 Hash:50fc706041b294c333fe37bf6757a543730b280a
Date: 2012-12-03 20:10:10
User: drh
Comment:Tweaks to the change log in preparation for 3.7.15.
Tags And Properties
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to pages/asyncvfs.in

1
2
3
4










5
6
7
8
9
10
11
<title>An Asynchronous I/O Module For SQLite</title>
<tcl>hd_keywords {asynchronous VFS} {asynchronous I/O backend}</tcl>
<h1 align="center">An Asynchronous I/O Module For SQLite</h1>











<p>Normally, when SQLite writes to a database file, it waits until the write
operation is finished before returning control to the calling application.
Since writing to the file-system is usually very slow compared with CPU
bound operations, this can be a performance bottleneck. The asynchronous I/O
backend is an extension that causes SQLite to perform all write requests
using a separate thread running in the background. Although this does not
reduce the overall system resources (CPU, disk bandwidth etc.), it does




>
>
>
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<title>An Asynchronous I/O Module For SQLite</title>
<tcl>hd_keywords {asynchronous VFS} {asynchronous I/O backend}</tcl>
<h1 align="center">An Asynchronous I/O Module For SQLite</h1>

<hr>
<p><font size=+1><b>NOTE:</b> 
[WAL mode] with [PRAGMA synchronous] set to NORMAL avoids calls to
fsync() during transaction commit and only invokes fsync() during
a [checkpoint] operation.  The use of [WAL mode] largely obviates the
need for this asynchronous I/O module.  Hence, this module is no longer
supported.  The source code continues to exist in the SQLite source tree,
but it is not a part of any standard build and is no longer maintained.
This documentation is retained for historical reference.</font></p><hr>

<p>Normally, when SQLite writes to a database file, it waits until the write
operation is finished before returning control to the calling application.
Since writing to the file-system is usually very slow compared with CPU
bound operations, this can be a performance bottleneck. The asynchronous I/O
backend is an extension that causes SQLite to perform all write requests
using a separate thread running in the background. Although this does not
reduce the overall system resources (CPU, disk bandwidth etc.), it does

Changes to pages/changes.in

60
61
62
63
64
65
66

67
68


69
70
71
72
73
74
75
<li>Enhancements the command-line shell:
    <ul>
    <li>Added the ".print" command
    <li>Negative numbers in the ".width" command cause right-alignment
    <li>Add the ".wheretrace" command when compiled with SQLITE_DEBUG
    </ul>
<li>Added the [busy_timeout pragma].

<li>Added the [SQLITE_FCNTL_BUSYHANDLER] file control, used to allow VFS
    implementations to get access to the busy handler callback.


<li>Enhanced support for QNX.
<li>Work around an optimizer bug in the MSVC compiler when targeting ARM.
<li>Fix various concurrency problems in shared-cache mode.
<li>Bug fix: Avoid a deadlock or crash if the [backup API], [shared cache],
    and the SQLite Encryption Extension are all used at once.
<li>Bug fix: SQL functions created using the TCL interface honor the
    "nullvalue" setting.







>


>
>







60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<li>Enhancements the command-line shell:
    <ul>
    <li>Added the ".print" command
    <li>Negative numbers in the ".width" command cause right-alignment
    <li>Add the ".wheretrace" command when compiled with SQLITE_DEBUG
    </ul>
<li>Added the [busy_timeout pragma].
<li>Added the [instr()] SQL function.
<li>Added the [SQLITE_FCNTL_BUSYHANDLER] file control, used to allow VFS
    implementations to get access to the busy handler callback.
<li>The xDelete method in the built-in [VFS | VFSes] now return
    SQLITE_IOERR_DELETE_NOENT if the file to be deleted does not exist.
<li>Enhanced support for QNX.
<li>Work around an optimizer bug in the MSVC compiler when targeting ARM.
<li>Fix various concurrency problems in shared-cache mode.
<li>Bug fix: Avoid a deadlock or crash if the [backup API], [shared cache],
    and the SQLite Encryption Extension are all used at once.
<li>Bug fix: SQL functions created using the TCL interface honor the
    "nullvalue" setting.

Changes to pages/lang.in

2072
2073
2074
2075
2076
2077
2078












2079
2080
2081
2082
2083
2084
2085
}

funcdef {ifnull(X,Y)} {} {
  ^The ifnull() function returns a copy of its first non-NULL argument, or
  NULL if both arguments are NULL.  ^Ifnull() must have exactly 2 arguments.
  ^The ifnull() function is equivalent to [coalesce()] with two arguments.
}













funcdef {hex(X)} {} {
  ^The hex() function interprets its argument as a BLOB and returns
  a string which is the upper-case hexadecimal rendering of the content of
  that blob.
}








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







2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
}

funcdef {ifnull(X,Y)} {} {
  ^The ifnull() function returns a copy of its first non-NULL argument, or
  NULL if both arguments are NULL.  ^Ifnull() must have exactly 2 arguments.
  ^The ifnull() function is equivalent to [coalesce()] with two arguments.
}

funcdef {instr(X,Y)} {} {
  ^The instr(X,Y) function finds the first occurrence of string X within 
  string Y and returns the number of prior characters plus 1, or 0 if
  X is nowhere found within Y.
  ^Or, if X and Y are both BLOBs, then instr(X,Y) returns one
  more than the number bytes prior to the first occurrence of X, or 0 if
  X does not occcur anywhere within Y.
  ^If both arguments X and Y to instr(X,Y) are non-NULL and are not BLOBs
  then both are interpreted as strings.
  ^If either X or Y are NULL in instr(X,Y) then the result is NULL.
}

funcdef {hex(X)} {} {
  ^The hex() function interprets its argument as a BLOB and returns
  a string which is the upper-case hexadecimal rendering of the content of
  that blob.
}