Documentation Source Text

Check-in [02ece32458]
Login

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

Overview
Comment:Add documentation for the SQLITE_DIRECT_OVERFLOW_READ compile-time option.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 02ece32458d307dbdfb8999a433fe6319ffa9a00
User & Date: drh 2011-10-21 18:36:15.589
Context
2011-10-31
17:20
Update changes and news in preparation for the 3.7.9 release. (check-in: b78d9767b2 user: drh tags: trunk)
2011-10-21
18:36
Add documentation for the SQLITE_DIRECT_OVERFLOW_READ compile-time option. (check-in: 02ece32458 user: drh tags: trunk)
16:42
Documentation updates for the round() function. (check-in: 81fe64736e user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to pages/changes.in.
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

66
67
68
69
70
71
72
    to the [sqlite3_db_status()] interface.
<li>Removed support for [SQLITE_ENABLE_STAT2], replacing it with the much
    more capable [SQLITE_ENABLE_STAT3] option.
<li>Enhancements to the sqlite3_analyzer utility program, including the
    --pageinfo and --stats options and support for multiplexed databases.
<li>Enhance the [sqlite3_data_count()] interface so that it can be used to
    determine if SQLITE_DONE has been seen on the prepared statement.
<li>Added the SQLITE_FCNTL_OVERWRITE file-control by which the SQLite core
    indicates to the VFS that the current transaction will overwrite the
    entire database file.
<li>Increase the default [lookaside memory allocator] allocation size from
    100 to 128 bytes.
<li>Enhanced the query planner so that it can factor terms in and out of
    OR expressions in the WHERE clause in an effort to find better indices.
<li>Added the SQLITE_DIRECT_OVERFLOW_READ compile-time option, causing overflow
    pages to be read directly from the database file, bypassing the page cache.

<li>Remove limits on the magnitude of precision and width value in the
    format specifiers of the [sqlite3_mprintf()] family of string rendering
    routines.
<li>Fix a bug that prevent [ALTER TABLE | ALTER TABLE ... RENAME] from working
    on some virtual tables in a database with a UTF16 encoding.
<li>Fix a bug in ASCII-to-float conversion that causes slow performance and
    incorrect results when converting numbers with ridiculously large exponents.







|






|
|
>







50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
    to the [sqlite3_db_status()] interface.
<li>Removed support for [SQLITE_ENABLE_STAT2], replacing it with the much
    more capable [SQLITE_ENABLE_STAT3] option.
<li>Enhancements to the sqlite3_analyzer utility program, including the
    --pageinfo and --stats options and support for multiplexed databases.
<li>Enhance the [sqlite3_data_count()] interface so that it can be used to
    determine if SQLITE_DONE has been seen on the prepared statement.
<li>Added the [SQLITE_FCNTL_OVERWRITE] file-control by which the SQLite core
    indicates to the VFS that the current transaction will overwrite the
    entire database file.
<li>Increase the default [lookaside memory allocator] allocation size from
    100 to 128 bytes.
<li>Enhanced the query planner so that it can factor terms in and out of
    OR expressions in the WHERE clause in an effort to find better indices.
<li>Added the [SQLITE_DIRECT_OVERFLOW_READ] compile-time option, causing
    [overflow pages] to be read directly from the database file, 
    bypassing the [page cache].
<li>Remove limits on the magnitude of precision and width value in the
    format specifiers of the [sqlite3_mprintf()] family of string rendering
    routines.
<li>Fix a bug that prevent [ALTER TABLE | ALTER TABLE ... RENAME] from working
    on some virtual tables in a database with a UTF16 encoding.
<li>Fix a bug in ASCII-to-float conversion that causes slow performance and
    incorrect results when converting numbers with ridiculously large exponents.
Changes to pages/compile.in.
188
189
190
191
192
193
194








195
196
197
198
199
200
201
}

COMPILE_OPTION {SQLITE_CASE_SENSITIVE_LIKE} {
  If this option is present, then the built-in [LIKE] operator will be
  case sensitive.  This same effect can be achieved at run-time using
  the [case_sensitive_like pragma].
}









COMPILE_OPTION {SQLITE_HAVE_ISNAN} {
  If this option is present, then SQLite will use the isnan() function from
  the system math library.  Without this option (the default behavior)
  SQLite uses its own internal implementation of isnan().  SQLite uses
  its own internal isnan() implementation by default because of past
  problems with system isnan() functions.







>
>
>
>
>
>
>
>







188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
}

COMPILE_OPTION {SQLITE_CASE_SENSITIVE_LIKE} {
  If this option is present, then the built-in [LIKE] operator will be
  case sensitive.  This same effect can be achieved at run-time using
  the [case_sensitive_like pragma].
}

COMPILE_OPTION {SQLITE_DIRECT_OVERFLOW_READ} {
  When this option is present, content contained in
  [overflow pages] of the database file is read directly from disk,
  bypassing the [page cache], during read transactions.  In applications
  that do a lot of reads of large BLOBs, this option might improve read
  performance.
}

COMPILE_OPTION {SQLITE_HAVE_ISNAN} {
  If this option is present, then SQLite will use the isnan() function from
  the system math library.  Without this option (the default behavior)
  SQLite uses its own internal implementation of isnan().  SQLite uses
  its own internal isnan() implementation by default because of past
  problems with system isnan() functions.
Changes to pages/fileformat2.in.
734
735
736
737
738
739
740

741
742
743
744
745
746
747
is on the b-tree page that the record header can usually be accessed
without consulting an overflow page.  In hindsight, the designers of
the SQLite b-tree logic realize that these thresholds could have been
made much simpler.  However, the computations cannot be changed
without resulting in an incompatible file format.  And the current computations
work well, even if they are a little complex.</p>


<h3>1.6 Cell Payload Overflow Pages</h3>

<p>^When the payload of a b-tree cell is too large for the b-tree page,
the surplus is spilled onto overflow pages.  ^Overflow pages form a linked
list.  ^The first four bytes of each overflow page are a big-endian
integer which is the page number of the next page in the chain, or zero
for the final page in the chain.  ^The fifth byte through the last usable







>







734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
is on the b-tree page that the record header can usually be accessed
without consulting an overflow page.  In hindsight, the designers of
the SQLite b-tree logic realize that these thresholds could have been
made much simpler.  However, the computations cannot be changed
without resulting in an incompatible file format.  And the current computations
work well, even if they are a little complex.</p>

<tcl>hd_fragment ovflpgs {overflow page} {overflow pages}</tcl>
<h3>1.6 Cell Payload Overflow Pages</h3>

<p>^When the payload of a b-tree cell is too large for the b-tree page,
the surplus is spilled onto overflow pages.  ^Overflow pages form a linked
list.  ^The first four bytes of each overflow page are a big-endian
integer which is the page number of the next page in the chain, or zero
for the final page in the chain.  ^The fifth byte through the last usable