Documentation Source Text
Check-in [7417675f15d3edfa076de7c652f9523fe1870c5a]
Not logged in

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

Overview
SHA1 Hash:7417675f15d3edfa076de7c652f9523fe1870c5a
Date: 2012-10-09 16:18:20
User: drh
Comment:Add documentation of recent changes.
Tags And Properties
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to pages/changes.in

37
38
39
40
41
42
43





























44
45
46
47
48
49
50
      <a href="http://www.sqlite.org/src/timeline">
      http://www.sqlite.org/src/timeline</a>.</p>
    }
    hd_close_aux
    hd_enable_main 1
  }
}






























chng {2012-10-04 (3.7.14.1)} {
<li>Fix a bug (ticket 
<a href="www.sqlite.org/src/tktview/d02e1406a58ea02d">&#91;d02e1406a58ea02d]&#93;</a>)
that causes a segfault on a LEFT JOIN that includes an OR in the ON clause.
<li>Work around a bug in the optimizer in the VisualStudio-2012 compiler that
causes invalid code to be generated when compiling SQLite on ARM.







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







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
78
79
      <a href="http://www.sqlite.org/src/timeline">
      http://www.sqlite.org/src/timeline</a>.</p>
    }
    hd_close_aux
    hd_enable_main 1
  }
}

chng {2012-12-12 (3.7.15)} {
<li>Added the [sqlite3_errstr()] interface.
<li>Avoid invoking the [sqlite3_trace()] callback multiple times when a
    statement is automatically reprepared due to [SQLITE_SCHEMA] errors.
<li>Enhance IN operator processing to make use of indices with numeric
    affinities.
<li>Do full-table scans using covering indices when possible, under the
    theory that an index will be smaller and hence can be scanned with
    less I/O.
<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>Enhance the query optimizer so that ORDER BY clauses are more aggressively
    optimized, especially in joins where various terms of the ORDER BY clause
    come from separate tables of the join.
<li>Added the [SQLITE_FCNTL_BUSYHANDLER] file control, used to allow VFS
    implementations to get access to the busy handler callback.
<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.
}

chng {2012-10-04 (3.7.14.1)} {
<li>Fix a bug (ticket 
<a href="www.sqlite.org/src/tktview/d02e1406a58ea02d">&#91;d02e1406a58ea02d]&#93;</a>)
that causes a segfault on a LEFT JOIN that includes an OR in the ON clause.
<li>Work around a bug in the optimizer in the VisualStudio-2012 compiler that
causes invalid code to be generated when compiling SQLite on ARM.

Changes to pages/compile.in

321
322
323
324
325
326
327












328
329
330
331
332
333
334

</tcl>

<a name="enablefeatures"></a>
<h2>1.4 Options To Enable Features Normally Turned Off</h2>

<tcl>












COMPILE_OPTION {SQLITE_ENABLE_8_3_NAMES=<i>&lt;1 or 2&gt;</i>} {
  If this C-preprocessor macro is defined, then extra code is
  included that allows SQLite to function on a filesystem that
  only support 8+3 filenames.  If the value of this macro is 1,
  then the default behavior is to continue to use long filenames and
  to only use 8+3 filenames if the 
  database connection is opened using [URI filenames] with







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







321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346

</tcl>

<a name="enablefeatures"></a>
<h2>1.4 Options To Enable Features Normally Turned Off</h2>

<tcl>
COMPILE_OPTION {SQLITE_ALLOW_COVERING_INDEX_SCAN=<i>&lt;0 or 1&gt;</i>} {
  This C-preprocess macro determines the default setting of the
  [SQLITE_CONFIG_COVERING_INDEX_SCAN] configuration setting.  It defaults
  to 1 (on) which means that covering indices are used for full table
  scans where possible, in order to reduce I/O and improve performance.
  However, the use of a covering indice for a full scan will cause results
  to appear in a different order from legacy, which could cause some
  (incorrectly-coded) legacy applications to break.  Hence, the covering
  index scan option can be disabled at compile-time on systems that what
  to minimize their risk of exposing errors in legacy applications.
}

COMPILE_OPTION {SQLITE_ENABLE_8_3_NAMES=<i>&lt;1 or 2&gt;</i>} {
  If this C-preprocessor macro is defined, then extra code is
  included that allows SQLite to function on a filesystem that
  only support 8+3 filenames.  If the value of this macro is 1,
  then the default behavior is to continue to use long filenames and
  to only use 8+3 filenames if the 
  database connection is opened using [URI filenames] with

Changes to pages/index.in

83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101

</td>
<td width="20"></td><td bgcolor="#044a64" width="1"></td><td width="20"></td>
<td valign="top">
<h3>Current Status</h3>

<p><ul>
<li><a href="releaselog/3_7_14_1.html">Version 3.7.14.1</a>
of SQLite is recommended for all new development.
Upgrading from version 3.7.6.3, 3.7.7, 3.7.7.1, 3.7.8, 3.7.9, 3.7.11,
3.7.12, 3.7.12.1, or 3.7.13 is optional.
Upgrading from all other SQLite versions (including version 3.7.14)
is recommended.</li>
</ul></p>

<h3>Common Links</h3>

<p><ul>
<li> <a href="features.html">Features</a> </li>







|


|
|







83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101

</td>
<td width="20"></td><td bgcolor="#044a64" width="1"></td><td width="20"></td>
<td valign="top">
<h3>Current Status</h3>

<p><ul>
<li><a href="releaselog/3_7_15.html">Version 3.7.15</a>
of SQLite is recommended for all new development.
Upgrading from version 3.7.6.3, 3.7.7, 3.7.7.1, 3.7.8, 3.7.9, 3.7.11,
3.7.12, 3.7.12.1, 3.7.13, 3.7.14.1 is optional.
Upgrading from all other SQLite versions
is recommended.</li>
</ul></p>

<h3>Common Links</h3>

<p><ul>
<li> <a href="features.html">Features</a> </li>

Changes to pages/pragma.in

179
180
181
182
183
184
185









186
187
188
189
190
191
192
    "incremental" back to "none" always requires running [VACUUM] even
    on an empty database.
    </p>

    <p>^When the auto_vacuum pragma is invoked with no arguments, it
    returns the current auto_vacuum mode.</p>
}










Pragma cache_size {
    <p>^(<b>PRAGMA cache_size;
       <br>PRAGMA cache_size = </b><i>pages</i><b>;
       <br>PRAGMA cache_size = -</b><i>kibibytes</i><b>;</b></p>
    <p>Query or change the suggested maximum number of database disk pages
    that SQLite will hold in memory at once per open database file.)^  Whether







>
>
>
>
>
>
>
>
>







179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
    "incremental" back to "none" always requires running [VACUUM] even
    on an empty database.
    </p>

    <p>^When the auto_vacuum pragma is invoked with no arguments, it
    returns the current auto_vacuum mode.</p>
}

Pragma busy_timeout {
    <p>^(<b>PRAGMA busy_timeout;
         <br>PRAGMA busy_timeout = </b><i>milliseconds</i><b>;</b></p>
    <p>Query or change the setting of the [sqlite3_busy_timeout | busy timeout].
    This pragma is an alternative to the [sqlite3_busy_timeout()] C-language
    interface which is made available as a pragma for use with language
    bindings that do not provide direct access to [sqlite3_busy_timeout()].
}

Pragma cache_size {
    <p>^(<b>PRAGMA cache_size;
       <br>PRAGMA cache_size = </b><i>pages</i><b>;
       <br>PRAGMA cache_size = -</b><i>kibibytes</i><b>;</b></p>
    <p>Query or change the suggested maximum number of database disk pages
    that SQLite will hold in memory at once per open database file.)^  Whether