diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-03 05:16:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-03 05:16:43 +0000 |
commit | fd8f22aa0eaf2a7726a6db288946cd904388ac4e (patch) | |
tree | 483f8cace8e3e64c9df42cef34c474bd225209ab /www | |
parent | Adding upstream version 3.45.3. (diff) | |
download | sqlite3-fd8f22aa0eaf2a7726a6db288946cd904388ac4e.tar.xz sqlite3-fd8f22aa0eaf2a7726a6db288946cd904388ac4e.zip |
Adding upstream version 3.46.0.upstream/3.46.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'www')
68 files changed, 3297 insertions, 1632 deletions
diff --git a/www/appfunc.html b/www/appfunc.html index 998bcd0..b3167a5 100644 --- a/www/appfunc.html +++ b/www/appfunc.html @@ -524,7 +524,7 @@ where an attacker might be able to surreptiously invoke them by modifying a database schema: </p><ul> <li> In VIEWs. -</li><li> In TRIGGERSs. +</li><li> In TRIGGERs. </li><li> In CHECK constraints of a table definition. </li><li> In DEFAULT constraints of a table definition. </li><li> In the definitions of generated columns. @@ -562,5 +562,5 @@ unless you really need to and you have checked the implementation closely and are certain that it can do no harm even if it falls under the control of an attacker. </p></li></ol> -<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/appfunc.in?m=da7fbd0b40">2023-02-27 02:07:35</a> UTC </small></i></p> +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/appfunc.in?m=fe78d4d736">2024-04-16 17:22:18</a> UTC </small></i></p> diff --git a/www/c3ref/c_source_id.html b/www/c3ref/c_source_id.html index 672f75f..82e7547 100644 --- a/www/c3ref/c_source_id.html +++ b/www/c3ref/c_source_id.html @@ -121,9 +121,9 @@ antiRobotDefense(); <h2>Compile-Time Library Version Numbers</h2> </div> <blockquote><pre> -#define SQLITE_VERSION "3.45.3" -#define SQLITE_VERSION_NUMBER 3045003 -#define SQLITE_SOURCE_ID "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +#define SQLITE_VERSION "3.46.0" +#define SQLITE_VERSION_NUMBER 3046000 +#define SQLITE_SOURCE_ID "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" </pre></blockquote> <p> The <a href="../c3ref/c_source_id.html">SQLITE_VERSION</a> C preprocessor macro in the sqlite3.h header diff --git a/www/c3ref/funclist.html b/www/c3ref/funclist.html index eedbe37..5642032 100644 --- a/www/c3ref/funclist.html +++ b/www/c3ref/funclist.html @@ -121,8 +121,8 @@ antiRobotDefense(); <p>Note: Functions marked with "<small><i>(exp)</i></small>" are <a href="../c3ref/experimental.html">experimental</a> and functions whose names are <s>struck through</s> are <a href="../c3ref/experimental.html">deprecated</a>.</p> -<!-- number of functions: 290 --> -<!-- number of deprecated functions: 7 --> +<!-- number of functions: 288 --> +<!-- number of deprecated functions: 9 --> <!-- number of experimental functions: 0 --> <div class='columns' style='columns: 15em auto;'> <ul style='padding-top:0;'> @@ -291,7 +291,7 @@ are <a href="../c3ref/experimental.html">experimental</a> and functions whose na <li><a href='../c3ref/preupdate_blobwrite.html'>sqlite3_preupdate_hook</a></li> <li><a href='../c3ref/preupdate_blobwrite.html'>sqlite3_preupdate_new</a></li> <li><a href='../c3ref/preupdate_blobwrite.html'>sqlite3_preupdate_old</a></li> -<li><a href='../c3ref/profile.html'>sqlite3_profile</a></li> +<li><s>sqlite3_profile</s></li> <li><a href='../c3ref/progress_handler.html'>sqlite3_progress_handler</a></li> <li><a href='../c3ref/randomness.html'>sqlite3_randomness</a></li> <li><a href='../c3ref/free.html'>sqlite3_realloc</a></li> @@ -371,7 +371,7 @@ are <a href="../c3ref/experimental.html">experimental</a> and functions whose na <li><a href='../c3ref/threadsafe.html'>sqlite3_threadsafe</a></li> <li><a href='../c3ref/total_changes.html'>sqlite3_total_changes</a></li> <li><a href='../c3ref/total_changes.html'>sqlite3_total_changes64</a></li> -<li><a href='../c3ref/profile.html'>sqlite3_trace</a></li> +<li><s>sqlite3_trace</s></li> <li><a href='../c3ref/trace_v2.html'>sqlite3_trace_v2</a></li> <li><s>sqlite3_transfer_bindings</s></li> <li><a href='../c3ref/txn_state.html'>sqlite3_txn_state</a></li> diff --git a/www/c3ref/io_methods.html b/www/c3ref/io_methods.html index 67ddcd0..033a806 100644 --- a/www/c3ref/io_methods.html +++ b/www/c3ref/io_methods.html @@ -178,10 +178,11 @@ and not its inode needs to be synced.</p> </ul> xLock() upgrades the database file lock. In other words, xLock() moves the database file lock in the direction NONE toward EXCLUSIVE. The argument to -xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never SQLITE_LOCK_NONE. If the database file lock is already at or above the requested lock, then the call to xLock() is a no-op. xUnlock() downgrades the database file lock to either SHARED or NONE. +If the lock is already at or below the requested lock state, then the call to xUnlock() is a no-op. The xCheckReservedLock() method checks whether any database connection, either in this process or in some other process, is holding a RESERVED, diff --git a/www/c3ref/keyword_check.html b/www/c3ref/keyword_check.html index 0492f5f..f3f4d89 100644 --- a/www/c3ref/keyword_check.html +++ b/www/c3ref/keyword_check.html @@ -134,7 +134,7 @@ by enclosing in double-quotes) so as not to confuse the parser.</p> <p>The sqlite3_keyword_count() interface returns the number of distinct keywords understood by SQLite.</p> -<p>The sqlite3_keyword_name(N,Z,L) interface finds the N-th keyword and +<p>The sqlite3_keyword_name(N,Z,L) interface finds the 0-based N-th keyword and makes *Z point to that keyword expressed as UTF8 and writes the number of bytes in the keyword into *L. The string that *Z points to is not zero-terminated. The sqlite3_keyword_name(N,Z,L) routine returns diff --git a/www/c3ref/profile.html b/www/c3ref/profile.html index e92fc14..53d0efb 100644 --- a/www/c3ref/profile.html +++ b/www/c3ref/profile.html @@ -3,7 +3,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link href="../sqlite.css" rel="stylesheet"> -<title>Tracing And Profiling Functions</title> +<title>Deprecated Tracing And Profiling Functions</title> <!-- path=../ --> </head> <body> @@ -118,7 +118,7 @@ antiRobotDefense(); <!-- keywords: sqlite3_profile sqlite3_trace --> <div class=nosearch> <a href="../c3ref/intro.html"><h2>SQLite C Interface</h2></a> -<h2>Tracing And Profiling Functions</h2> +<h2>Deprecated Tracing And Profiling Functions</h2> </div> <blockquote><pre> void *sqlite3_trace(sqlite3*, diff --git a/www/c3ref/sqlite3.html b/www/c3ref/sqlite3.html index b8d2725..88a3dbf 100644 --- a/www/c3ref/sqlite3.html +++ b/www/c3ref/sqlite3.html @@ -140,7 +140,7 @@ sqlite3 object. <p>2 Destructors using this object: <a href="../c3ref/close.html">sqlite3_close()</a>, <a href="../c3ref/close.html">sqlite3_close_v2()</a></p> -<p>79 Methods using this object: +<p>77 Methods using this object: <div class='columns' style='columns: 17em auto;'> <ul style='padding-top:0;'> <li><a href='../c3ref/autovacuum_pages.html'>sqlite3_autovacuum_pages</a></li> @@ -203,7 +203,6 @@ sqlite3 object. <li><a href='../c3ref/preupdate_blobwrite.html'>sqlite3_preupdate_hook</a></li> <li><a href='../c3ref/preupdate_blobwrite.html'>sqlite3_preupdate_new</a></li> <li><a href='../c3ref/preupdate_blobwrite.html'>sqlite3_preupdate_old</a></li> -<li><a href='../c3ref/profile.html'>sqlite3_profile</a></li> <li><a href='../c3ref/progress_handler.html'>sqlite3_progress_handler</a></li> <li><a href='../c3ref/commit_hook.html'>sqlite3_rollback_hook</a></li> <li><a href='../c3ref/set_authorizer.html'>sqlite3_set_authorizer</a></li> @@ -213,7 +212,6 @@ sqlite3 object. <li><a href='../c3ref/table_column_metadata.html'>sqlite3_table_column_metadata</a></li> <li><a href='../c3ref/total_changes.html'>sqlite3_total_changes</a></li> <li><a href='../c3ref/total_changes.html'>sqlite3_total_changes64</a></li> -<li><a href='../c3ref/profile.html'>sqlite3_trace</a></li> <li><a href='../c3ref/trace_v2.html'>sqlite3_trace_v2</a></li> <li><a href='../c3ref/txn_state.html'>sqlite3_txn_state</a></li> <li><a href='../c3ref/unlock_notify.html'>sqlite3_unlock_notify</a></li> diff --git a/www/c3ref/update_hook.html b/www/c3ref/update_hook.html index 88b8e81..3df764a 100644 --- a/www/c3ref/update_hook.html +++ b/www/c3ref/update_hook.html @@ -158,6 +158,12 @@ invoked when rows are deleted using the <a href="../lang_delete.html#truncateopt The exceptions defined in this paragraph might change in a future release of SQLite.</p> +<p>Whether the update hook is invoked before or after the +corresponding change is currently unspecified and may differ +depending on the type of change. Do not rely on the order of the +hook call with regards to the final result of the operation which +triggers the hook.</p> + <p>The update hook implementation must not do anything that will modify the database connection that invoked the update hook. Any actions to modify the database connection must be deferred until after the diff --git a/www/c3ref/vtab_distinct.html b/www/c3ref/vtab_distinct.html index 16420a1..5cfef1c 100644 --- a/www/c3ref/vtab_distinct.html +++ b/www/c3ref/vtab_distinct.html @@ -152,24 +152,45 @@ is doing a GROUP BY. <li value="2"><p> If the sqlite3_vtab_distinct() interface returns 2, that means that the query planner does not need the rows returned in any particular -order, as long as rows with the same values in all "aOrderBy" columns -are adjacent. Furthermore, only a single row for each particular -combination of values in the columns identified by the "aOrderBy" field -needs to be returned. It is always ok for two or more rows with the same -values in all "aOrderBy" columns to be returned, as long as all such rows -are adjacent. The virtual table may, if it chooses, omit extra rows -that have the same value for all columns identified by "aOrderBy". -However omitting the extra rows is optional. +order, as long as rows with the same values in all columns identified +by "aOrderBy" are adjacent. Furthermore, when two or more rows +contain the same values for all columns identified by "colUsed", all but +one such row may optionally be omitted from the result. +The virtual table is not required to omit rows that are duplicates +over the "colUsed" columns, but if the virtual table can do that without +too much extra effort, it could potentially help the query to run faster. This mode is used for a DISTINCT query. <li value="3"><p> -If the sqlite3_vtab_distinct() interface returns 3, that means -that the query planner needs only distinct rows but it does need the -rows to be sorted. The virtual table implementation is free to omit -rows that are identical in all aOrderBy columns, if it wants to, but -it is not required to omit any rows. This mode is used for queries +If the sqlite3_vtab_distinct() interface returns 3, that means the +virtual table must return rows in the order defined by "aOrderBy" as +if the sqlite3_vtab_distinct() interface had returned 0. However if +two or more rows in the result have the same values for all columns +identified by "colUsed", then all but one such row may optionally be +omitted. Like when the return value is 2, the virtual table +is not required to omit rows that are duplicates over the "colUsed" +columns, but if the virtual table can do that without +too much extra effort, it could potentially help the query to run faster. +This mode is used for queries that have both DISTINCT and ORDER BY clauses. </ol></p> +<p><p>The following table summarizes the conditions under which the +virtual table is allowed to set the "orderByConsumed" flag based on +the value returned by sqlite3_vtab_distinct(). This table is a +restatement of the previous four paragraphs:</p> + +<p><table border=1 cellspacing=0 cellpadding=10 width="90%"> +<tr> +<td valign="top">sqlite3_vtab_distinct() return value +<td valign="top">Rows are returned in aOrderBy order +<td valign="top">Rows with the same value in all aOrderBy columns are adjacent +<td valign="top">Duplicates over all colUsed columns may be omitted +<tr><td>0<td>yes<td>yes<td>no +<tr><td>1<td>no<td>yes<td>no +<tr><td>2<td>no<td>yes<td>yes +<tr><td>3<td>yes<td>yes<td>yes +</table></p> + <p>For the purposes of comparing virtual table output values to see if the values are same value for sorting purposes, two NULL values are considered to be the same. In other words, the comparison operator is "IS" diff --git a/www/capi3ref.html b/www/capi3ref.html index 43cecdb..54ae2b8 100644 --- a/www/capi3ref.html +++ b/www/capi3ref.html @@ -687,8 +687,8 @@ be removed in some future release.</li> <p>Note: Functions marked with "<small><i>(exp)</i></small>" are <a href="capi3ref.html">experimental</a> and functions whose names are <s>struck through</s> are <a href="capi3ref.html">deprecated</a>.</p> -<!-- number of functions: 290 --> -<!-- number of deprecated functions: 7 --> +<!-- number of functions: 288 --> +<!-- number of deprecated functions: 9 --> <!-- number of experimental functions: 0 --> <div class='columns' style='columns: 15em auto;'> <ul style='padding-top:0;'> @@ -857,7 +857,7 @@ are <a href="capi3ref.html">experimental</a> and functions whose names are <li><a href='#sqlite3_preupdate_blobwrite'>sqlite3_preupdate_hook</a></li> <li><a href='#sqlite3_preupdate_blobwrite'>sqlite3_preupdate_new</a></li> <li><a href='#sqlite3_preupdate_blobwrite'>sqlite3_preupdate_old</a></li> -<li><a href='#sqlite3_profile'>sqlite3_profile</a></li> +<li><s>sqlite3_profile</s></li> <li><a href='#sqlite3_progress_handler'>sqlite3_progress_handler</a></li> <li><a href='#sqlite3_randomness'>sqlite3_randomness</a></li> <li><a href='#sqlite3_free'>sqlite3_realloc</a></li> @@ -937,7 +937,7 @@ are <a href="capi3ref.html">experimental</a> and functions whose names are <li><a href='#sqlite3_threadsafe'>sqlite3_threadsafe</a></li> <li><a href='#sqlite3_total_changes'>sqlite3_total_changes</a></li> <li><a href='#sqlite3_total_changes'>sqlite3_total_changes64</a></li> -<li><a href='#sqlite3_profile'>sqlite3_trace</a></li> +<li><s>sqlite3_trace</s></li> <li><a href='#sqlite3_trace_v2'>sqlite3_trace_v2</a></li> <li><s>sqlite3_transfer_bindings</s></li> <li><a href='#sqlite3_txn_state'>sqlite3_txn_state</a></li> @@ -1376,10 +1376,11 @@ and not its inode needs to be synced.</p> </ul> xLock() upgrades the database file lock. In other words, xLock() moves the database file lock in the direction NONE toward EXCLUSIVE. The argument to -xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never SQLITE_LOCK_NONE. If the database file lock is already at or above the requested lock, then the call to xLock() is a no-op. xUnlock() downgrades the database file lock to either SHARED or NONE. +If the lock is already at or below the requested lock state, then the call to xUnlock() is a no-op. The xCheckReservedLock() method checks whether any database connection, either in this process or in some other process, is holding a RESERVED, @@ -4307,6 +4308,12 @@ invoked when rows are deleted using the <a href="lang_delete.html#truncateopt">t The exceptions defined in this paragraph might change in a future release of SQLite.</p> +<p>Whether the update hook is invoked before or after the +corresponding change is currently unspecified and may differ +depending on the type of change. Do not rely on the order of the +hook call with regards to the final result of the operation which +triggers the hook.</p> + <p>The update hook implementation must not do anything that will modify the database connection that invoked the update hook. Any actions to modify the database connection must be deferred until after the @@ -4467,24 +4474,45 @@ is doing a GROUP BY. <li value="2"><p> If the sqlite3_vtab_distinct() interface returns 2, that means that the query planner does not need the rows returned in any particular -order, as long as rows with the same values in all "aOrderBy" columns -are adjacent. Furthermore, only a single row for each particular -combination of values in the columns identified by the "aOrderBy" field -needs to be returned. It is always ok for two or more rows with the same -values in all "aOrderBy" columns to be returned, as long as all such rows -are adjacent. The virtual table may, if it chooses, omit extra rows -that have the same value for all columns identified by "aOrderBy". -However omitting the extra rows is optional. +order, as long as rows with the same values in all columns identified +by "aOrderBy" are adjacent. Furthermore, when two or more rows +contain the same values for all columns identified by "colUsed", all but +one such row may optionally be omitted from the result. +The virtual table is not required to omit rows that are duplicates +over the "colUsed" columns, but if the virtual table can do that without +too much extra effort, it could potentially help the query to run faster. This mode is used for a DISTINCT query. <li value="3"><p> -If the sqlite3_vtab_distinct() interface returns 3, that means -that the query planner needs only distinct rows but it does need the -rows to be sorted. The virtual table implementation is free to omit -rows that are identical in all aOrderBy columns, if it wants to, but -it is not required to omit any rows. This mode is used for queries +If the sqlite3_vtab_distinct() interface returns 3, that means the +virtual table must return rows in the order defined by "aOrderBy" as +if the sqlite3_vtab_distinct() interface had returned 0. However if +two or more rows in the result have the same values for all columns +identified by "colUsed", then all but one such row may optionally be +omitted. Like when the return value is 2, the virtual table +is not required to omit rows that are duplicates over the "colUsed" +columns, but if the virtual table can do that without +too much extra effort, it could potentially help the query to run faster. +This mode is used for queries that have both DISTINCT and ORDER BY clauses. </ol></p> +<p><p>The following table summarizes the conditions under which the +virtual table is allowed to set the "orderByConsumed" flag based on +the value returned by sqlite3_vtab_distinct(). This table is a +restatement of the previous four paragraphs:</p> + +<p><table border=1 cellspacing=0 cellpadding=10 width="90%"> +<tr> +<td valign="top">sqlite3_vtab_distinct() return value +<td valign="top">Rows are returned in aOrderBy order +<td valign="top">Rows with the same value in all aOrderBy columns are adjacent +<td valign="top">Duplicates over all colUsed columns may be omitted +<tr><td>0<td>yes<td>yes<td>no +<tr><td>1<td>no<td>yes<td>no +<tr><td>2<td>no<td>yes<td>yes +<tr><td>3<td>yes<td>yes<td>yes +</table></p> + <p>For the purposes of comparing virtual table output values to see if the values are same value for sorting purposes, two NULL values are considered to be the same. In other words, the comparison operator is "IS" @@ -6884,9 +6912,9 @@ and EXCLUSIVE. <h2>Compile-Time Library Version Numbers</h2> </div> <blockquote><pre> -#define SQLITE_VERSION "3.45.3" -#define SQLITE_VERSION_NUMBER 3045003 -#define SQLITE_SOURCE_ID "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +#define SQLITE_VERSION "3.46.0" +#define SQLITE_VERSION_NUMBER 3046000 +#define SQLITE_SOURCE_ID "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" </pre></blockquote> <p> The <a href="#SQLITE_SOURCE_ID">SQLITE_VERSION</a> C preprocessor macro in the sqlite3.h header @@ -7779,7 +7807,7 @@ sqlite3 object. <p>2 Destructors using this object: <a href="#sqlite3_close">sqlite3_close()</a>, <a href="#sqlite3_close">sqlite3_close_v2()</a></p> -<p>79 Methods using this object: +<p>77 Methods using this object: <div class='columns' style='columns: 17em auto;'> <ul style='padding-top:0;'> <li><a href='#sqlite3_autovacuum_pages'>sqlite3_autovacuum_pages</a></li> @@ -7842,7 +7870,6 @@ sqlite3 object. <li><a href='#sqlite3_preupdate_blobwrite'>sqlite3_preupdate_hook</a></li> <li><a href='#sqlite3_preupdate_blobwrite'>sqlite3_preupdate_new</a></li> <li><a href='#sqlite3_preupdate_blobwrite'>sqlite3_preupdate_old</a></li> -<li><a href='#sqlite3_profile'>sqlite3_profile</a></li> <li><a href='#sqlite3_progress_handler'>sqlite3_progress_handler</a></li> <li><a href='#sqlite3_commit_hook'>sqlite3_rollback_hook</a></li> <li><a href='#sqlite3_set_authorizer'>sqlite3_set_authorizer</a></li> @@ -7852,7 +7879,6 @@ sqlite3 object. <li><a href='#sqlite3_table_column_metadata'>sqlite3_table_column_metadata</a></li> <li><a href='#sqlite3_total_changes'>sqlite3_total_changes</a></li> <li><a href='#sqlite3_total_changes'>sqlite3_total_changes64</a></li> -<li><a href='#sqlite3_profile'>sqlite3_trace</a></li> <li><a href='#sqlite3_trace_v2'>sqlite3_trace_v2</a></li> <li><a href='#sqlite3_txn_state'>sqlite3_txn_state</a></li> <li><a href='#sqlite3_unlock_notify'>sqlite3_unlock_notify</a></li> @@ -9701,7 +9727,7 @@ by enclosing in double-quotes) so as not to confuse the parser.</p> <p>The sqlite3_keyword_count() interface returns the number of distinct keywords understood by SQLite.</p> -<p>The sqlite3_keyword_name(N,Z,L) interface finds the N-th keyword and +<p>The sqlite3_keyword_name(N,Z,L) interface finds the 0-based N-th keyword and makes *Z point to that keyword expressed as UTF8 and writes the number of bytes in the keyword into *L. The string that *Z points to is not zero-terminated. The sqlite3_keyword_name(N,Z,L) routine returns @@ -10420,7 +10446,7 @@ regular DELETE, sqlite3_preupdate_blobwrite() returns -1.</p> <p>See also: <a href="#sqlite3_update_hook">sqlite3_update_hook()</a> </p><hr><a name="sqlite3_profile"></a> -<h2>Tracing And Profiling Functions</h2> +<h2>Deprecated Tracing And Profiling Functions</h2> </div> <blockquote><pre> void *sqlite3_trace(sqlite3*, diff --git a/www/changes.html b/www/changes.html index 8defc25..f7954ca 100644 --- a/www/changes.html +++ b/www/changes.html @@ -129,6 +129,56 @@ https://www.sqlite.org/src/timeline?t=release</a>. See the <a href="chronology.html">chronology</a> a succinct listing of releases. </p> +<a name="version_3_46_0"></a> +<h3>2024-05-23 (3.46.0)</h3><p><ol class='lessindent'> +<li> Enhance <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> in multiple ways, to make it + <a href="lang_analyze.html#pragopt">simpler to use</a>: + <ol type="a"> + <li> PRAGMA optimize automatically implements a temporary + <a href="pragma.html#pragma_analysis_limit">analysis limit</a> to prevent excess runtime + on large databases. + <li> Added the new 0x10000 bitmask option to check for updates on all tables. + <li> Automatically re-analyze tables that do not have sqlite_stat1 entries. + </ol> +<li> Enhancements to the <a href="lang_datefunc.html">date and time functions</a>: + <ol type="a"> + <li> The <a href="lang_datefunc.html#strftm">strftime() SQL function</a> now supports %G, %g, %U, and %V. + <li> New modifiers 'ceiling' and 'floor' control the algorithm used to + resolve <a href="lang_datefunc.html#dtambg">ambiguous dates</a> when shifting a date by an integer number + of months and/or years. + <li> The <a href="lang_datefunc.html#localtime">'utc' and 'localtime' modifiers</a> are now no-ops if SQLite knows + that the time is already in UTC or in the localtime, respectively. + </ol> +<li> Add support for underscore ("_") characters between digits in + <a href="lang_expr.html#litvalue">numeric literals</a>. +<li> Add the <a href="json1.html#jpretty">json_pretty()</a> SQL function. +<li> Query planner improvements: + <ol type="a"> + <li> The "VALUES-as-coroutine" optimization enables INSERT statements with + thousands of rows in the VALUES clause to parse and run in about half + the time and using about half as much memory. + <li> Allow the use of an index for queries like "SELECT count(DISTINCT col) FROM ...", + even if the index records are not smaller than the table records. + <li> Improved recognition of cases where the value of an SQL function is + constant because all its arguments are constant. + <li> Enhance the <a href="optoverview.html#pushdown">WHERE-clause push-down optimization</a> so that it is able to + push down WHERE clause terms containing uncorrelated subqueries. + </ol> +<li> Allocate additional memory from the heap for the SQL parser stack if + that stack overflows, rather than reporting a "parser stack overflow" error. +<li> JSON changes: + <ol type="a"> + <li> Allow ASCII control characters within JSON5 string literals. + <li> Fix <a href="json1.html#jptr">the -> and ->> operators</a> so that when the right-hand side operand is a string + that looks like an integer it is still treated as a string, because that is what + PostgreSQL does. + </ol> +<li> Allow large hexadecimal literals to be used as the DEFAULT value to a table column. +<p><b>Hashes:</b> +<li>SQLITE_SOURCE_ID: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e +<li>SHA3-256 for sqlite3.c: 094429ea827fcd32275e767134bc6c7b9ea394a2c5a9e653dd0a0690b2c11358 + +</ol></p> <a name="version_3_45_3"></a> <h3>2024-04-15 (3.45.3)</h3><p><ol class='lessindent'> <li> Fix a long-standing bug (going back to <a href="#version_3_24_0">version 3.24.0</a>) @@ -402,7 +452,7 @@ See the <a href="chronology.html">chronology</a> a succinct listing of releases. <ol type="a"> <li> Enable the "count-of-view" optimization by default. <li> Avoid computing unused columns in subqueries. - <li> Improvements to the <a href="optoverview.html#pushdown">push-down optimization</a>. + <li> Improvements to the <a href="optoverview.html#pushdown">WHERE-clause push-down optimization</a>. </ol> <li> Enhancements to the <a href="cli.html">CLI</a>: <ol type="a"> @@ -2757,7 +2807,7 @@ with a home-baked pie.</center> the table has one or more indexes that are able to trigger the OR optimization, but none of the indexes reference any table columns other than the INTEGER PRIMARY KEY. Ticket <a href="https://www.sqlite.org/src/info/16c9801ceba49">16c9801ceba49</a>. -<li>When checking for the WHERE-clause push-down optimization, verify that all terms +<li>When checking for the <a href="optoverview.html#pushdown">WHERE-clause push-down optimization</a>, verify that all terms of the compound inner SELECT are non-aggregate, not just the last term. Fix for ticket <a href="https://www.sqlite.org/src/info/f7f8c97e97597">f7f8c97e97597</a>. <li>Fix a locking race condition in Windows that can occur when two or more processes @@ -3110,7 +3160,7 @@ with a home-baked pie.</center> <a href="c3ref/initialize.html">sqlite3_initialize()</a> to help ensure that it is thread-safe. <li>Fix the <a href="optoverview.html#or_opt">OR optimization</a> so that it always ignores subplans that do not use an index. -<li>Do not apply the WHERE-clause pushdown optimization on terms that originate +<li>Do not apply the <a href="optoverview.html#pushdown">WHERE-clause push-down optimization</a> on terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket <a href="https://www.sqlite.org/src/info/c2a19d81652f40568c">c2a19d81652f40568c</a>. diff --git a/www/chronology.html b/www/chronology.html index 4c8e450..e638413 100644 --- a/www/chronology.html +++ b/www/chronology.html @@ -125,6 +125,8 @@ antiRobotDefense(); <tr><th class='sort desc'>Date<th class='sort none'>Version </thead> <tbody> +<tr><td width='100' align='center' data-sortkey='08681'><a href='https://www.sqlite.org/src/timeline?c=96c92aba00&y=ci'>2024-05-23</a></td> +<td width='100' align='center' data-sortkey='3460000'><a href="releaselog/3_46_0.html">3.46.0</a></td></tr> <tr><td width='100' align='center' data-sortkey='08643'><a href='https://www.sqlite.org/src/timeline?c=8653b75887&y=ci'>2024-04-15</a></td> <td width='100' align='center' data-sortkey='3450300'><a href="releaselog/3_45_3.html">3.45.3</a></td></tr> <tr><td width='100' align='center' data-sortkey='08609'><a href='https://www.sqlite.org/src/timeline?c=bd76ad2dc9&y=ci'>2024-03-12</a></td> @@ -243,6 +245,8 @@ antiRobotDefense(); <td width='100' align='center' data-sortkey='3250000'><a href="releaselog/3_25_0.html">3.25.0</a></td></tr> <tr><td width='100' align='center' data-sortkey='06501'><a href='https://www.sqlite.org/src/timeline?c=c7ee083322&y=ci'>2018-06-04</a></td> <td width='100' align='center' data-sortkey='3240000'><a href="releaselog/3_24_0.html">3.24.0</a></td></tr> +<tr><td width='100' align='center' data-sortkey='06475'><a href='https://www.sqlite.org/src/timeline?c=f139f6f07d&y=ci'>2018-05-09</a></td> +<td width='100' align='center' data-sortkey='3230200'>3.23.2</td></tr> <tr><td width='100' align='center' data-sortkey='06446'><a href='https://www.sqlite.org/src/timeline?c=4bb2294022&y=ci'>2018-04-10</a></td> <td width='100' align='center' data-sortkey='3230100'><a href="releaselog/3_23_1.html">3.23.1</a></td></tr> <tr><td width='100' align='center' data-sortkey='06438'><a href='https://www.sqlite.org/src/timeline?c=736b53f57f&y=ci'>2018-04-02</a></td> @@ -259,6 +263,8 @@ antiRobotDefense(); <td width='100' align='center' data-sortkey='3180200'><a href="releaselog/3_18_2.html">3.18.2</a></td></tr> <tr><td width='100' align='center' data-sortkey='06148'><a href='https://www.sqlite.org/src/timeline?c=77bb46233d&y=ci'>2017-06-16</a></td> <td width='100' align='center' data-sortkey='3180100'><a href="releaselog/3_18_1.html">3.18.1</a></td></tr> +<tr><td width='100' align='center' data-sortkey='06211'><a href='https://www.sqlite.org/src/timeline?c=605907e73a&y=ci'>2017-08-18</a></td> +<td width='100' align='center' data-sortkey='3190400'>3.19.4</td></tr> <tr><td width='100' align='center' data-sortkey='06140'><a href='https://www.sqlite.org/src/timeline?c=0ee482a1e0&y=ci'>2017-06-08</a></td> <td width='100' align='center' data-sortkey='3190300'><a href="releaselog/3_19_3.html">3.19.3</a></td></tr> <tr><td width='100' align='center' data-sortkey='06126'><a href='https://www.sqlite.org/src/timeline?c=edb4e819b0&y=ci'>2017-05-25</a></td> @@ -395,10 +401,6 @@ antiRobotDefense(); <td width='100' align='center' data-sortkey='3071300'><a href="releaselog/3_7_13.html">3.7.13</a></td></tr> <tr><td width='100' align='center' data-sortkey='04297'><a href='https://www.sqlite.org/src/timeline?c=6d326d44fd&y=ci'>2012-05-22</a></td> <td width='100' align='center' data-sortkey='3071201'><a href="releaselog/3_7_12_1.html">3.7.12.1</a></td></tr> -<tr><td width='100' align='center' data-sortkey='04289'><a href='https://www.sqlite.org/src/timeline?c=d9348b2a4e&y=ci'>2012-05-14</a></td> -<td width='100' align='center' data-sortkey='3071200'><a href="releaselog/3_7_12.html">3.7.12</a></td></tr> -<tr><td width='100' align='center' data-sortkey='04289'><a href='https://www.sqlite.org/src/timeline?c=be71d2f667&y=ci'>2012-05-14</a></td> -<td width='100' align='center' data-sortkey='3071200'><a href="releaselog/3_7_12.html">3.7.12</a></td></tr> <tr><td width='100' align='center' data-sortkey='04289'><a href='https://www.sqlite.org/src/timeline?c=8654aa9540&y=ci'>2012-05-14</a></td> <td width='100' align='center' data-sortkey='3071200'><a href="releaselog/3_7_12.html">3.7.12</a></td></tr> <tr><td width='100' align='center' data-sortkey='04234'><a href='https://www.sqlite.org/src/timeline?c=00bb9c9ce4&y=ci'>2012-03-20</a></td> @@ -945,8 +947,8 @@ var t = new SortableTable(document.getElementById("chrontab"),"nK",1); </script> <p> -<i>348 releases -over 23.7 years.</i> +<i>349 releases +over 23.8 years.</i> <p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/chronology.in?m=5d8275493b">2023-03-03 01:19:02</a> UTC </small></i></p> diff --git a/www/cli.html b/www/cli.html index 6ed5de9..773c353 100644 --- a/www/cli.html +++ b/www/cli.html @@ -562,7 +562,7 @@ sqlite> <p>In "column" mode (and also in "box", "table", and "markdown" modes) the width of columns adjusts automatically. But you can override this, -providing a speicified width for each column using the ".width" command. +providing a specified width for each column using the ".width" command. The arguments to ".width" are integers which are the number of characters to devote to each column. Negative numbers mean right-justify. Thus:</p> @@ -2046,5 +2046,5 @@ provide a full-featured command-line shell: </li><li> <a href="compile.html#enable_fts4">-DSQLITE_ENABLE_FTS4</a> </li><li> <a href="compile.html#enable_fts5">-DSQLITE_ENABLE_FTS5</a> </li></ul> -<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/cli.in?m=ab1e42c23b">2023-12-05 14:43:20</a> UTC </small></i></p> +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/cli.in?m=b6fcfaaa3a">2024-04-16 17:22:18</a> UTC </small></i></p> diff --git a/www/compile.html b/www/compile.html index 437ac3a..9d93392 100644 --- a/www/compile.html +++ b/www/compile.html @@ -293,15 +293,25 @@ the SQLite library will be approximately 3% smaller and use about 5% fewer CPU cycles. So these options do not make a huge difference. But in some design situations, every little bit helps. +</p><p>Library-level configuration options, such as those listed above, +may optionally be defined in a client-side header file. Defining +SQLITE_CUSTOM_INCLUDE=myconfig.h (with no quotes) will cause sqlite3.c +to include myconfig.h early on in the compilation process, enabling +the client to customize the flags without having to explicitly pass +all of them to the compiler. + <a name="osconfig"></a> </p><h1 id="_platform_configuration"><span>3. </span> Platform Configuration</h1> <a name="sqlite_config_h"></a> <p><b>_HAVE_SQLITE_CONFIG_H</b></p><blockquote><p> If the _HAVE_SQLITE_CONFIG_H macro is defined - then the SQLite source code will attempt to #include a file named "config.h". - The "config.h" file usually contains other configuration options, especially - "HAVE_<i>INTERFACE</i>" type options generated by autoconf scripts. + then the SQLite source code will attempt to #include a file named "sqlite_cfg.h". + The "sqlite_cfg.h" file usually contains other configuration options, especially + "HAVE_<i>INTERFACE</i>" type options generated by autoconf scripts. Note that this + header is intended only for use for platform-level configuration, not library-level + configuration. To set SQLite-level configuration flags in a custom header, define + SQLITE_CUSTOM_INCLUDE=myconfig.h, as described in the previous section. </p></blockquote><a name="fdatasync"></a> <p><b>HAVE_FDATASYNC</b></p><blockquote><p> If the HAVE_FDATASYNC compile-time option is true, then the default <a href="vfs.html">VFS</a> @@ -1024,7 +1034,7 @@ the available settings:</p> destroyed. When this option is enabled and an illegal API usage is detected, the interface will typically return SQLITE_MISUSE. <p> - The SQLITE_ENABLE_API_ARMOR option does not guarantee that all + The SQLITE_ENABLE_API_ARMOR option does not guarantee that all illegal API usages will be detected. Even when SQLITE_ENABLE_API_ARMOR is enabled, passing incorrect values into the C-language APIs can cause a process crash due to segmentation @@ -1032,15 +1042,15 @@ the available settings:</p> SQLITE_ENABLE_API_ARMOR compile-time option is intended as an aid for application testing and debugging option. Applications should not depend SQLITE_ENABLE_API_ARMOR for safety. - SQLITE_ENABLE_API_ARMORE is appropriate as a second line of + SQLITE_ENABLE_API_ARMOR is appropriate as a second line of defense against application bugs, but it should not be the only defense. If any SQLite interface returns SQLITE_MISUSE, that indicates that the application is using SQLite contrary to the spec and that the application contains a bug. The SQLITE_MISUSE return provides the application with the opportunity to respond - gracefully to that bug, rather than simply crashing the process, - but nothing more. Applications should not make use of nor depend - upon SQLITE_MISUSE for routine processing. + gracefully to that bug, rather than simply crashing the process or + invoking undefined behavior, but nothing more. Applications should + neither make use of nor depend upon SQLITE_MISUSE for routine processing. </p></blockquote><a name="enable_atomic_write"></a> <p><b>SQLITE_ENABLE_ATOMIC_WRITE</b></p><blockquote><p> If this C-preprocessor macro is defined and if the @@ -2129,5 +2139,5 @@ macros is included for completeness.</p> This macro may not be used in combination with any of <a href="compile.html#apicall">SQLITE_APICALL</a>, <a href="compile.html#callback">SQLITE_CALLBACK</a>, <a href="compile.html#cdecl">SQLITE_CDECL</a> or <a href="compile.html#sysapi">SQLITE_SYSAPI</a>. </p></blockquote> - +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/compile.in?m=d1dca65e6b">2024-05-09 08:10:19</a> UTC </small></i></p> diff --git a/www/copyright.html b/www/copyright.html index aec24b5..b2e99fd 100644 --- a/www/copyright.html +++ b/www/copyright.html @@ -196,7 +196,7 @@ sources on the internet. <p> SQLite is in the public domain and does not require a license. Even so, some organizations want legal proof of their right to use -SQLite. Circumstances where this might occurs include the following: +SQLite. Circumstances where this might occur include the following: </p> <ul> @@ -221,7 +221,7 @@ all the developers of SQLite, will a Warranty of Title for SQLite</a>. A Warranty of Title is a legal document that asserts that the claimed authors of SQLite are the true authors, and that the authors -have the legal right to dedicate the SQLite to the public domain, and +have the legal right to dedicate the SQLite library into the public domain, and that Hwaci will vigorously defend against challenges to those claims. All proceeds from the sale of SQLite Warranties of Title are used to fund continuing improvement and support of SQLite. @@ -235,5 +235,5 @@ the project does not accept patches. If you would like to suggest a change and you include a patch as a proof-of-concept, that would be great. However, please do not be offended if we rewrite your patch from scratch. -<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/copyright.in?m=19090139cc">2022-04-18 02:55:50</a> UTC </small></i></p> +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/copyright.in?m=8efc05353b">2024-05-05 15:23:53</a> UTC </small></i></p> diff --git a/www/crew.html b/www/crew.html index fa6704a..4dfad8c 100644 --- a/www/crew.html +++ b/www/crew.html @@ -158,11 +158,13 @@ Dan has been a key contributor to SQLite since 2002. <img src="images/joe1.jpg" align="left" hspace="25" vspace="0"> <p> <b>Joe Mistachkin</b> -(pronounced "miss-tash-kin") is a software engineer and one -of the maintainers of Tcl/Tk. He is also the author of the TclBridge -component and the Eagle scripting language. He has been working in the -software industry since 1994. +(pronounced "miss-tash-kin") is a software engineer, one of the +maintainers of <a href="https://www.tcl.tk/">Tcl/Tk</a>, and the founder +of <a href="https://www.mistachkin.com/">Mistachkin Systems</a>. He is +also the author of the TclBridge component and the <a href="https://eagle.to/">Eagle</a> +scripting language. He has been working in the software industry +since 1994. <br clear="both"> -</p><p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/crew.in?m=520fe02caf">2022-01-08 05:02:57</a> UTC </small></i></p> +</p><p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/crew.in?m=5a7597b66c">2024-05-09 21:15:44</a> UTC </small></i></p> diff --git a/www/different.html b/www/different.html index 64dee1b..c1edd8f 100644 --- a/www/different.html +++ b/www/different.html @@ -214,11 +214,10 @@ database engines. <p><b>Compact</b></p> <blockquote> When optimized for size, the whole SQLite library with everything enabled - is <a href="footprint.html">less than 500KiB in size</a> + is <a href="footprint.html">less than 1MiB in size</a> (as measured on an ix86 using the "size" utility from the GNU compiler suite.) Unneeded features can be disabled - at compile-time to further reduce the size of the library to under - 300KiB if desired. + at compile-time to further reduce the size of the library even further. <p> Most other SQL database engines are much larger than this. IBM boasts that its recently released CloudScape database engine is "only" a 2MiB @@ -354,5 +353,5 @@ database engines. and <a href="c3ref/create_collation.html">collating sequences</a>. </blockquote> -<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/different.in?m=95a3317bd2">2022-04-18 02:55:50</a> UTC </small></i></p> +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/different.in?m=bd7c209359">2024-05-08 11:54:12</a> UTC </small></i></p> diff --git a/www/doc_backlink_crossref.html b/www/doc_backlink_crossref.html index 10a2e62..8abf1fd 100644 --- a/www/doc_backlink_crossref.html +++ b/www/doc_backlink_crossref.html @@ -367,6 +367,7 @@ antiRobotDefense(); <a href="lang_createtable.html#tablecoldef">lang_createtable.html#tablecoldef</a> <a href="lang_select.html#fromclause">lang_select.html#fromclause</a> <a href="oldnews.html">oldnews.html</a> + <a href="optoverview.html#flattening">optoverview.html#flattening</a> <a href="optoverview.html#like_opt">optoverview.html#like_opt</a> <a href="withoutrowid.html">withoutrowid.html</a> <li>affshort → <a href="appfileformat.html">appfileformat.html</a> @@ -411,7 +412,7 @@ antiRobotDefense(); <a href="fileformat2.html#serialtype">fileformat2.html#serialtype</a> <a href="foreignkeys.html#fk_actions">foreignkeys.html#fk_actions</a> <a href="lang.html">lang.html</a> - <a href="lang_analyze.html#req">lang_analyze.html#req</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <a href="lang_createtable.html#notnullconst">lang_createtable.html#notnullconst</a> <a href="lang_createtrigger.html">lang_createtrigger.html</a> <a href="lang_naming.html">lang_naming.html</a> @@ -513,12 +514,15 @@ antiRobotDefense(); <a href="howtocompile.html#cli">howtocompile.html#cli</a> <a href="releaselog/3_11_0.html">releaselog/3_11_0.html</a> <a href="releaselog/3_11_1.html">releaselog/3_11_1.html</a> +<li>ambiguous dates → <a href="changes.html#version_3_46_0">changes.html#version_3_46_0</a> + <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> <li>American Fuzzy Lop fuzzer → <a href="changes.html#version_3_8_10">changes.html#version_3_8_10</a> <a href="releaselog/3_8_10.html">releaselog/3_8_10.html</a> <a href="releaselog/3_8_10_1.html">releaselog/3_8_10_1.html</a> <a href="releaselog/3_8_10_2.html">releaselog/3_8_10_2.html</a> <li>analysis_limit → <a href="lang_analyze.html#approx">lang_analyze.html#approx</a> -<li>analysis_limit pragma → <a href="lang_analyze.html#req">lang_analyze.html#req</a> +<li>analysis_limit pragma → <a href="changes.html#version_3_46_0">changes.html#version_3_46_0</a> + <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> <li>ANALYZE → <a href="appfileformat.html">appfileformat.html</a> <a href="c3ref/stmt_scanstatus.html">c3ref/stmt_scanstatus.html</a> <a href="capi3ref.html#sqlite3_stmt_scanstatus">capi3ref.html#sqlite3_stmt_scanstatus</a> @@ -543,12 +547,12 @@ antiRobotDefense(); <a href="news.html">news.html</a> <a href="oldnews.html">oldnews.html</a> <a href="optoverview.html#autoindex">optoverview.html#autoindex</a> + <a href="optoverview.html#joins">optoverview.html#joins</a> <a href="optoverview.html#manctrl">optoverview.html#manctrl</a> <a href="optoverview.html#multi_index">optoverview.html#multi_index</a> <a href="optoverview.html#option2">optoverview.html#option2</a> <a href="optoverview.html#rangequery">optoverview.html#rangequery</a> <a href="optoverview.html#skipscan">optoverview.html#skipscan</a> - <a href="optoverview.html#table_order">optoverview.html#table_order</a> <a href="pragma.html#pragma_analysis_limit">pragma.html#pragma_analysis_limit</a> <a href="pragma.html#pragma_optimize">pragma.html#pragma_optimize</a> <a href="queryplanner-ng.html#fossilcasestudy">queryplanner-ng.html#fossilcasestudy</a> @@ -657,6 +661,7 @@ antiRobotDefense(); <a href="releaselog/3_32_1.html">releaselog/3_32_1.html</a> <a href="releaselog/3_32_2.html">releaselog/3_32_2.html</a> <a href="releaselog/3_32_3.html">releaselog/3_32_3.html</a> +<li>Approximate ANALYZE For Large Databases → <a href="lang_analyze.html#pragopt">lang_analyze.html#pragopt</a> <li>asin → <a href="lang_mathfunc.html">lang_mathfunc.html</a> <li>asinh → <a href="lang_mathfunc.html">lang_mathfunc.html</a> <li>asynchronous I/O backend → <a href="oldnews.html">oldnews.html</a> @@ -751,6 +756,8 @@ antiRobotDefense(); <a href="releaselog/3_19_2.html">releaselog/3_19_2.html</a> <a href="releaselog/3_19_3.html">releaselog/3_19_3.html</a> <li>auto modifier → <a href="changes.html#version_3_38_0">changes.html#version_3_38_0</a> + <a href="lang_datefunc.html">lang_datefunc.html</a> + <a href="lang_datefunc.html#tmval">lang_datefunc.html#tmval</a> <a href="releaselog/3_38_0.html">releaselog/3_38_0.html</a> <a href="releaselog/3_38_1.html">releaselog/3_38_1.html</a> <a href="releaselog/3_38_2.html">releaselog/3_38_2.html</a> @@ -822,6 +829,7 @@ antiRobotDefense(); <a href="releaselog/3_9_3.html">releaselog/3_9_3.html</a> <a href="rescode.html#warning_autoindex">rescode.html#warning_autoindex</a> <li>automatic_index pragma → <a href="optoverview.html#autoindex">optoverview.html#autoindex</a> +<li>Automatically Running ANALYZE → <a href="lang_analyze.html#pragopt">lang_analyze.html#pragopt</a> <li>automerge command → <a href="changes.html#version_3_8_5">changes.html#version_3_8_5</a> <a href="releaselog/3_8_5.html">releaselog/3_8_5.html</a> <li>auxiliary columns → <a href="rtree.html#xshadow">rtree.html#xshadow</a> @@ -965,6 +973,7 @@ antiRobotDefense(); <a href="releaselog/3_37_2.html">releaselog/3_37_2.html</a> <a href="rowvalue.html#rvinop">rowvalue.html#rvinop</a> <a href="vtab.html#colUsed">vtab.html#colUsed</a> + <a href="whybytecode.html">whybytecode.html</a> <li>bytecode and tables_used virtual tables → <a href="compile.html#enable_bytecode_vtab">compile.html#enable_bytecode_vtab</a> <li>bytecode engine → <a href="changes.html#version_3_35_3">changes.html#version_3_35_3</a> <a href="changes.html#version_3_45_1">changes.html#version_3_45_1</a> @@ -1309,6 +1318,7 @@ antiRobotDefense(); <a href="releaselog/3_45_1.html">releaselog/3_45_1.html</a> <a href="releaselog/3_45_2.html">releaselog/3_45_2.html</a> <a href="releaselog/3_45_3.html">releaselog/3_45_3.html</a> + <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> <a href="releaselog/3_4_0.html">releaselog/3_4_0.html</a> <a href="releaselog/3_4_1.html">releaselog/3_4_1.html</a> <a href="releaselog/3_4_2.html">releaselog/3_4_2.html</a> @@ -1633,6 +1643,7 @@ antiRobotDefense(); <a href="releaselog/3_6_21.html">releaselog/3_6_21.html</a> <a href="releaselog/3_6_23.html">releaselog/3_6_23.html</a> <li>command-line interface → <a href="features.html">features.html</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <li>command-line shell → <a href="changes.html#version_3_10_0">changes.html#version_3_10_0</a> <a href="changes.html#version_3_11_0">changes.html#version_3_11_0</a> <a href="changes.html#version_3_12_0">changes.html#version_3_12_0</a> @@ -1982,6 +1993,7 @@ antiRobotDefense(); <a href="releaselog/3_45_1.html">releaselog/3_45_1.html</a> <a href="releaselog/3_45_2.html">releaselog/3_45_2.html</a> <a href="releaselog/3_45_3.html">releaselog/3_45_3.html</a> + <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> <a href="releaselog/3_4_0.html">releaselog/3_4_0.html</a> <a href="releaselog/3_4_1.html">releaselog/3_4_1.html</a> <a href="releaselog/3_4_2.html">releaselog/3_4_2.html</a> @@ -2230,6 +2242,7 @@ antiRobotDefense(); <a href="fullsql.html">fullsql.html</a> <a href="lang.html">lang.html</a> <a href="lang_altertable.html#otheralter">lang_altertable.html#otheralter</a> + <a href="lang_analyze.html#pragopt">lang_analyze.html#pragopt</a> <a href="lang_dropindex.html">lang_dropindex.html</a> <a href="limits.html#max_page_count">limits.html#max_page_count</a> <a href="oldnews.html">oldnews.html</a> @@ -2240,6 +2253,7 @@ antiRobotDefense(); <a href="pragma.html#pragma_index_xinfo">pragma.html#pragma_index_xinfo</a> <a href="pragma.html#pragma_journal_mode">pragma.html#pragma_journal_mode</a> <a href="pragma.html#pragma_legacy_alter_table">pragma.html#pragma_legacy_alter_table</a> + <a href="pragma.html#pragma_optimize">pragma.html#pragma_optimize</a> <a href="releaselog/3_7_8.html">releaselog/3_7_8.html</a> <a href="releaselog/3_8_10.html">releaselog/3_8_10.html</a> <a href="releaselog/3_8_10_1.html">releaselog/3_8_10_1.html</a> @@ -2513,7 +2527,6 @@ antiRobotDefense(); <a href="pragma.html#pragma_journal_mode">pragma.html#pragma_journal_mode</a> <a href="pragma.html#pragma_legacy_alter_table">pragma.html#pragma_legacy_alter_table</a> <a href="pragma.html#pragma_mmap_size">pragma.html#pragma_mmap_size</a> - <a href="pragma.html#pragma_optimize">pragma.html#pragma_optimize</a> <a href="releaselog/3_5_8.html">releaselog/3_5_8.html</a> <a href="releaselog/3_6_1.html">releaselog/3_6_1.html</a> <a href="releaselog/3_7_17.html">releaselog/3_7_17.html</a> @@ -2588,11 +2601,13 @@ antiRobotDefense(); <a href="changes.html#version_3_38_1">changes.html#version_3_38_1</a> <a href="changes.html#version_3_42_0">changes.html#version_3_42_0</a> <a href="changes.html#version_3_43_0">changes.html#version_3_43_0</a> + <a href="changes.html#version_3_46_0">changes.html#version_3_46_0</a> <a href="compile.html#gmtime_r">compile.html#gmtime_r</a> <a href="compile.html#localtime_r">compile.html#localtime_r</a> <a href="compile.html#localtime_s">compile.html#localtime_s</a> <a href="datatype3.html#datetime">datatype3.html#datetime</a> <a href="deterministic.html#dtexception">deterministic.html#dtexception</a> + <a href="news.html">news.html</a> <a href="quirks.html">quirks.html</a> <a href="releaselog/3_10_0.html">releaselog/3_10_0.html</a> <a href="releaselog/3_10_1.html">releaselog/3_10_1.html</a> @@ -2615,6 +2630,7 @@ antiRobotDefense(); <a href="releaselog/3_43_0.html">releaselog/3_43_0.html</a> <a href="releaselog/3_43_1.html">releaselog/3_43_1.html</a> <a href="releaselog/3_43_2.html">releaselog/3_43_2.html</a> + <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> <li>date/time special case → <a href="changes.html#version_3_20_0">changes.html#version_3_20_0</a> <a href="releaselog/3_20_0.html">releaselog/3_20_0.html</a> <a href="releaselog/3_20_1.html">releaselog/3_20_1.html</a> @@ -2708,7 +2724,7 @@ antiRobotDefense(); <a href="fullsql.html">fullsql.html</a> <a href="isolation.html">isolation.html</a> <a href="lang.html">lang.html</a> - <a href="lang_analyze.html#req">lang_analyze.html#req</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <a href="lang_createtable.html#notnullconst">lang_createtable.html#notnullconst</a> <a href="lang_createtrigger.html">lang_createtrigger.html</a> <a href="lang_createview.html">lang_createview.html</a> @@ -2822,7 +2838,7 @@ antiRobotDefense(); <a href="fts3.html#fts4">fts3.html#fts4</a> <a href="lang.html">lang.html</a> <a href="lang_altertable.html#otheralter">lang_altertable.html#otheralter</a> - <a href="lang_analyze.html#req">lang_analyze.html#req</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <a href="lang_createtable.html">lang_createtable.html</a> <a href="lang_createtrigger.html">lang_createtrigger.html</a> <a href="lang_createvtab.html">lang_createvtab.html</a> @@ -3181,6 +3197,7 @@ antiRobotDefense(); <a href="intern-v-extern-blob.html">intern-v-extern-blob.html</a> <a href="whentouse.html#appfileformat">whentouse.html#appfileformat</a> <a href="whentouse.html#container">whentouse.html#container</a> + <a href="whybytecode.html">whybytecode.html</a> <li>file control → <a href="c3ref/snapshot_recover.html">c3ref/snapshot_recover.html</a> <a href="c3ref/total_changes.html">c3ref/total_changes.html</a> <a href="capi3ref.html#sqlite3_snapshot_recover">capi3ref.html#sqlite3_snapshot_recover</a> @@ -3249,6 +3266,7 @@ antiRobotDefense(); <a href="windowfunctions.html#wexcls">windowfunctions.html#wexcls</a> <li>flattened → <a href="changes.html#version_3_35_0">changes.html#version_3_35_0</a> <a href="lang_with.html#mathint">lang_with.html#mathint</a> + <a href="optoverview.html#coroutines">optoverview.html#coroutines</a> <a href="optoverview.html#pushdown">optoverview.html#pushdown</a> <a href="releaselog/3_35_0.html">releaselog/3_35_0.html</a> <a href="releaselog/3_35_1.html">releaselog/3_35_1.html</a> @@ -3870,7 +3888,7 @@ antiRobotDefense(); <li>http://en.wikipedia.org/wiki/ACID → <a href="about.html">about.html</a> <a href="transactional.html">transactional.html</a> <li>http://en.wikipedia.org/wiki/Charlotte,_North_Carolina → <a href="crew.html">crew.html</a> -<li>http://en.wikipedia.org/wiki/Coordinated_Universal_Time → <a href="lang_datefunc.html#tmdif">lang_datefunc.html#tmdif</a> +<li>http://en.wikipedia.org/wiki/Coordinated_Universal_Time → <a href="lang_datefunc.html#tmval">lang_datefunc.html#tmval</a> <li>http://en.wikipedia.org/wiki/Endianness → <a href="about.html">about.html</a> <a href="onefile.html">onefile.html</a> <li>http://en.wikipedia.org/wiki/Fuzz_testing → <a href="testing.html#fuzztesting">testing.html#fuzztesting</a> @@ -3878,7 +3896,7 @@ antiRobotDefense(); <li>http://en.wikipedia.org/wiki/ISO_8601 → <a href="lang_datefunc.html">lang_datefunc.html</a> <li>http://en.wikipedia.org/wiki/Julian_day → <a href="lang_datefunc.html">lang_datefunc.html</a> <a href="lang_datefunc.html#jlndy">lang_datefunc.html#jlndy</a> - <a href="lang_datefunc.html#tmdif">lang_datefunc.html#tmdif</a> + <a href="lang_datefunc.html#tmval">lang_datefunc.html#tmval</a> <li>http://en.wikipedia.org/wiki/Kibibyte → <a href="oldnews.html">oldnews.html</a> <li>http://en.wikipedia.org/wiki/Modified_Condition/Decision_Coverage → <a href="testing.html#mcdc">testing.html#mcdc</a> <li>http://en.wikipedia.org/wiki/OpenDocument → <a href="affcase1.html">affcase1.html</a> @@ -3887,7 +3905,7 @@ antiRobotDefense(); <li>http://en.wikipedia.org/wiki/R-tree → <a href="rtree.html">rtree.html</a> <li>http://en.wikipedia.org/wiki/Serializability → <a href="transactional.html">transactional.html</a> <li>http://en.wikipedia.org/wiki/Syslog → <a href="errlog.html">errlog.html</a> -<li>http://en.wikipedia.org/wiki/Unix_time → <a href="lang_datefunc.html#tmshf">lang_datefunc.html#tmshf</a> +<li>http://en.wikipedia.org/wiki/Unix_time → <a href="lang_datefunc.html#jdmod">lang_datefunc.html#jdmod</a> <li>http://en.wikipedia.org/wiki/UUID → <a href="changes.html#version_3_3_13">changes.html#version_3_3_13</a> <a href="releaselog/3_3_13.html">releaselog/3_3_13.html</a> <li>http://en.wikipedia.org/wiki/Zip_%28file_format%29 → <a href="affcase1.html">affcase1.html</a> @@ -4013,7 +4031,7 @@ antiRobotDefense(); <li>http://www.tcl.tk/ → <a href="sqlanalyze.html">sqlanalyze.html</a> <a href="th3.html">th3.html</a> <li>http://www.valgrind.org/ → <a href="qmplan.html">qmplan.html</a> -<li>http://www.w3c.org/TR/NOTE-datetime → <a href="lang_datefunc.html#tmdif">lang_datefunc.html#tmdif</a> +<li>http://www.w3c.org/TR/NOTE-datetime → <a href="lang_datefunc.html#tmval">lang_datefunc.html#tmval</a> <li>http://www.xojo.com/ → <a href="famous.html">famous.html</a> <li>http://zlib.net/ → <a href="sqlar.html">sqlar.html</a> <li>https://airsdk.harman.com → <a href="famous.html">famous.html</a> @@ -4026,7 +4044,9 @@ antiRobotDefense(); <li>https://developers.google.com/open-source/osa#2005-google-oreilly-open-source-award-winners → <a href="oldnews.html">oldnews.html</a> <li>https://digitalocean.com → <a href="qmplan.html">qmplan.html</a> <li>https://docs.microsoft.com/en-us/azure/cosmos-db/serverless-computing-database → <a href="serverless.html">serverless.html</a> +<li>https://eagle.to/ → <a href="crew.html#dan">crew.html#dan</a> <li>https://en.wikipedia.org/wiki/Abstract_syntax_tree → <a href="howitworks.html">howitworks.html</a> + <a href="whybytecode.html">whybytecode.html</a> <li>https://en.wikipedia.org/wiki/Artificial_intelligence → <a href="queryplanner.html">queryplanner.html</a> <li>https://en.wikipedia.org/wiki/Assert.h → <a href="assert.html">assert.html</a> <li>https://en.wikipedia.org/wiki/Berkeley_DB → <a href="howitworks.html">howitworks.html</a> @@ -4036,6 +4056,7 @@ antiRobotDefense(); <a href="releaselog/3_10_2.html">releaselog/3_10_2.html</a> <li>https://en.wikipedia.org/wiki/Database_index#Clustered → <a href="withoutrowid.html">withoutrowid.html</a> <li>https://en.wikipedia.org/wiki/Database_transaction → <a href="howitworks.html">howitworks.html</a> +<li>https://en.wikipedia.org/wiki/Dataflow_programming → <a href="whybytecode.html">whybytecode.html</a> <li>https://en.wikipedia.org/wiki/Declarative_programming → <a href="howitworks.html">howitworks.html</a> <li>https://en.wikipedia.org/wiki/DO-178B → <a href="hirely.html">hirely.html</a> <a href="qmplan.html">qmplan.html</a> @@ -4048,12 +4069,16 @@ antiRobotDefense(); <li>https://en.wikipedia.org/wiki/Hash_join → <a href="optoverview.html#hashjoin">optoverview.html#hashjoin</a> <li>https://en.wikipedia.org/wiki/Imperative_programming → <a href="howitworks.html">howitworks.html</a> <li>https://en.wikipedia.org/wiki/Information_schema → <a href="pragma.html#pragfunc">pragma.html#pragfunc</a> +<li>https://en.wikipedia.org/wiki/Java_virtual_machine → <a href="whybytecode.html">whybytecode.html</a> <li>https://en.wikipedia.org/wiki/Julian_day → <a href="quirks.html">quirks.html</a> <li>https://en.wikipedia.org/wiki/LALR_parser → <a href="howitworks.html">howitworks.html</a> + <a href="whybytecode.html">whybytecode.html</a> <li>https://en.wikipedia.org/wiki/Library_(computing) → <a href="howitworks.html">howitworks.html</a> <li>https://en.wikipedia.org/wiki/Linus%27s_law → <a href="testing.html#3pfuzz">testing.html#3pfuzz</a> <li>https://en.wikipedia.org/wiki/Modified_condition/decision_coverage → <a href="th3.html">th3.html</a> <li>https://en.wikipedia.org/wiki/Mutation_testing → <a href="testing.html#mutationtests">testing.html#mutationtests</a> +<li>https://en.wikipedia.org/wiki/Online_analytical_processing → <a href="whybytecode.html">whybytecode.html</a> +<li>https://en.wikipedia.org/wiki/Online_transaction_processing → <a href="whybytecode.html">whybytecode.html</a> <li>https://en.wikipedia.org/wiki/Patch_(Unix) → <a href="sessionintro.html">sessionintro.html</a> <li>https://en.wikipedia.org/wiki/Recursive_descent_parser → <a href="compile.html#json_max_depth">compile.html#json_max_depth</a> <li>https://en.wikipedia.org/wiki/Robustness_principle → <a href="lang_select.html#nonstd">lang_select.html#nonstd</a> @@ -4071,7 +4096,9 @@ antiRobotDefense(); <a href="th3.html">th3.html</a> <li>https://en.wikipedia.org/wiki/Tar_(computing) → <a href="sqlar.html">sqlar.html</a> <li>https://en.wikipedia.org/wiki/Tcl → <a href="vtablist.html">vtablist.html</a> +<li>https://en.wikipedia.org/wiki/Unix_time → <a href="lang_datefunc.html">lang_datefunc.html</a> <li>https://en.wikipedia.org/wiki/Web_SQL_Database → <a href="bindptr.html">bindptr.html</a> +<li>https://en.wikipedia.org/wiki/WebAssembly → <a href="whybytecode.html">whybytecode.html</a> <li>https://en.wikipedia.org/wiki/Yacc → <a href="lemon.html">lemon.html</a> <li>https://en.wikipedia.org/wiki/Zip_%28file_format%29 → <a href="zipfile.html">zipfile.html</a> <li>https://en.wikipedia.org/wiki/Zip_(file_format) → <a href="changes.html#version_3_22_0">changes.html#version_3_22_0</a> @@ -4153,6 +4180,10 @@ antiRobotDefense(); <a href="json1.html#json5">json1.html#json5</a> <li>https://spec.json5.org/#introduction → <a href="json1.html#json5">json1.html#json5</a> <li>https://sqlite.org/docsrc/finfo/pages/whynotgit.in → <a href="whynotgit.html">whynotgit.html</a> +<li>https://sqlite.org/forum → <a href="optoverview.html#option2">optoverview.html#option2</a> + <a href="optoverview.html#uplus">optoverview.html#uplus</a> + <a href="queryplanner-ng.html#howtofix">queryplanner-ng.html#howtofix</a> + <a href="whybytecode.html">whybytecode.html</a> <li>https://sqlite.org/forum/about → <a href="cves.html#cvetab">cves.html#cvetab</a> <li>https://sqlite.org/forum/forum → <a href="flextypegood.html">flextypegood.html</a> <a href="quirks.html">quirks.html</a> @@ -4532,6 +4563,7 @@ antiRobotDefense(); <li>https://www.loc.gov/preservation/resources/rfs/data.html → <a href="locrsf.html">locrsf.html</a> <li>https://www.microsoft.com/en-us/research/people/gray/ → <a href="fasterthanfs.html">fasterthanfs.html</a> <li>https://www.microsoft.com/en-us/research/publication/to-blob-or-not-to-blob-large-object-storage-in-a-database-or-a-filesystem/ → <a href="fasterthanfs.html">fasterthanfs.html</a> +<li>https://www.mistachkin.com/ → <a href="crew.html#dan">crew.html#dan</a> <li>https://www.neooffice.org/neojava/en/index.php → <a href="affcase1.html">affcase1.html</a> <li>https://www.postgresql.org → <a href="lang_returning.html">lang_returning.html</a> <li>https://www.reddit.com/r/programming/comments/84fzoc/why_is_sqlite_coded_in_c/ → <a href="whyc.html">whyc.html</a> @@ -5166,6 +5198,7 @@ antiRobotDefense(); <li>https://www.sqlite.org/src/vdiff?from=e4ab094f8afce0817f4074e823fabe59fc29ebb4&to=83afe23e553e802c0947c80d0ffdd120423e7c52&sbs=1 → <a href="oldnews.html">oldnews.html</a> <li>https://www.sqlite.org/src/vpatch?from=version-3.9.0&to=version-3.9.1 → <a href="oldnews.html">oldnews.html</a> <li>https://www.sqlite.org/th3 → <a href="qmplan.html">qmplan.html</a> +<li>https://www.tcl.tk/ → <a href="crew.html#dan">crew.html#dan</a> <li>https://www.tcl.tk/man/tcl8.3/UserCmd/tclsh.htm → <a href="cli.html#compiling">cli.html#compiling</a> <li>https://www2.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.html → <a href="faq.html#q6">faq.html#q6</a> <li>https://www2.sqlite.org → <a href="qmplan.html">qmplan.html</a> @@ -5343,7 +5376,7 @@ antiRobotDefense(); <a href="fullsql.html">fullsql.html</a> <a href="isolation.html">isolation.html</a> <a href="lang.html">lang.html</a> - <a href="lang_analyze.html#req">lang_analyze.html#req</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <a href="lang_conflict.html">lang_conflict.html</a> <a href="lang_createtable.html#dfltval">lang_createtable.html#dfltval</a> <a href="lang_createtable.html#notnullconst">lang_createtable.html#notnullconst</a> @@ -5427,7 +5460,7 @@ antiRobotDefense(); <li>internal schema objects → <a href="fileformat2.html#ffschema">fileformat2.html#ffschema</a> <li>internal table → <a href="autoinc.html">autoinc.html</a> <li>internal tables → <a href="lang_analyze.html">lang_analyze.html</a> - <a href="lang_analyze.html#req">lang_analyze.html#req</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <li>Internal Versus External BLOBs → <a href="aff_short.html">aff_short.html</a> <a href="appfileformat.html">appfileformat.html</a> <a href="fasterthanfs.html">fasterthanfs.html</a> @@ -5460,6 +5493,7 @@ antiRobotDefense(); <a href="releaselog/3_45_2.html">releaselog/3_45_2.html</a> <a href="releaselog/3_45_3.html">releaselog/3_45_3.html</a> <li>join order → <a href="eqp.html">eqp.html</a> + <a href="optoverview.html">optoverview.html</a> <li>join-clause → <a href="lang_aggfunc.html">lang_aggfunc.html</a> <a href="lang_altertable.html">lang_altertable.html</a> <a href="lang_attach.html">lang_attach.html</a> @@ -5552,6 +5586,7 @@ antiRobotDefense(); <li>json → <a href="changes.html#version_3_10_0">changes.html#version_3_10_0</a> <a href="json1.html#jarray">json1.html#jarray</a> <a href="json1.html#jobj">json1.html#jobj</a> + <a href="json1.html#jpretty">json1.html#jpretty</a> <a href="json1.html#jset">json1.html#jset</a> <a href="json1.html#json5">json1.html#json5</a> <a href="json1.html#varg">json1.html#varg</a> @@ -5587,6 +5622,7 @@ antiRobotDefense(); <a href="changes.html#version_3_43_0">changes.html#version_3_43_0</a> <a href="features.html">features.html</a> <a href="fullsql.html">fullsql.html</a> + <a href="lang.html">lang.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="lang_expr.html#*funcinexpr">lang_expr.html#*funcinexpr</a> <a href="news.html">news.html</a> @@ -5650,6 +5686,9 @@ antiRobotDefense(); <a href="releaselog/3_18_0.html">releaselog/3_18_0.html</a> <a href="releaselog/3_18_1.html">releaselog/3_18_1.html</a> <a href="releaselog/3_18_2.html">releaselog/3_18_2.html</a> +<li>json_pretty → <a href="changes.html#version_3_46_0">changes.html#version_3_46_0</a> + <a href="news.html">news.html</a> + <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> <li>json_quote → <a href="changes.html#version_3_14">changes.html#version_3_14</a> <a href="json1.html#howtocompile">json1.html#howtocompile</a> <a href="releaselog/3_14.html">releaselog/3_14.html</a> @@ -5989,7 +6028,7 @@ antiRobotDefense(); <li>ltrim → <a href="lang_corefunc.html">lang_corefunc.html</a> <li>mailing lists → <a href="bindptr.html">bindptr.html</a> <a href="qmplan.html">qmplan.html</a> -<li>Manual Control Of Query Plans Using SQLITE_STAT Tables → <a href="lang_analyze.html#req">lang_analyze.html#req</a> +<li>Manual Control Of Query Plans Using SQLITE_STAT Tables → <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <li>master journal → <a href="changes.html#version_3_12_0">changes.html#version_3_12_0</a> <a href="releaselog/3_12_0.html">releaselog/3_12_0.html</a> <a href="releaselog/3_12_1.html">releaselog/3_12_1.html</a> @@ -6034,7 +6073,8 @@ antiRobotDefense(); <a href="releaselog/3_35_4.html">releaselog/3_35_4.html</a> <a href="releaselog/3_35_5.html">releaselog/3_35_5.html</a> <li>math functions → <a href="lang_expr.html#*funcinexpr">lang_expr.html#*funcinexpr</a> -<li>mathfunc → <a href="lang_corefunc.html">lang_corefunc.html</a> +<li>mathfunc → <a href="lang.html">lang.html</a> + <a href="lang_corefunc.html">lang_corefunc.html</a> <li>max → <a href="lang_corefunc.html">lang_corefunc.html</a> <li>max_agg → <a href="lang_aggfunc.html#aggfunclist">lang_aggfunc.html#aggfunclist</a> <a href="lang_corefunc.html#max_scalar">lang_corefunc.html#max_scalar</a> @@ -6100,6 +6140,7 @@ antiRobotDefense(); <a href="releaselog/3_15_0.html">releaselog/3_15_0.html</a> <a href="releaselog/3_15_1.html">releaselog/3_15_1.html</a> <a href="releaselog/3_15_2.html">releaselog/3_15_2.html</a> +<li>modifiers → <a href="lang_datefunc.html">lang_datefunc.html</a> <li>most used → <a href="index.html">index.html</a> <li>most widely deployed → <a href="about.html">about.html</a> <a href="appfileformat.html">appfileformat.html</a> @@ -6125,10 +6166,10 @@ antiRobotDefense(); <a href="versionnumbers.html">versionnumbers.html</a> <li>Next Generation Query Planner → <a href="howitworks.html">howitworks.html</a> <a href="optoverview.html">optoverview.html</a> + <a href="optoverview.html#joins">optoverview.html#joins</a> <li>NGQP → <a href="changes.html#version_3_8_0">changes.html#version_3_8_0</a> <a href="limits.html#max_sql_length">limits.html#max_sql_length</a> <a href="oldnews.html">oldnews.html</a> - <a href="optoverview.html">optoverview.html</a> <a href="releaselog/3_8_0.html">releaselog/3_8_0.html</a> <a href="releaselog/3_8_0_1.html">releaselog/3_8_0_1.html</a> <a href="releaselog/3_8_0_2.html">releaselog/3_8_0_2.html</a> @@ -6168,6 +6209,8 @@ antiRobotDefense(); <li>NULLS LAST → <a href="changes.html#version_3_30_0">changes.html#version_3_30_0</a> <a href="releaselog/3_30_0.html">releaselog/3_30_0.html</a> <a href="releaselog/3_30_1.html">releaselog/3_30_1.html</a> +<li>numeric literals → <a href="changes.html#version_3_46_0">changes.html#version_3_46_0</a> + <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> <li>numeric-literal → <a href="lang_expr.html#litvalue">lang_expr.html#litvalue</a> <li>object resolution → <a href="lang_dropview.html">lang_dropview.html</a> <li>octet_length → <a href="changes.html#version_3_43_0">changes.html#version_3_43_0</a> @@ -6226,7 +6269,6 @@ antiRobotDefense(); <a href="releaselog/3_31_1.html">releaselog/3_31_1.html</a> <li>OpenOffice case study → <a href="appfileformat.html">appfileformat.html</a> <li>optimize command → <a href="fts3.html#fts4">fts3.html#fts4</a> -<li>optimize pragma → <a href="lang_analyze.html#req">lang_analyze.html#req</a> <li>optimizer → <a href="eqp.html">eqp.html</a> <li>OR optimization → <a href="changes.html#version_3_11_0">changes.html#version_3_11_0</a> <a href="changes.html#version_3_14">changes.html#version_3_14</a> @@ -6496,9 +6538,9 @@ antiRobotDefense(); <a href="vtablist.html">vtablist.html</a> <li>PRAGMA analysis_limit → <a href="changes.html#version_3_32_0">changes.html#version_3_32_0</a> <a href="lang_analyze.html#approx">lang_analyze.html#approx</a> + <a href="lang_analyze.html#pragopt">lang_analyze.html#pragopt</a> <a href="pragma.html#pragma_optimize">pragma.html#pragma_optimize</a> <a href="pragma.html#toc">pragma.html#toc</a> - <a href="queryplanner-ng.html#fossilcasestudy">queryplanner-ng.html#fossilcasestudy</a> <a href="releaselog/3_32_0.html">releaselog/3_32_0.html</a> <a href="releaselog/3_32_1.html">releaselog/3_32_1.html</a> <a href="releaselog/3_32_2.html">releaselog/3_32_2.html</a> @@ -6801,16 +6843,21 @@ antiRobotDefense(); <a href="releaselog/3_30_0.html">releaselog/3_30_0.html</a> <a href="releaselog/3_30_1.html">releaselog/3_30_1.html</a> <li>PRAGMA optimize → <a href="changes.html#version_3_18_0">changes.html#version_3_18_0</a> + <a href="changes.html#version_3_46_0">changes.html#version_3_46_0</a> <a href="lang_analyze.html#approx">lang_analyze.html#approx</a> <a href="lang_analyze.html#autoanalyze">lang_analyze.html#autoanalyze</a> + <a href="lang_analyze.html#pragopt">lang_analyze.html#pragopt</a> <a href="news.html">news.html</a> + <a href="optoverview.html#option2">optoverview.html#option2</a> <a href="pragma.html#pragma_analysis_limit">pragma.html#pragma_analysis_limit</a> <a href="pragma.html#toc">pragma.html#toc</a> <a href="queryplanner-ng.html#fossilcasestudy">queryplanner-ng.html#fossilcasestudy</a> <a href="queryplanner-ng.html#howtofix">queryplanner-ng.html#howtofix</a> + <a href="queryplanner-ng.html#qpstab">queryplanner-ng.html#qpstab</a> <a href="releaselog/3_18_0.html">releaselog/3_18_0.html</a> <a href="releaselog/3_18_1.html">releaselog/3_18_1.html</a> <a href="releaselog/3_18_2.html">releaselog/3_18_2.html</a> + <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> <li>PRAGMA page_count → <a href="changes.html#version_3_6_1">changes.html#version_3_6_1</a> <a href="pragma.html#toc">pragma.html#toc</a> <a href="releaselog/3_6_0.html">releaselog/3_6_0.html</a> @@ -6995,6 +7042,7 @@ antiRobotDefense(); <a href="releaselog/3_27_0.html">releaselog/3_27_0.html</a> <a href="releaselog/3_27_1.html">releaselog/3_27_1.html</a> <a href="releaselog/3_27_2.html">releaselog/3_27_2.html</a> + <a href="whybytecode.html">whybytecode.html</a> <li>PRAGMA wal_autocheckpoint → <a href="pragma.html#toc">pragma.html#toc</a> <li>PRAGMA wal_checkpoint → <a href="c3ref/wal_checkpoint_v2.html">c3ref/wal_checkpoint_v2.html</a> <a href="capi3ref.html#sqlite3_wal_checkpoint_v2">capi3ref.html#sqlite3_wal_checkpoint_v2</a> @@ -7117,6 +7165,7 @@ antiRobotDefense(); <a href="threadsafe.html">threadsafe.html</a> <a href="vfs.html">vfs.html</a> <a href="vtablist.html">vtablist.html</a> + <a href="whybytecode.html">whybytecode.html</a> <li>prepared statements → <a href="35to36.html">35to36.html</a> <a href="bytecodevtab.html">bytecodevtab.html</a> <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigmultithread">c3ref/c_config_covering_index_scan.html#sqliteconfigmultithread</a> @@ -7189,7 +7238,6 @@ antiRobotDefense(); <li>push-down optimization → <a href="changes.html#version_3_23_0">changes.html#version_3_23_0</a> <a href="changes.html#version_3_35_0">changes.html#version_3_35_0</a> <a href="changes.html#version_3_35_4">changes.html#version_3_35_4</a> - <a href="changes.html#version_3_42_0">changes.html#version_3_42_0</a> <a href="lang_with.html#mathint">lang_with.html#mathint</a> <a href="releaselog/3_23_0.html">releaselog/3_23_0.html</a> <a href="releaselog/3_23_1.html">releaselog/3_23_1.html</a> @@ -7199,7 +7247,6 @@ antiRobotDefense(); <a href="releaselog/3_35_3.html">releaselog/3_35_3.html</a> <a href="releaselog/3_35_4.html">releaselog/3_35_4.html</a> <a href="releaselog/3_35_5.html">releaselog/3_35_5.html</a> - <a href="releaselog/3_42_0.html">releaselog/3_42_0.html</a> <li>Q → <a href="c3ref/mprintf.html">c3ref/mprintf.html</a> <a href="capi3ref.html#sqlite3_mprintf">capi3ref.html#sqlite3_mprintf</a> <a href="printf.html">printf.html</a> @@ -7250,9 +7297,11 @@ antiRobotDefense(); <a href="changes.html#version_3_20_0">changes.html#version_3_20_0</a> <a href="compile.html#enable_qpsg">compile.html#enable_qpsg</a> <a href="compile.html#enable_stat4">compile.html#enable_stat4</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <a href="oldnews.html">oldnews.html</a> <a href="releaselog/3_20_0.html">releaselog/3_20_0.html</a> <a href="releaselog/3_20_1.html">releaselog/3_20_1.html</a> +<li>query-time index → <a href="optoverview.html#flattening">optoverview.html#flattening</a> <li>query_only pragma → <a href="changes.html#version_3_8_0">changes.html#version_3_8_0</a> <a href="releaselog/3_8_0.html">releaselog/3_8_0.html</a> <a href="releaselog/3_8_0_1.html">releaselog/3_8_0_1.html</a> @@ -7372,6 +7421,7 @@ antiRobotDefense(); <a href="lang_altertable.html#altertableishard">lang_altertable.html#altertableishard</a> <a href="lts.html">lts.html</a> <a href="onefile.html">onefile.html</a> +<li>Recommended usage patterns for ANALYZE → <a href="queryplanner-ng.html#qpstab">queryplanner-ng.html#qpstab</a> <li>record format → <a href="changes.html#version_3_21_0">changes.html#version_3_21_0</a> <a href="fileformat2.html#stat4tab">fileformat2.html#stat4tab</a> <a href="opcode.html#codes">opcode.html#codes</a> @@ -7700,6 +7750,8 @@ antiRobotDefense(); <li>rtrim → <a href="lang_corefunc.html">lang_corefunc.html</a> <li>rules for determining column affinity → <a href="lang_expr.html#castexpr">lang_expr.html#castexpr</a> <li>Run-Time Loadable Extensions → <a href="cli.html#dotload">cli.html#dotload</a> +<li>running ANALYZE via PRAGMA optimize → <a href="changes.html#version_3_46_0">changes.html#version_3_46_0</a> + <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> <li>safe command-line option → <a href="changes.html#version_3_40_1">changes.html#version_3_40_1</a> <a href="news.html">news.html</a> <a href="releaselog/3_40_1.html">releaselog/3_40_1.html</a> @@ -7776,7 +7828,7 @@ antiRobotDefense(); <a href="fts3.html#simple_fts_queries">fts3.html#simple_fts_queries</a> <a href="isolation.html">isolation.html</a> <a href="lang.html">lang.html</a> - <a href="lang_analyze.html#req">lang_analyze.html#req</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <a href="lang_createview.html">lang_createview.html</a> <a href="lang_expr.html#cosub">lang_expr.html#cosub</a> <a href="lang_expr.html#subq">lang_expr.html#subq</a> @@ -9673,7 +9725,6 @@ antiRobotDefense(); <a href="changes.html#version_3_16_0">changes.html#version_3_16_0</a> <a href="changes.html#version_3_31_0">changes.html#version_3_31_0</a> <a href="changes.html#version_3_41_0">changes.html#version_3_41_0</a> - <a href="pragma.html#pragma_optimize">pragma.html#pragma_optimize</a> <a href="releaselog/3_16_0.html">releaselog/3_16_0.html</a> <a href="releaselog/3_16_1.html">releaselog/3_16_1.html</a> <a href="releaselog/3_16_2.html">releaselog/3_16_2.html</a> @@ -10326,6 +10377,7 @@ antiRobotDefense(); <a href="vtab.html#obc">vtab.html#obc</a> <a href="vtab.html#xbestindex">vtab.html#xbestindex</a> <a href="vtab.html#xfindfunction">vtab.html#xfindfunction</a> + <a href="whybytecode.html">whybytecode.html</a> <li>sqlite3_prepare16 → <a href="c3ref/bind_parameter_name.html">c3ref/bind_parameter_name.html</a> <a href="c3ref/funclist.html">c3ref/funclist.html</a> <a href="c3ref/set_authorizer.html">c3ref/set_authorizer.html</a> @@ -10513,11 +10565,7 @@ antiRobotDefense(); <a href="capi3ref.html#sqlite3">capi3ref.html#sqlite3</a> <a href="capi3ref.html#sqlite3_preupdate_blobwrite">capi3ref.html#sqlite3_preupdate_blobwrite</a> <li>sqlite3_profile → <a href="c3ref/c_trace.html#sqlitetraceprofile">c3ref/c_trace.html#sqlitetraceprofile</a> - <a href="c3ref/funclist.html">c3ref/funclist.html</a> - <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a> <a href="c3ref/trace_v2.html">c3ref/trace_v2.html</a> - <a href="capi3ref.html">capi3ref.html</a> - <a href="capi3ref.html#sqlite3">capi3ref.html#sqlite3</a> <a href="capi3ref.html#sqlite3_trace_v2">capi3ref.html#sqlite3_trace_v2</a> <a href="capi3ref.html#sqlitetraceprofile">capi3ref.html#sqlitetraceprofile</a> <a href="changes.html#version_3_14">changes.html#version_3_14</a> @@ -11094,7 +11142,7 @@ antiRobotDefense(); <a href="lang_corefunc.html#likelihood">lang_corefunc.html#likelihood</a> <a href="lang_corefunc.html#likely">lang_corefunc.html#likely</a> <a href="lang_corefunc.html#unlikely">lang_corefunc.html#unlikely</a> - <a href="lang_datefunc.html#tmdif">lang_datefunc.html#tmdif</a> + <a href="lang_datefunc.html#tmval">lang_datefunc.html#tmval</a> <a href="lang_explain.html">lang_explain.html</a> <a href="lang_returning.html">lang_returning.html</a> <a href="malloc.html#lookaside">malloc.html#lookaside</a> @@ -11125,6 +11173,7 @@ antiRobotDefense(); <a href="cintro.html">cintro.html</a> <a href="tclsqlite.html#trace_v2">tclsqlite.html#trace_v2</a> <a href="unlock_notify.html">unlock_notify.html</a> + <a href="whybytecode.html">whybytecode.html</a> <li>sqlite3_stmt_busy → <a href="c3ref/funclist.html">c3ref/funclist.html</a> <a href="c3ref/stmt.html">c3ref/stmt.html</a> <a href="capi3ref.html">capi3ref.html</a> @@ -11427,12 +11476,8 @@ antiRobotDefense(); <a href="releaselog/3_37_1.html">releaselog/3_37_1.html</a> <a href="releaselog/3_37_2.html">releaselog/3_37_2.html</a> <li>sqlite3_trace → <a href="c3ref/c_trace.html#sqlitetracestmt">c3ref/c_trace.html#sqlitetracestmt</a> - <a href="c3ref/funclist.html">c3ref/funclist.html</a> <a href="c3ref/profile.html">c3ref/profile.html</a> - <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a> <a href="c3ref/trace_v2.html">c3ref/trace_v2.html</a> - <a href="capi3ref.html">capi3ref.html</a> - <a href="capi3ref.html#sqlite3">capi3ref.html#sqlite3</a> <a href="capi3ref.html#sqlite3_profile">capi3ref.html#sqlite3_profile</a> <a href="capi3ref.html#sqlite3_trace_v2">capi3ref.html#sqlite3_trace_v2</a> <a href="capi3ref.html#sqlitetracestmt">capi3ref.html#sqlitetracestmt</a> @@ -11757,7 +11802,7 @@ antiRobotDefense(); <a href="compile.html#os_other">compile.html#os_other</a> <a href="custombuild.html">custombuild.html</a> <a href="howtocorrupt.html#posix_close_bug">howtocorrupt.html#posix_close_bug</a> - <a href="lang_datefunc.html#tmdif">lang_datefunc.html#tmdif</a> + <a href="lang_datefunc.html#tmval">lang_datefunc.html#tmval</a> <a href="loadext.html#persist">loadext.html#persist</a> <a href="loadext.html#statext">loadext.html#statext</a> <a href="oldnews.html">oldnews.html</a> @@ -12009,6 +12054,12 @@ antiRobotDefense(); <a href="capi3ref.html#sqlite3_win32_set_directory">capi3ref.html#sqlite3_win32_set_directory</a> <li>sqlite3changegroup_add → <a href="session.html">session.html</a> <a href="session.html#sqlite3_changegroup">session.html#sqlite3_changegroup</a> + <a href="session.html#sqlite3changegroup_add_change">session.html#sqlite3changegroup_add_change</a> + <a href="session/changegroup.html">session/changegroup.html</a> + <a href="session/funclist.html">session/funclist.html</a> + <a href="session/sqlite3changegroup_add_change.html">session/sqlite3changegroup_add_change.html</a> +<li>sqlite3changegroup_add_change → <a href="session.html">session.html</a> + <a href="session.html#sqlite3_changegroup">session.html#sqlite3_changegroup</a> <a href="session/changegroup.html">session/changegroup.html</a> <a href="session/funclist.html">session/funclist.html</a> <li>sqlite3changegroup_add_strm → <a href="session.html">session.html</a> @@ -13292,7 +13343,7 @@ antiRobotDefense(); <a href="changes.html#version_3_6_20">changes.html#version_3_6_20</a> <a href="changes.html#version_3_7_6">changes.html#version_3_7_6</a> <a href="changes.html#version_3_7_9">changes.html#version_3_7_9</a> - <a href="lang_analyze.html#req">lang_analyze.html#req</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <a href="oldnews.html">oldnews.html</a> <a href="releaselog/3_6_18.html">releaselog/3_6_18.html</a> <a href="releaselog/3_6_20.html">releaselog/3_6_20.html</a> @@ -13304,7 +13355,7 @@ antiRobotDefense(); <a href="compile.html#enable_stat2">compile.html#enable_stat2</a> <a href="compile.html#enable_stat4">compile.html#enable_stat4</a> <a href="fileformat2.html#stat3tab">fileformat2.html#stat3tab</a> - <a href="lang_analyze.html#req">lang_analyze.html#req</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <a href="oldnews.html">oldnews.html</a> <a href="optoverview.html#rangequery">optoverview.html#rangequery</a> <a href="releaselog/3_30_0.html">releaselog/3_30_0.html</a> @@ -13322,7 +13373,7 @@ antiRobotDefense(); <a href="compile.html#enable_stat3">compile.html#enable_stat3</a> <a href="fileformat2.html#stat3tab">fileformat2.html#stat3tab</a> <a href="fileformat2.html#stat4tab">fileformat2.html#stat4tab</a> - <a href="lang_analyze.html#req">lang_analyze.html#req</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <a href="oldnews.html">oldnews.html</a> <a href="optoverview.html#rangequery">optoverview.html#rangequery</a> <a href="releaselog/3_41_2.html">releaselog/3_41_2.html</a> @@ -14889,6 +14940,7 @@ antiRobotDefense(); <a href="security.html">security.html</a> <a href="sharedcache.html#dontuse">sharedcache.html#dontuse</a> <a href="unlock_notify.html">unlock_notify.html</a> + <a href="whybytecode.html">whybytecode.html</a> <li>SQLITE_SECURE_DELETE → <a href="changes.html#version_3_6_21">changes.html#version_3_6_21</a> <a href="faq.html#q20">faq.html#q20</a> <a href="pragma.html#pragma_secure_delete">pragma.html#pragma_secure_delete</a> @@ -14951,11 +15003,11 @@ antiRobotDefense(); <li>sqlite_stat1 → <a href="changes.html#version_3_13_0">changes.html#version_3_13_0</a> <a href="changes.html#version_3_33_0">changes.html#version_3_33_0</a> <a href="changes.html#version_3_8_1">changes.html#version_3_8_1</a> - <a href="lang_analyze.html#req">lang_analyze.html#req</a> + <a href="lang_analyze.html#pragopt">lang_analyze.html#pragopt</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <a href="oldnews.html">oldnews.html</a> <a href="optoverview.html#manctrl">optoverview.html#manctrl</a> <a href="optoverview.html#multi_index">optoverview.html#multi_index</a> - <a href="pragma.html#pragma_optimize">pragma.html#pragma_optimize</a> <a href="queryplanner-ng.html#fossilcasestudy">queryplanner-ng.html#fossilcasestudy</a> <a href="queryplanner-ng.html#howtofix">queryplanner-ng.html#howtofix</a> <a href="releaselog/3_13_0.html">releaselog/3_13_0.html</a> @@ -14964,15 +15016,13 @@ antiRobotDefense(); <li>SQLITE_STAT1 → <a href="queryplanner-ng.html#fossilcasestudy">queryplanner-ng.html#fossilcasestudy</a> <a href="queryplanner-ng.html#hazards">queryplanner-ng.html#hazards</a> <a href="queryplanner-ng.html#howtofix">queryplanner-ng.html#howtofix</a> -<li>sqlite_stat2 → <a href="lang_analyze.html#req">lang_analyze.html#req</a> -<li>sqlite_stat3 → <a href="lang_analyze.html#req">lang_analyze.html#req</a> - <a href="optoverview.html#manctrl">optoverview.html#manctrl</a> +<li>sqlite_stat2 → <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> +<li>sqlite_stat3 → <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <a href="optoverview.html#rangequery">optoverview.html#rangequery</a> <li>sqlite_stat4 → <a href="changes.html#version_3_8_6">changes.html#version_3_8_6</a> <a href="changes.html#version_3_8_7">changes.html#version_3_8_7</a> <a href="compile.html#enable_stat4">compile.html#enable_stat4</a> - <a href="lang_analyze.html#req">lang_analyze.html#req</a> - <a href="optoverview.html#manctrl">optoverview.html#manctrl</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <a href="optoverview.html#rangequery">optoverview.html#rangequery</a> <a href="releaselog/3_8_6.html">releaselog/3_8_6.html</a> <a href="releaselog/3_8_7.html">releaselog/3_8_7.html</a> @@ -15431,9 +15481,11 @@ antiRobotDefense(); <li>strategies → <a href="eqp.html">eqp.html</a> <li>strftime → <a href="lang_datefunc.html#subsec">lang_datefunc.html#subsec</a> <li>strftime SQL function → <a href="changes.html#version_3_44_0">changes.html#version_3_44_0</a> + <a href="changes.html#version_3_46_0">changes.html#version_3_46_0</a> <a href="releaselog/3_44_0.html">releaselog/3_44_0.html</a> <a href="releaselog/3_44_1.html">releaselog/3_44_1.html</a> <a href="releaselog/3_44_2.html">releaselog/3_44_2.html</a> + <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> <li>STRICT → <a href="datatype3.html#affname">datatype3.html#affname</a> <a href="lang_createtable.html#primkeyconst">lang_createtable.html#primkeyconst</a> <li>STRICT table → <a href="pragma.html#pragma_table_list">pragma.html#pragma_table_list</a> @@ -15454,7 +15506,8 @@ antiRobotDefense(); <a href="releaselog/3_44_2.html">releaselog/3_44_2.html</a> <li>subprograms → <a href="opcode.html">opcode.html</a> <li>Subqueries → <a href="fullsql.html">fullsql.html</a> -<li>subsec modifier → <a href="lang_datefunc.html#uepch">lang_datefunc.html#uepch</a> +<li>subsec modifier → <a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a> + <a href="lang_datefunc.html#uepch">lang_datefunc.html#uepch</a> <li>subsecond modifier → <a href="changes.html#version_3_42_0">changes.html#version_3_42_0</a> <a href="releaselog/3_42_0.html">releaselog/3_42_0.html</a> <li>substr → <a href="arch.html">arch.html</a> @@ -15635,6 +15688,7 @@ antiRobotDefense(); <a href="testing.html#stmtvbr">testing.html#stmtvbr</a> <a href="testing.html#tcl">testing.html#tcl</a> <li>the - and - operators → <a href="changes.html#version_3_38_0">changes.html#version_3_38_0</a> + <a href="changes.html#version_3_46_0">changes.html#version_3_46_0</a> <a href="lang_expr.html#collateop">lang_expr.html#collateop</a> <a href="lang_expr.html#extract">lang_expr.html#extract</a> <a href="releaselog/3_38_0.html">releaselog/3_38_0.html</a> @@ -15643,6 +15697,7 @@ antiRobotDefense(); <a href="releaselog/3_38_3.html">releaselog/3_38_3.html</a> <a href="releaselog/3_38_4.html">releaselog/3_38_4.html</a> <a href="releaselog/3_38_5.html">releaselog/3_38_5.html</a> + <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> <li>the - operator → <a href="json1.html#jobj">json1.html#jobj</a> <a href="json1.html#jset">json1.html#jset</a> <a href="json1.html#varg">json1.html#varg</a> @@ -15686,6 +15741,8 @@ antiRobotDefense(); <a href="releaselog/3_43_0.html">releaselog/3_43_0.html</a> <a href="releaselog/3_43_1.html">releaselog/3_43_1.html</a> <a href="releaselog/3_43_2.html">releaselog/3_43_2.html</a> +<li>time-value → <a href="lang_datefunc.html">lang_datefunc.html</a> +<li>time-values → <a href="lang_datefunc.html">lang_datefunc.html</a> <li>timediff SQL function → <a href="changes.html#version_3_43_0">changes.html#version_3_43_0</a> <a href="releaselog/3_43_0.html">releaselog/3_43_0.html</a> <a href="releaselog/3_43_1.html">releaselog/3_43_1.html</a> @@ -15702,7 +15759,7 @@ antiRobotDefense(); <li>transaction state → <a href="c3ref/txn_state.html">c3ref/txn_state.html</a> <a href="capi3ref.html#sqlite3_txn_state">capi3ref.html#sqlite3_txn_state</a> <li>transactional → <a href="fasterthanfs.html">fasterthanfs.html</a> -<li>treats the CROSS JOIN operator specially → <a href="optoverview.html#table_order">optoverview.html#table_order</a> +<li>treats the CROSS JOIN operator specially → <a href="optoverview.html#joins">optoverview.html#joins</a> <a href="queryplanner-ng.html#howtofix">queryplanner-ng.html#howtofix</a> <li>trigger → <a href="changes.html#version_3_45_3">changes.html#version_3_45_3</a> <a href="news.html">news.html</a> @@ -15808,6 +15865,8 @@ antiRobotDefense(); <a href="releaselog/3_38_3.html">releaselog/3_38_3.html</a> <a href="releaselog/3_38_4.html">releaselog/3_38_4.html</a> <a href="releaselog/3_38_5.html">releaselog/3_38_5.html</a> +<li>unixepoch modifier → <a href="lang_datefunc.html">lang_datefunc.html</a> + <a href="lang_datefunc.html#tmval">lang_datefunc.html#tmval</a> <li>unlikely → <a href="changes.html#version_3_8_1">changes.html#version_3_8_1</a> <a href="changes.html#version_3_8_8">changes.html#version_3_8_8</a> <a href="lang_corefunc.html">lang_corefunc.html</a> @@ -15852,7 +15911,7 @@ antiRobotDefense(); <a href="isolation.html">isolation.html</a> <a href="lang.html">lang.html</a> <a href="lang_altertable.html#caution">lang_altertable.html#caution</a> - <a href="lang_analyze.html#req">lang_analyze.html#req</a> + <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> <a href="lang_createtable.html#notnullconst">lang_createtable.html#notnullconst</a> <a href="lang_createtable.html#primkeyconst">lang_createtable.html#primkeyconst</a> <a href="lang_createtrigger.html">lang_createtrigger.html</a> @@ -15977,6 +16036,8 @@ antiRobotDefense(); <li>Using the SQLite Unlock Notification Feature → <a href="c3ref/unlock_notify.html">c3ref/unlock_notify.html</a> <a href="capi3ref.html#sqlite3_unlock_notify">capi3ref.html#sqlite3_unlock_notify</a> <a href="compile.html#enable_unlock_notify">compile.html#enable_unlock_notify</a> +<li>utc and localtime modifiers → <a href="changes.html#version_3_46_0">changes.html#version_3_46_0</a> + <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> <li>utc modifier → <a href="changes.html#version_3_10_0">changes.html#version_3_10_0</a> <a href="deterministic.html#dtexception">deterministic.html#dtexception</a> <a href="releaselog/3_10_0.html">releaselog/3_10_0.html</a> @@ -16345,6 +16406,7 @@ antiRobotDefense(); <li>version 3.45.1 → <a href="chronology.html">chronology.html</a> <li>version 3.45.2 → <a href="chronology.html">chronology.html</a> <li>version 3.45.3 → <a href="chronology.html">chronology.html</a> +<li>version 3.46.0 → <a href="chronology.html">chronology.html</a> <li>version 3.5.0 → <a href="35to36.html">35to36.html</a> <a href="c3ref/enable_shared_cache.html">c3ref/enable_shared_cache.html</a> <a href="c3ref/vfs.html">c3ref/vfs.html</a> @@ -17089,11 +17151,24 @@ antiRobotDefense(); <a href="releaselog/3_7_6.html">releaselog/3_7_6.html</a> <a href="wal.html#fast">wal.html#fast</a> <li>WHERE clause → <a href="lang_select.html#simpleselect">lang_select.html#simpleselect</a> +<li>WHERE-clause push-down optimization → <a href="changes.html#version_3_13_0">changes.html#version_3_13_0</a> + <a href="changes.html#version_3_42_0">changes.html#version_3_42_0</a> + <a href="changes.html#version_3_46_0">changes.html#version_3_46_0</a> + <a href="changes.html#version_3_9_0">changes.html#version_3_9_0</a> + <a href="releaselog/3_13_0.html">releaselog/3_13_0.html</a> + <a href="releaselog/3_42_0.html">releaselog/3_42_0.html</a> + <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> + <a href="releaselog/3_9_0.html">releaselog/3_9_0.html</a> + <a href="releaselog/3_9_1.html">releaselog/3_9_1.html</a> + <a href="releaselog/3_9_2.html">releaselog/3_9_2.html</a> + <a href="releaselog/3_9_3.html">releaselog/3_9_3.html</a> +<li>Why SQLite Uses Bytecode → <a href="opcode.html">opcode.html</a> <li>window chaining → <a href="changes.html#version_3_28_0">changes.html#version_3_28_0</a> <a href="releaselog/3_28_0.html">releaselog/3_28_0.html</a> <li>window function → <a href="appfunc.html">appfunc.html</a> <a href="changes.html#version_3_27_2">changes.html#version_3_27_2</a> <a href="news.html">news.html</a> + <a href="optoverview.html#flattening">optoverview.html#flattening</a> <a href="releaselog/3_27_2.html">releaselog/3_27_2.html</a> <li>Window functions → <a href="appfunc.html">appfunc.html</a> <li>window functions → <a href="appfunc.html">appfunc.html</a> @@ -17142,6 +17217,7 @@ antiRobotDefense(); <a href="windowfunctions.html#wexcls">windowfunctions.html#wexcls</a> <li>window-function-invocation → <a href="lang_expr.html#*funcinexpr">lang_expr.html#*funcinexpr</a> <a href="windowfunctions.html">windowfunctions.html</a> +<li>winfunc → <a href="lang.html">lang.html</a> <li>WITH → <a href="fullsql.html">fullsql.html</a> <a href="lang_select.html">lang_select.html</a> <li>WITH clause → <a href="changes.html#version_3_23_0">changes.html#version_3_23_0</a> diff --git a/www/doc_keyword_crossref.html b/www/doc_keyword_crossref.html index d01682b..4177a3b 100644 --- a/www/doc_keyword_crossref.html +++ b/www/doc_keyword_crossref.html @@ -115,5 +115,5 @@ antiRobotGo(); } antiRobotDefense(); </script> -<ul><li>--insert option - <a href="cli.html#arinsup">cli.html#arinsup</a></li><li>--safe command-line option - <a href="cli.html#safemode">cli.html#safemode</a></li><li>--unsafe-testing command-line option - <a href="cli.html#testing_mode">cli.html#testing_mode</a></li><li>--update option - <a href="cli.html#arinsup">cli.html#arinsup</a></li><li>-DHAVE_FDATASYNC - <a href="compile.html#fdatasync">compile.html#fdatasync</a></li><li>-DHAVE_GMTIME_R - <a href="compile.html#gmtime_r">compile.html#gmtime_r</a></li><li>-DHAVE_ISNAN - <a href="compile.html#isnan">compile.html#isnan</a></li><li>-DHAVE_LOCALTIME_R - <a href="compile.html#localtime_r">compile.html#localtime_r</a></li><li>-DHAVE_LOCALTIME_S - <a href="compile.html#localtime_s">compile.html#localtime_s</a></li><li>-DHAVE_MALLOC_USABLE_SIZE - <a href="compile.html#malloc_usable_size">compile.html#malloc_usable_size</a></li><li>-DHAVE_SQLITE_CONFIG_H - <a href="compile.html#sqlite_config_h">compile.html#sqlite_config_h</a></li><li>-DHAVE_STRCHRNUL - <a href="compile.html#strchrnul">compile.html#strchrnul</a></li><li>-DHAVE_UTIME - <a href="compile.html#utime">compile.html#utime</a></li><li>-DSQLITE_4_BYTE_ALIGNED_MALLOC - <a href="compile.html#4_byte_aligned_malloc">compile.html#4_byte_aligned_malloc</a></li><li>-DSQLITE_ALLOW_COVERING_INDEX_SCAN - <a href="compile.html#allow_covering_index_scan">compile.html#allow_covering_index_scan</a></li><li>-DSQLITE_ALLOW_URI_AUTHORITY - <a href="compile.html#allow_uri_authority">compile.html#allow_uri_authority</a></li><li>-DSQLITE_API - <a href="compile.html#api">compile.html#api</a></li><li>-DSQLITE_APICALL - <a href="compile.html#apicall">compile.html#apicall</a></li><li>-DSQLITE_BYTEORDER - <a href="compile.html#byteorder">compile.html#byteorder</a></li><li>-DSQLITE_CALLBACK - <a href="compile.html#callback">compile.html#callback</a></li><li>-DSQLITE_CASE_SENSITIVE_LIKE - <a href="compile.html#case_sensitive_like">compile.html#case_sensitive_like</a></li><li>-DSQLITE_CDECL - <a href="compile.html#cdecl">compile.html#cdecl</a></li><li>-DSQLITE_DEBUG - <a href="compile.html#debug">compile.html#debug</a></li><li>-DSQLITE_DEFAULT_AUTOMATIC_INDEX - <a href="compile.html#default_automatic_index">compile.html#default_automatic_index</a></li><li>-DSQLITE_DEFAULT_AUTOVACUUM - <a href="compile.html#default_autovacuum">compile.html#default_autovacuum</a></li><li>-DSQLITE_DEFAULT_CACHE_SIZE - <a href="compile.html#default_cache_size">compile.html#default_cache_size</a></li><li>-DSQLITE_DEFAULT_FILE_FORMAT - <a href="compile.html#default_file_format">compile.html#default_file_format</a></li><li>-DSQLITE_DEFAULT_FILE_PERMISSIONS - <a href="compile.html#default_file_permissions">compile.html#default_file_permissions</a></li><li>-DSQLITE_DEFAULT_FOREIGN_KEYS - <a href="compile.html#default_foreign_keys">compile.html#default_foreign_keys</a></li><li>-DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT - <a href="compile.html#default_journal_size_limit">compile.html#default_journal_size_limit</a></li><li>-DSQLITE_DEFAULT_LOCKING_MODE - <a href="compile.html#default_locking_mode">compile.html#default_locking_mode</a></li><li>-DSQLITE_DEFAULT_LOOKASIDE - <a href="compile.html#default_lookaside">compile.html#default_lookaside</a></li><li>-DSQLITE_DEFAULT_MEMSTATUS - <a href="compile.html#default_memstatus">compile.html#default_memstatus</a></li><li>-DSQLITE_DEFAULT_MMAP_SIZE - <a href="compile.html#default_mmap_size">compile.html#default_mmap_size</a></li><li>-DSQLITE_DEFAULT_PAGE_SIZE - <a href="compile.html#default_page_size">compile.html#default_page_size</a></li><li>-DSQLITE_DEFAULT_PCACHE_INITSZ - <a href="compile.html#default_pcache_initsz">compile.html#default_pcache_initsz</a></li><li>-DSQLITE_DEFAULT_SYNCHRONOUS - <a href="compile.html#default_synchronous">compile.html#default_synchronous</a></li><li>-DSQLITE_DEFAULT_WAL_AUTOCHECKPOINT - <a href="compile.html#default_wal_autocheckpoint">compile.html#default_wal_autocheckpoint</a></li><li>-DSQLITE_DEFAULT_WAL_SYNCHRONOUS - <a href="compile.html#default_wal_synchronous">compile.html#default_wal_synchronous</a></li><li>-DSQLITE_DEFAULT_WORKER_THREADS - <a href="compile.html#default_worker_threads">compile.html#default_worker_threads</a></li><li>-DSQLITE_DIRECT_OVERFLOW_READ - <a href="compile.html#direct_overflow_read">compile.html#direct_overflow_read</a></li><li>-DSQLITE_DISABLE_DIRSYNC - <a href="compile.html#disable_dirsync">compile.html#disable_dirsync</a></li><li>-DSQLITE_DISABLE_FTS3_UNICODE - <a href="compile.html#disable_fts3_unicode">compile.html#disable_fts3_unicode</a></li><li>-DSQLITE_DISABLE_FTS4_DEFERRED - <a href="compile.html#disable_fts4_deferred">compile.html#disable_fts4_deferred</a></li><li>-DSQLITE_DISABLE_INTRINSIC - <a href="compile.html#disable_intrinsic">compile.html#disable_intrinsic</a></li><li>-DSQLITE_DISABLE_LFS - <a href="compile.html#disable_lfs">compile.html#disable_lfs</a></li><li>-DSQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS - <a href="compile.html#disable_pagecache_overflow_stats">compile.html#disable_pagecache_overflow_stats</a></li><li>-DSQLITE_DQS - <a href="compile.html#dqs">compile.html#dqs</a></li><li>-DSQLITE_ENABLE_8_3_NAMES - <a href="compile.html#enable_8_3_names">compile.html#enable_8_3_names</a></li><li>-DSQLITE_ENABLE_API_ARMOR - <a href="compile.html#enable_api_armor">compile.html#enable_api_armor</a></li><li>-DSQLITE_ENABLE_ATOMIC_WRITE - <a href="compile.html#enable_atomic_write">compile.html#enable_atomic_write</a></li><li>-DSQLITE_ENABLE_BATCH_ATOMIC_WRITE - <a href="compile.html#enable_batch_atomic_write">compile.html#enable_batch_atomic_write</a></li><li>-DSQLITE_ENABLE_BYTECODE_VTAB - <a href="compile.html#enable_bytecode_vtab">compile.html#enable_bytecode_vtab</a></li><li>-DSQLITE_ENABLE_COLUMN_METADATA - <a href="compile.html#enable_column_metadata">compile.html#enable_column_metadata</a></li><li>-DSQLITE_ENABLE_DBPAGE_VTAB - <a href="compile.html#enable_dbpage_vtab">compile.html#enable_dbpage_vtab</a></li><li>-DSQLITE_ENABLE_DBSTAT_VTAB - <a href="compile.html#enable_dbstat_vtab">compile.html#enable_dbstat_vtab</a></li><li>-DSQLITE_ENABLE_DESERIALIZE - <a href="compile.html#enable_deserialize">compile.html#enable_deserialize</a></li><li>-DSQLITE_ENABLE_EXPLAIN_COMMENTS - <a href="compile.html#enable_explain_comments">compile.html#enable_explain_comments</a></li><li>-DSQLITE_ENABLE_FTS3 - <a href="compile.html#enable_fts3">compile.html#enable_fts3</a></li><li>-DSQLITE_ENABLE_FTS3_PARENTHESIS - <a href="compile.html#enable_fts3_parenthesis">compile.html#enable_fts3_parenthesis</a></li><li>-DSQLITE_ENABLE_FTS3_TOKENIZER - <a href="compile.html#enable_fts3_tokenizer">compile.html#enable_fts3_tokenizer</a></li><li>-DSQLITE_ENABLE_FTS4 - <a href="compile.html#enable_fts4">compile.html#enable_fts4</a></li><li>-DSQLITE_ENABLE_FTS5 - <a href="compile.html#enable_fts5">compile.html#enable_fts5</a></li><li>-DSQLITE_ENABLE_GEOPOLY - <a href="compile.html#enable_geopoly">compile.html#enable_geopoly</a></li><li>-DSQLITE_ENABLE_HIDDEN_COLUMNS - <a href="compile.html#enable_hidden_columns">compile.html#enable_hidden_columns</a></li><li>-DSQLITE_ENABLE_ICU - <a href="compile.html#enable_icu">compile.html#enable_icu</a></li><li>-DSQLITE_ENABLE_IOTRACE - <a href="compile.html#enable_iotrace">compile.html#enable_iotrace</a></li><li>-DSQLITE_ENABLE_JSON1 - <a href="compile.html#enable_json1">compile.html#enable_json1</a></li><li>-DSQLITE_ENABLE_LOCKING_STYLE - <a href="compile.html#enable_locking_style">compile.html#enable_locking_style</a></li><li>-DSQLITE_ENABLE_MATH_FUNCTIONS - <a href="compile.html#enable_math_functions">compile.html#enable_math_functions</a></li><li>-DSQLITE_ENABLE_MEMORY_MANAGEMENT - <a href="compile.html#enable_memory_management">compile.html#enable_memory_management</a></li><li>-DSQLITE_ENABLE_MEMSYS3 - <a href="compile.html#enable_memsys3">compile.html#enable_memsys3</a></li><li>-DSQLITE_ENABLE_MEMSYS5 - <a href="compile.html#enable_memsys5">compile.html#enable_memsys5</a></li><li>-DSQLITE_ENABLE_NORMALIZE - <a href="compile.html#enable_normalize">compile.html#enable_normalize</a></li><li>-DSQLITE_ENABLE_NULL_TRIM - <a href="compile.html#enable_null_trim">compile.html#enable_null_trim</a></li><li>-DSQLITE_ENABLE_OFFSET_SQL_FUNC - <a href="compile.html#enable_offset_sql_func">compile.html#enable_offset_sql_func</a></li><li>-DSQLITE_ENABLE_PREUPDATE_HOOK - <a href="compile.html#enable_preupdate_hook">compile.html#enable_preupdate_hook</a></li><li>-DSQLITE_ENABLE_QPSG - <a href="compile.html#enable_qpsg">compile.html#enable_qpsg</a></li><li>-DSQLITE_ENABLE_RBU - <a href="compile.html#enable_rbu">compile.html#enable_rbu</a></li><li>-DSQLITE_ENABLE_RTREE - <a href="compile.html#enable_rtree">compile.html#enable_rtree</a></li><li>-DSQLITE_ENABLE_SESSION - <a href="compile.html#enable_session">compile.html#enable_session</a></li><li>-DSQLITE_ENABLE_SNAPSHOT - <a href="compile.html#enable_snapshot">compile.html#enable_snapshot</a></li><li>-DSQLITE_ENABLE_SORTER_REFERENCES - <a href="compile.html#enable_sorter_references">compile.html#enable_sorter_references</a></li><li>-DSQLITE_ENABLE_SQLLOG - <a href="compile.html#enable_sqllog">compile.html#enable_sqllog</a></li><li>-DSQLITE_ENABLE_STAT2 - <a href="compile.html#enable_stat2">compile.html#enable_stat2</a></li><li>-DSQLITE_ENABLE_STAT3 - <a href="compile.html#enable_stat3">compile.html#enable_stat3</a></li><li>-DSQLITE_ENABLE_STAT4 - <a href="compile.html#enable_stat4">compile.html#enable_stat4</a></li><li>-DSQLITE_ENABLE_STMT_SCANSTATUS - <a href="compile.html#enable_stmt_scanstatus">compile.html#enable_stmt_scanstatus</a></li><li>-DSQLITE_ENABLE_STMTVTAB - <a href="compile.html#enable_stmtvtab">compile.html#enable_stmtvtab</a></li><li>-DSQLITE_ENABLE_TREE_EXPLAIN - <a href="compile.html#enable_tree_explain">compile.html#enable_tree_explain</a></li><li>-DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION - <a href="compile.html#enable_unknown_sql_function">compile.html#enable_unknown_sql_function</a></li><li>-DSQLITE_ENABLE_UNLOCK_NOTIFY - <a href="compile.html#enable_unlock_notify">compile.html#enable_unlock_notify</a></li><li>-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT - <a href="compile.html#enable_update_delete_limit">compile.html#enable_update_delete_limit</a></li><li>-DSQLITE_EXTERN - <a href="compile.html#extern">compile.html#extern</a></li><li>-DSQLITE_EXTRA_DURABLE - <a href="compile.html#extra_durable">compile.html#extra_durable</a></li><li>-DSQLITE_FTS3_MAX_EXPR_DEPTH - <a href="compile.html#fts3_max_expr_depth">compile.html#fts3_max_expr_depth</a></li><li>-DSQLITE_HAVE_ISNAN - <a href="compile.html#have_isnan">compile.html#have_isnan</a></li><li>-DSQLITE_HAVE_ZLIB - <a href="compile.html#have_zlib">compile.html#have_zlib</a></li><li>-DSQLITE_INTROSPECTION_PRAGMAS - <a href="compile.html#introspection_pragmas">compile.html#introspection_pragmas</a></li><li>-DSQLITE_JSON_MAX_DEPTH - <a href="compile.html#json_max_depth">compile.html#json_max_depth</a></li><li>-DSQLITE_LIKE_DOESNT_MATCH_BLOBS - <a href="compile.html#like_doesnt_match_blobs">compile.html#like_doesnt_match_blobs</a></li><li>-DSQLITE_MAX_ALLOCATION_SIZE - <a href="compile.html#max_allocation_size">compile.html#max_allocation_size</a></li><li>-DSQLITE_MAX_MEMORY - <a href="compile.html#max_memory">compile.html#max_memory</a></li><li>-DSQLITE_MAX_MMAP_SIZE - <a href="compile.html#max_mmap_size">compile.html#max_mmap_size</a></li><li>-DSQLITE_MAX_SCHEMA_RETRY - <a href="compile.html#max_schema_retry">compile.html#max_schema_retry</a></li><li>-DSQLITE_MAX_WORKER_THREADS - <a href="compile.html#max_worker_threads">compile.html#max_worker_threads</a></li><li>-DSQLITE_MEMDB_DEFAULT_MAXSIZE - <a href="compile.html#memdb_default_maxsize">compile.html#memdb_default_maxsize</a></li><li>-DSQLITE_MEMDEBUG - <a href="compile.html#memdebug">compile.html#memdebug</a></li><li>-DSQLITE_MINIMUM_FILE_DESCRIPTOR - <a href="compile.html#minimum_file_descriptor">compile.html#minimum_file_descriptor</a></li><li>-DSQLITE_OMIT_ALTERTABLE - <a href="compile.html#omit_altertable">compile.html#omit_altertable</a></li><li>-DSQLITE_OMIT_ANALYZE - <a href="compile.html#omit_analyze">compile.html#omit_analyze</a></li><li>-DSQLITE_OMIT_ATTACH - <a href="compile.html#omit_attach">compile.html#omit_attach</a></li><li>-DSQLITE_OMIT_AUTHORIZATION - <a href="compile.html#omit_authorization">compile.html#omit_authorization</a></li><li>-DSQLITE_OMIT_AUTOINCREMENT - <a href="compile.html#omit_autoincrement">compile.html#omit_autoincrement</a></li><li>-DSQLITE_OMIT_AUTOINIT - <a href="compile.html#omit_autoinit">compile.html#omit_autoinit</a></li><li>-DSQLITE_OMIT_AUTOMATIC_INDEX - <a href="compile.html#omit_automatic_index">compile.html#omit_automatic_index</a></li><li>-DSQLITE_OMIT_AUTORESET - <a href="compile.html#omit_autoreset">compile.html#omit_autoreset</a></li><li>-DSQLITE_OMIT_AUTOVACUUM - <a href="compile.html#omit_autovacuum">compile.html#omit_autovacuum</a></li><li>-DSQLITE_OMIT_BETWEEN_OPTIMIZATION - <a href="compile.html#omit_between_optimization">compile.html#omit_between_optimization</a></li><li>-DSQLITE_OMIT_BLOB_LITERAL - <a href="compile.html#omit_blob_literal">compile.html#omit_blob_literal</a></li><li>-DSQLITE_OMIT_BTREECOUNT - <a href="compile.html#omit_btreecount">compile.html#omit_btreecount</a></li><li>-DSQLITE_OMIT_BUILTIN_TEST - <a href="compile.html#omit_builtin_test">compile.html#omit_builtin_test</a></li><li>-DSQLITE_OMIT_CASE_SENSITIVE_LIKE_PRAGMA - <a href="compile.html#omit_case_sensitive_like_pragma">compile.html#omit_case_sensitive_like_pragma</a></li><li>-DSQLITE_OMIT_CAST - <a href="compile.html#omit_cast">compile.html#omit_cast</a></li><li>-DSQLITE_OMIT_CHECK - <a href="compile.html#omit_check">compile.html#omit_check</a></li><li>-DSQLITE_OMIT_COMPILEOPTION_DIAGS - <a href="compile.html#omit_compileoption_diags">compile.html#omit_compileoption_diags</a></li><li>-DSQLITE_OMIT_COMPLETE - <a href="compile.html#omit_complete">compile.html#omit_complete</a></li><li>-DSQLITE_OMIT_COMPOUND_SELECT - <a href="compile.html#omit_compound_select">compile.html#omit_compound_select</a></li><li>-DSQLITE_OMIT_CTE - <a href="compile.html#omit_cte">compile.html#omit_cte</a></li><li>-DSQLITE_OMIT_DATETIME_FUNCS - <a href="compile.html#omit_datetime_funcs">compile.html#omit_datetime_funcs</a></li><li>-DSQLITE_OMIT_DECLTYPE - <a href="compile.html#omit_decltype">compile.html#omit_decltype</a></li><li>-DSQLITE_OMIT_DEPRECATED - <a href="compile.html#omit_deprecated">compile.html#omit_deprecated</a></li><li>-DSQLITE_OMIT_DESERIALIZE - <a href="compile.html#omit_deserialize">compile.html#omit_deserialize</a></li><li>-DSQLITE_OMIT_DISKIO - <a href="compile.html#omit_diskio">compile.html#omit_diskio</a></li><li>-DSQLITE_OMIT_EXPLAIN - <a href="compile.html#omit_explain">compile.html#omit_explain</a></li><li>-DSQLITE_OMIT_FLAG_PRAGMAS - <a href="compile.html#omit_flag_pragmas">compile.html#omit_flag_pragmas</a></li><li>-DSQLITE_OMIT_FLOATING_POINT - <a href="compile.html#omit_floating_point">compile.html#omit_floating_point</a></li><li>-DSQLITE_OMIT_FOREIGN_KEY - <a href="compile.html#omit_foreign_key">compile.html#omit_foreign_key</a></li><li>-DSQLITE_OMIT_GENERATED_COLUMNS - <a href="compile.html#omit_generated_columns">compile.html#omit_generated_columns</a></li><li>-DSQLITE_OMIT_GET_TABLE - <a href="compile.html#omit_get_table">compile.html#omit_get_table</a></li><li>-DSQLITE_OMIT_HEX_INTEGER - <a href="compile.html#omit_hex_integer">compile.html#omit_hex_integer</a></li><li>-DSQLITE_OMIT_INCRBLOB - <a href="compile.html#omit_incrblob">compile.html#omit_incrblob</a></li><li>-DSQLITE_OMIT_INTEGRITY_CHECK - <a href="compile.html#omit_integrity_check">compile.html#omit_integrity_check</a></li><li>-DSQLITE_OMIT_INTROSPECTION_PRAGMAS - <a href="compile.html#omit_introspection_pragmas">compile.html#omit_introspection_pragmas</a></li><li>-DSQLITE_OMIT_JSON - <a href="compile.html#omit_json">compile.html#omit_json</a></li><li>-DSQLITE_OMIT_LIKE_OPTIMIZATION - <a href="compile.html#omit_like_optimization">compile.html#omit_like_optimization</a></li><li>-DSQLITE_OMIT_LOAD_EXTENSION - <a href="compile.html#omit_load_extension">compile.html#omit_load_extension</a></li><li>-DSQLITE_OMIT_LOCALTIME - <a href="compile.html#omit_localtime">compile.html#omit_localtime</a></li><li>-DSQLITE_OMIT_LOOKASIDE - <a href="compile.html#omit_lookaside">compile.html#omit_lookaside</a></li><li>-DSQLITE_OMIT_MEMORYDB - <a href="compile.html#omit_memorydb">compile.html#omit_memorydb</a></li><li>-DSQLITE_OMIT_OR_OPTIMIZATION - <a href="compile.html#omit_or_optimization">compile.html#omit_or_optimization</a></li><li>-DSQLITE_OMIT_PAGER_PRAGMAS - <a href="compile.html#omit_pager_pragmas">compile.html#omit_pager_pragmas</a></li><li>-DSQLITE_OMIT_PRAGMA - <a href="compile.html#omit_pragma">compile.html#omit_pragma</a></li><li>-DSQLITE_OMIT_PROGRESS_CALLBACK - <a href="compile.html#omit_progress_callback">compile.html#omit_progress_callback</a></li><li>-DSQLITE_OMIT_QUICKBALANCE - <a href="compile.html#omit_quickbalance">compile.html#omit_quickbalance</a></li><li>-DSQLITE_OMIT_REINDEX - <a href="compile.html#omit_reindex">compile.html#omit_reindex</a></li><li>-DSQLITE_OMIT_SCHEMA_PRAGMAS - <a href="compile.html#omit_schema_pragmas">compile.html#omit_schema_pragmas</a></li><li>-DSQLITE_OMIT_SCHEMA_VERSION_PRAGMAS - <a href="compile.html#omit_schema_version_pragmas">compile.html#omit_schema_version_pragmas</a></li><li>-DSQLITE_OMIT_SHARED_CACHE - <a href="compile.html#omit_shared_cache">compile.html#omit_shared_cache</a></li><li>-DSQLITE_OMIT_SUBQUERY - <a href="compile.html#omit_subquery">compile.html#omit_subquery</a></li><li>-DSQLITE_OMIT_TCL_VARIABLE - <a href="compile.html#omit_tcl_variable">compile.html#omit_tcl_variable</a></li><li>-DSQLITE_OMIT_TEMPDB - <a href="compile.html#omit_tempdb">compile.html#omit_tempdb</a></li><li>-DSQLITE_OMIT_TRACE - <a href="compile.html#omit_trace">compile.html#omit_trace</a></li><li>-DSQLITE_OMIT_TRIGGER - <a href="compile.html#omit_trigger">compile.html#omit_trigger</a></li><li>-DSQLITE_OMIT_TRUNCATE_OPTIMIZATION - <a href="compile.html#omit_truncate_optimization">compile.html#omit_truncate_optimization</a></li><li>-DSQLITE_OMIT_UTF16 - <a href="compile.html#omit_utf16">compile.html#omit_utf16</a></li><li>-DSQLITE_OMIT_VACUUM - <a href="compile.html#omit_vacuum">compile.html#omit_vacuum</a></li><li>-DSQLITE_OMIT_VIEW - <a href="compile.html#omit_view">compile.html#omit_view</a></li><li>-DSQLITE_OMIT_VIRTUALTABLE - <a href="compile.html#omit_virtualtable">compile.html#omit_virtualtable</a></li><li>-DSQLITE_OMIT_WAL - <a href="compile.html#omit_wal">compile.html#omit_wal</a></li><li>-DSQLITE_OMIT_WINDOWFUNC - <a href="compile.html#omit_windowfunc">compile.html#omit_windowfunc</a></li><li>-DSQLITE_OMIT_WSD - <a href="compile.html#omit_wsd">compile.html#omit_wsd</a></li><li>-DSQLITE_OMIT_XFER_OPT - <a href="compile.html#omit_xfer_opt">compile.html#omit_xfer_opt</a></li><li>-DSQLITE_OS_OTHER - <a href="compile.html#os_other">compile.html#os_other</a></li><li>-DSQLITE_POWERSAFE_OVERWRITE - <a href="compile.html#powersafe_overwrite">compile.html#powersafe_overwrite</a></li><li>-DSQLITE_PRINTF_PRECISION_LIMIT - <a href="compile.html#printf_precision_limit">compile.html#printf_precision_limit</a></li><li>-DSQLITE_QUERY_PLANNER_LIMIT - <a href="compile.html#query_planner_limit">compile.html#query_planner_limit</a></li><li>-DSQLITE_QUERY_PLANNER_LIMIT_INCR - <a href="compile.html#query_planner_limit_incr">compile.html#query_planner_limit_incr</a></li><li>-DSQLITE_REVERSE_UNORDERED_SELECTS - <a href="compile.html#reverse_unordered_selects">compile.html#reverse_unordered_selects</a></li><li>-DSQLITE_RTREE_INT_ONLY - <a href="compile.html#rtree_int_only">compile.html#rtree_int_only</a></li><li>-DSQLITE_SECURE_DELETE - <a href="compile.html#secure_delete">compile.html#secure_delete</a></li><li>-DSQLITE_SORTER_PMASZ - <a href="compile.html#sorter_pmasz">compile.html#sorter_pmasz</a></li><li>-DSQLITE_SOUNDEX - <a href="compile.html#soundex">compile.html#soundex</a></li><li>-DSQLITE_STDCALL - <a href="compile.html#stdcall">compile.html#stdcall</a></li><li>-DSQLITE_STMTJRNL_SPILL - <a href="compile.html#stmtjrnl_spill">compile.html#stmtjrnl_spill</a></li><li>-DSQLITE_STRICT_SUBTYPE - <a href="compile.html#strict_subtype">compile.html#strict_subtype</a></li><li>-DSQLITE_SYSAPI - <a href="compile.html#sysapi">compile.html#sysapi</a></li><li>-DSQLITE_TCLAPI - <a href="compile.html#tclapi">compile.html#tclapi</a></li><li>-DSQLITE_TEMP_STORE - <a href="compile.html#temp_store">compile.html#temp_store</a></li><li>-DSQLITE_THREADSAFE - <a href="compile.html#threadsafe">compile.html#threadsafe</a></li><li>-DSQLITE_TRACE_SIZE_LIMIT - <a href="compile.html#trace_size_limit">compile.html#trace_size_limit</a></li><li>-DSQLITE_TRUSTED_SCHEMA - <a href="compile.html#trusted_schema">compile.html#trusted_schema</a></li><li>-DSQLITE_UNTESTABLE - <a href="compile.html#untestable">compile.html#untestable</a></li><li>-DSQLITE_USE_ALLOCA - <a href="compile.html#use_alloca">compile.html#use_alloca</a></li><li>-DSQLITE_USE_FCNTL_TRACE - <a href="compile.html#use_fcntl_trace">compile.html#use_fcntl_trace</a></li><li>-DSQLITE_USE_SEH - <a href="compile.html#use_seh">compile.html#use_seh</a></li><li>-DSQLITE_USE_URI - <a href="compile.html#use_uri">compile.html#use_uri</a></li><li>-DSQLITE_WIN32_HEAP_CREATE - <a href="compile.html#win32_heap_create">compile.html#win32_heap_create</a></li><li>-DSQLITE_WIN32_MALLOC - <a href="compile.html#win32_malloc">compile.html#win32_malloc</a></li><li>-DSQLITE_WIN32_MALLOC_VALIDATE - <a href="compile.html#win32_malloc_validate">compile.html#win32_malloc_validate</a></li><li>-DSQLITE_ZERO_MALLOC - <a href="compile.html#zero_malloc">compile.html#zero_malloc</a></li><li>.archive command - <a href="cli.html#sqlar">cli.html#sqlar</a></li><li>.connection - <a href="cli.html#dotconn">cli.html#dotconn</a></li><li>.databases - <a href="cli.html#dotdatabases">cli.html#dotdatabases</a></li><li>.databases command - <a href="cli.html#dotdatabases">cli.html#dotdatabases</a></li><li>.dump - <a href="cli.html#dump">cli.html#dump</a></li><li>.excel - <a href="cli.html#dotexcel">cli.html#dotexcel</a></li><li>.expert command - <a href="cli.html#expert">cli.html#expert</a></li><li>.fullschema - <a href="cli.html#fullschema">cli.html#fullschema</a></li><li>.import - <a href="cli.html#csv">cli.html#csv</a></li><li>.import command - <a href="cli.html#csv">cli.html#csv</a></li><li>.imposter dot-command - <a href="imposter.html#dotimposter">imposter.html#dotimposter</a></li><li>.load command - <a href="cli.html#dotload">cli.html#dotload</a></li><li>.mode - <a href="cli.html#dotmode">cli.html#dotmode</a></li><li>.mode quote - <a href="cli.html#dotmodequote">cli.html#dotmodequote</a></li><li>.once - <a href="cli.html#dotoutput">cli.html#dotoutput</a></li><li>.open - <a href="cli.html#dotopen">cli.html#dotopen</a></li><li>.open command - <a href="cli.html#dotopen">cli.html#dotopen</a></li><li>.output - <a href="cli.html#dotoutput">cli.html#dotoutput</a></li><li>.parameter command - <a href="cli.html#param">cli.html#param</a></li><li>.read - <a href="cli.html#dotread">cli.html#dotread</a></li><li>.recover dot-command - <a href="cli.html#recover">cli.html#recover</a></li><li>.schema - <a href="cli.html#dschema">cli.html#dschema</a></li><li>.selftest dot-command - <a href="cli.html#selftest">cli.html#selftest</a></li><li>.sha3sum dot-command - <a href="cli.html#sha3sum">cli.html#sha3sum</a></li><li>.tables - <a href="cli.html#dtables">cli.html#dtables</a></li><li>3rd-party fuzzers - <a href="testing.html#3pfuzz">testing.html#3pfuzz</a></li><li>34to35 - <a href="34to35.html">34to35.html</a></li><li>35 Faster Than The Filesystem - <a href="fasterthanfs.html">fasterthanfs.html</a></li><li>35to36 - <a href="35to36.html">35to36.html</a></li><li>about 200 SQL statements per webpage - <a href="np1queryprob.html">np1queryprob.html</a></li><li>abs - <a href="lang_corefunc.html#abs">lang_corefunc.html#abs</a></li><li>abs SQL function - <a href="lang_corefunc.html#abs">lang_corefunc.html#abs</a></li><li>ACID - <a href="transactional.html">transactional.html</a></li><li>acos - <a href="lang_mathfunc.html#acos">lang_mathfunc.html#acos</a></li><li>acos SQL function - <a href="lang_mathfunc.html#acos">lang_mathfunc.html#acos</a></li><li>acosh - <a href="lang_mathfunc.html#acosh">lang_mathfunc.html#acosh</a></li><li>acosh SQL function - <a href="lang_mathfunc.html#acosh">lang_mathfunc.html#acosh</a></li><li>add column - <a href="lang_altertable.html#altertabaddcol">lang_altertable.html#altertabaddcol</a></li><li>Adding to Zip - <a href="zipfile.html#adding_entries_to_a_zip_archive">zipfile.html#adding_entries_to_a_zip_archive</a></li><li>advanced - <a href="swarmvtab.html#advanced_usage">swarmvtab.html#advanced_usage</a></li><li>advantages of WAL-mode - <a href="wal.html#advantages">wal.html#advantages</a></li><li>affinities - <a href="datatype3.html#affinity">datatype3.html#affinity</a></li><li>affinity - <a href="datatype3.html#affinity">datatype3.html#affinity</a></li><li>affinity in compound VIEWs - <a href="datatype3.html#affcompoundview">datatype3.html#affcompoundview</a></li><li>Affinity Of Expressions - <a href="datatype3.html#expraff">datatype3.html#expraff</a></li><li>affshort - <a href="aff_short.html">aff_short.html</a></li><li>AFL - <a href="testing.html#aflfuzz">testing.html#aflfuzz</a></li><li>aggfunc - <a href="lang_aggfunc.html">lang_aggfunc.html</a></li><li>Aggregate Functions - <a href="lang_aggfunc.html">lang_aggfunc.html</a></li><li>Aggregate functions - <a href="lang_aggfunc.html">lang_aggfunc.html</a></li><li>aggregate functions - <a href="lang_aggfunc.html">lang_aggfunc.html</a></li><li>aggregate JSON SQL functions - <a href="json1.html#jgroupobjectb">json1.html#jgroupobjectb</a></li><li>aggregate SQL functions - <a href="lang_aggfunc.html">lang_aggfunc.html</a></li><li>aggregate window functions - <a href="windowfunctions.html#aggwinfunc">windowfunctions.html#aggwinfunc</a></li><li>aggregate-function-invocation - <a href="syntax/aggregate-function-invocation.html">syntax/aggregate-function-invocation.html</a></li><li>aggregate-function-invocation syntax diagram - <a href="syntax/aggregate-function-invocation.html">syntax/aggregate-function-invocation.html</a></li><li>alphabetical listing of documents - <a href="doclist.html">doclist.html</a></li><li>ALTER - <a href="lang_altertable.html">lang_altertable.html</a></li><li>ALTER TABLE - <a href="lang_altertable.html">lang_altertable.html</a></li><li>ALTER TABLE ADD COLUMN - <a href="lang_altertable.html#altertabaddcol">lang_altertable.html#altertabaddcol</a></li><li>ALTER TABLE DROP COLUMN - <a href="lang_altertable.html#altertabdropcol">lang_altertable.html#altertabdropcol</a></li><li>ALTER TABLE RENAME - <a href="lang_altertable.html#altertabrename">lang_altertable.html#altertabrename</a></li><li>ALTER TABLE RENAME COLUMN - <a href="lang_altertable.html#altertabmvcol">lang_altertable.html#altertabmvcol</a></li><li>ALTER TABLE RENAME documentation - <a href="lang_altertable.html#altertabrename">lang_altertable.html#altertabrename</a></li><li>alter-table-stmt - <a href="syntax/alter-table-stmt.html">syntax/alter-table-stmt.html</a></li><li>alter-table-stmt syntax diagram - <a href="syntax/alter-table-stmt.html">syntax/alter-table-stmt.html</a></li><li>altertable - <a href="lang_altertable.html">lang_altertable.html</a></li><li>amalgamation - <a href="amalgamation.html">amalgamation.html</a></li><li>amalgamation tarball - <a href="download.html">download.html</a></li><li>American Fuzzy Lop fuzzer - <a href="testing.html#aflfuzz">testing.html#aflfuzz</a></li><li>analysis_limit - <a href="pragma.html#pragma_analysis_limit">pragma.html#pragma_analysis_limit</a></li><li>analysis_limit pragma - <a href="pragma.html#pragma_analysis_limit">pragma.html#pragma_analysis_limit</a></li><li>ANALYZE - <a href="lang_analyze.html">lang_analyze.html</a></li><li>analyze - <a href="lang_analyze.html">lang_analyze.html</a></li><li>analyze-stmt - <a href="syntax/analyze-stmt.html">syntax/analyze-stmt.html</a></li><li>analyze-stmt syntax diagram - <a href="syntax/analyze-stmt.html">syntax/analyze-stmt.html</a></li><li>appformat - <a href="appfileformat.html">appfileformat.html</a></li><li>Application File Format - <a href="appfileformat.html">appfileformat.html</a></li><li>application file format - <a href="appfileformat.html">appfileformat.html</a></li><li>application file-format - <a href="appfileformat.html">appfileformat.html</a></li><li>Application ID - <a href="fileformat2.html#appid">fileformat2.html#appid</a></li><li>application-defined function attacks - <a href="appfunc.html#sec">appfunc.html#sec</a></li><li>application-defined SQL function - <a href="appfunc.html">appfunc.html</a></li><li>application-defined SQL functions - <a href="appfunc.html">appfunc.html</a></li><li>application-defined window functions - <a href="windowfunctions.html#udfwinfunc">windowfunctions.html#udfwinfunc</a></li><li>application_id - <a href="pragma.html#pragma_application_id">pragma.html#pragma_application_id</a></li><li>application_id pragma - <a href="pragma.html#pragma_application_id">pragma.html#pragma_application_id</a></li><li>appreciate the freedom - <a href="flextypegood.html">flextypegood.html</a></li><li>Appropriate Uses For SQLite - <a href="whentouse.html">whentouse.html</a></li><li>approximate ANALYZE - <a href="lang_analyze.html#approx">lang_analyze.html#approx</a></li><li>asin - <a href="lang_mathfunc.html#asin">lang_mathfunc.html#asin</a></li><li>asin SQL function - <a href="lang_mathfunc.html#asin">lang_mathfunc.html#asin</a></li><li>asinh - <a href="lang_mathfunc.html#asinh">lang_mathfunc.html#asinh</a></li><li>asinh SQL function - <a href="lang_mathfunc.html#asinh">lang_mathfunc.html#asinh</a></li><li>asynchronous I/O backend - <a href="asyncvfs.html">asyncvfs.html</a></li><li>asynchronous VFS - <a href="asyncvfs.html">asyncvfs.html</a></li><li>atan - <a href="lang_mathfunc.html#atan">lang_mathfunc.html#atan</a></li><li>atan SQL function - <a href="lang_mathfunc.html#atan">lang_mathfunc.html#atan</a></li><li>atan2 - <a href="lang_mathfunc.html#atan2">lang_mathfunc.html#atan2</a></li><li>atan2 SQL function - <a href="lang_mathfunc.html#atan2">lang_mathfunc.html#atan2</a></li><li>atanh - <a href="lang_mathfunc.html#atanh">lang_mathfunc.html#atanh</a></li><li>atanh SQL function - <a href="lang_mathfunc.html#atanh">lang_mathfunc.html#atanh</a></li><li>Atomic Commit - <a href="atomiccommit.html">atomiccommit.html</a></li><li>atomic commit - <a href="atomiccommit.html">atomiccommit.html</a></li><li>ATTACH - <a href="lang_attach.html">lang_attach.html</a></li><li>attach - <a href="lang_attach.html">lang_attach.html</a></li><li>ATTACH DATABASE - <a href="lang_attach.html">lang_attach.html</a></li><li>attach-stmt - <a href="syntax/attach-stmt.html">syntax/attach-stmt.html</a></li><li>attach-stmt syntax diagram - <a href="syntax/attach-stmt.html">syntax/attach-stmt.html</a></li><li>attached - <a href="lang_attach.html">lang_attach.html</a></li><li>attack resistance - <a href="security.html">security.html</a></li><li>authorizer callback - <a href="c3ref/set_authorizer.html">c3ref/set_authorizer.html</a></li><li>authorizer method - <a href="tclsqlite.html#authorizer">tclsqlite.html#authorizer</a></li><li>auto modifier - <a href="lang_datefunc.html#automod">lang_datefunc.html#automod</a></li><li>auto_vacuum - <a href="pragma.html#pragma_auto_vacuum">pragma.html#pragma_auto_vacuum</a></li><li>auto_vacuum pragma - <a href="pragma.html#pragma_auto_vacuum">pragma.html#pragma_auto_vacuum</a></li><li>autocommit mode - <a href="c3ref/get_autocommit.html">c3ref/get_autocommit.html</a></li><li>AUTOINCREMENT - <a href="autoinc.html">autoinc.html</a></li><li>automated undo/redo stack - <a href="undoredo.html">undoredo.html</a></li><li>automatic indexes - <a href="optoverview.html#autoindex">optoverview.html#autoindex</a></li><li>Automatic indexing - <a href="optoverview.html#autoindex">optoverview.html#autoindex</a></li><li>automatic indexing - <a href="optoverview.html#autoindex">optoverview.html#autoindex</a></li><li>automatic_index - <a href="pragma.html#pragma_automatic_index">pragma.html#pragma_automatic_index</a></li><li>automatic_index pragma - <a href="pragma.html#pragma_automatic_index">pragma.html#pragma_automatic_index</a></li><li>automatically running ANALYZE - <a href="lang_analyze.html#autoanalyze">lang_analyze.html#autoanalyze</a></li><li>automerge command - <a href="fts3.html#*fts4automergecmd">fts3.html#*fts4automergecmd</a></li><li>auxiliary columns - <a href="rtree.html#auxcol">rtree.html#auxcol</a></li><li>auxiliary columns in r-tree tables - <a href="rtree.html#auxcol">rtree.html#auxcol</a></li><li>auxiliary function mapping - <a href="fts5.html#sorting_by_auxiliary_function_results">fts5.html#sorting_by_auxiliary_function_results</a></li><li>avg - <a href="lang_aggfunc.html#avg">lang_aggfunc.html#avg</a></li><li>avg aggregate function - <a href="lang_aggfunc.html#avg">lang_aggfunc.html#avg</a></li><li>avoiding large WAL files - <a href="wal.html#bigwal">wal.html#bigwal</a></li><li>B-tree - <a href="fileformat2.html#btree">fileformat2.html#btree</a></li><li>B-Trees - <a href="fileformat2.html#btree">fileformat2.html#btree</a></li><li>backup API - <a href="backup.html">backup.html</a></li><li>backup method - <a href="tclsqlite.html#backup">tclsqlite.html#backup</a></li><li>bare aggregate terms - <a href="lang_select.html#bareagg">lang_select.html#bareagg</a></li><li>base64 SQL function - <a href="cli.html#base64">cli.html#base64</a></li><li>base85 SQL function - <a href="cli.html#base85">cli.html#base85</a></li><li>bcvtab - <a href="bytecodevtab.html">bytecodevtab.html</a></li><li>BEGIN - <a href="lang_transaction.html">lang_transaction.html</a></li><li>BEGIN EXCLUSIVE - <a href="lang_transaction.html#immediate">lang_transaction.html#immediate</a></li><li>BEGIN IMMEDIATE - <a href="lang_transaction.html#immediate">lang_transaction.html#immediate</a></li><li>begin-stmt - <a href="syntax/begin-stmt.html">syntax/begin-stmt.html</a></li><li>begin-stmt syntax diagram - <a href="syntax/begin-stmt.html">syntax/begin-stmt.html</a></li><li>benefits of using WITHOUT ROWID - <a href="withoutrowid.html#bene">withoutrowid.html#bene</a></li><li>BETWEEN - <a href="lang_expr.html#between">lang_expr.html#between</a></li><li>BINARY - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>BINARY collating function - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>binary operators - <a href="lang_expr.html#binaryops">lang_expr.html#binaryops</a></li><li>bind_fallback method - <a href="tclsqlite.html#bind_fallback">tclsqlite.html#bind_fallback</a></li><li>BLOB handle - <a href="c3ref/blob.html">c3ref/blob.html</a></li><li>BLOB handles - <a href="c3ref/blob.html">c3ref/blob.html</a></li><li>BLOB I/O performance - <a href="intern-v-extern-blob.html">intern-v-extern-blob.html</a></li><li>block sorting - <a href="queryplanner.html#partialsort">queryplanner.html#partialsort</a></li><li>books about SQLite - <a href="books.html">books.html</a></li><li>boolean datatype - <a href="datatype3.html#boolean">datatype3.html#boolean</a></li><li>boolean expression - <a href="lang_expr.html#booleanexpr">lang_expr.html#booleanexpr</a></li><li>bound parameter - <a href="lang_expr.html#varparam">lang_expr.html#varparam</a></li><li>bound parameters - <a href="lang_expr.html#varparam">lang_expr.html#varparam</a></li><li>bugs - <a href="fts3.html#limitations">fts3.html#limitations</a></li><li>build product names - <a href="download.html#encoding">download.html#encoding</a></li><li>building a DLL - <a href="howtocompile.html#dll">howtocompile.html#dll</a></li><li>building the amalgamation - <a href="howtocompile.html#amal">howtocompile.html#amal</a></li><li>built-in memory allocators - <a href="malloc.html#altalloc">malloc.html#altalloc</a></li><li>built-in printf - <a href="printf.html">printf.html</a></li><li>built-in SQL math functions - <a href="lang_mathfunc.html">lang_mathfunc.html</a></li><li>built-in window functions - <a href="windowfunctions.html#builtins">windowfunctions.html#builtins</a></li><li>built-ins - <a href="windowfunctions.html#builtins">windowfunctions.html#builtins</a></li><li>builtin window functions - <a href="windowfunctions.html#biwinfunc">windowfunctions.html#biwinfunc</a></li><li>busy handler - <a href="c3ref/busy_handler.html">c3ref/busy_handler.html</a></li><li>busy method - <a href="tclsqlite.html#busy">tclsqlite.html#busy</a></li><li>busy-handler callback - <a href="c3ref/busy_handler.html">c3ref/busy_handler.html</a></li><li>busy_timeout - <a href="pragma.html#pragma_busy_timeout">pragma.html#pragma_busy_timeout</a></li><li>busy_timeout pragma - <a href="pragma.html#pragma_busy_timeout">pragma.html#pragma_busy_timeout</a></li><li>byte-order determination rules - <a href="c3ref/bind_blob.html#byteorderdeterminationrules">c3ref/bind_blob.html#byteorderdeterminationrules</a></li><li>bytecode - <a href="opcode.html">opcode.html</a></li><li>bytecode and tables_used virtual tables - <a href="bytecodevtab.html">bytecodevtab.html</a></li><li>bytecode engine - <a href="opcode.html">opcode.html</a></li><li>bytecode virtual table - <a href="bytecodevtab.html">bytecodevtab.html</a></li><li>bytecodes - <a href="opcode.html">opcode.html</a></li><li>C-API function list - <a href="c3ref/funclist.html">c3ref/funclist.html</a></li><li>C-language Interface - <a href="c3ref/intro.html">c3ref/intro.html</a></li><li>cache method - <a href="tclsqlite.html#cache">tclsqlite.html#cache</a></li><li>cache query parameter - <a href="uri.html#uricache">uri.html#uricache</a></li><li>cache_size - <a href="pragma.html#pragma_cache_size">pragma.html#pragma_cache_size</a></li><li>cache_size pragma - <a href="pragma.html#pragma_cache_size">pragma.html#pragma_cache_size</a></li><li>cache_spill - <a href="pragma.html#pragma_cache_spill">pragma.html#pragma_cache_spill</a></li><li>cache_spill pragma - <a href="pragma.html#pragma_cache_spill">pragma.html#pragma_cache_spill</a></li><li>canonical source code - <a href="getthecode.html">getthecode.html</a></li><li>capi3ref - <a href="c3ref/intro.html">c3ref/intro.html</a></li><li>capi3ref_funclist - <a href="c3ref/funclist.html">c3ref/funclist.html</a></li><li>carray - <a href="carray.html">carray.html</a></li><li>carray table-valued function - <a href="carray.html">carray.html</a></li><li>CASE expression - <a href="lang_expr.html#case">lang_expr.html#case</a></li><li>case_sensitive_like - <a href="pragma.html#pragma_case_sensitive_like">pragma.html#pragma_case_sensitive_like</a></li><li>case_sensitive_like pragma - <a href="pragma.html#pragma_case_sensitive_like">pragma.html#pragma_case_sensitive_like</a></li><li>CAST - <a href="lang_expr.html#castexpr">lang_expr.html#castexpr</a></li><li>cast - <a href="lang_expr.html#castexpr">lang_expr.html#castexpr</a></li><li>CAST expression - <a href="lang_expr.html#castexpr">lang_expr.html#castexpr</a></li><li>CAST operator - <a href="lang_expr.html#castexpr">lang_expr.html#castexpr</a></li><li>categorical listing of SQLite documents - <a href="docs.html">docs.html</a></li><li>ceil - <a href="lang_mathfunc.html#ceil">lang_mathfunc.html#ceil</a></li><li>ceiling - <a href="lang_mathfunc.html#ceil">lang_mathfunc.html#ceil</a></li><li>cell format summary - <a href="fileformat2.html#cellformat">fileformat2.html#cellformat</a></li><li>cell payload - <a href="fileformat2.html#cell_payload">fileformat2.html#cell_payload</a></li><li>cell_size_check - <a href="pragma.html#pragma_cell_size_check">pragma.html#pragma_cell_size_check</a></li><li>cell_size_check pragma - <a href="pragma.html#pragma_cell_size_check">pragma.html#pragma_cell_size_check</a></li><li>cfgerrors - <a href="howtocorrupt.html#cfgerr">howtocorrupt.html#cfgerr</a></li><li>change counter - <a href="fileformat2.html#chngctr">fileformat2.html#chngctr</a></li><li>changes - <a href="lang_corefunc.html#changes">lang_corefunc.html#changes</a></li><li>changes method - <a href="tclsqlite.html#changes">tclsqlite.html#changes</a></li><li>changes SQL function - <a href="lang_corefunc.html#changes">lang_corefunc.html#changes</a></li><li>changeset - <a href="sessionintro.html#changeset">sessionintro.html#changeset</a></li><li>changesets - <a href="sessionintro.html#changeset">sessionintro.html#changeset</a></li><li>char - <a href="lang_corefunc.html#char">lang_corefunc.html#char</a></li><li>char SQL function - <a href="lang_corefunc.html#char">lang_corefunc.html#char</a></li><li>CHECK - <a href="lang_createtable.html#ckconst">lang_createtable.html#ckconst</a></li><li>CHECK constraint - <a href="lang_createtable.html#ckconst">lang_createtable.html#ckconst</a></li><li>CHECK constraints - <a href="lang_createtable.html#ckconst">lang_createtable.html#ckconst</a></li><li>checklist - <a href="testing.html#cklist">testing.html#cklist</a></li><li>checkpoint - <a href="wal.html#ckpt">wal.html#ckpt</a></li><li>checkpoint mode - <a href="c3ref/c_checkpoint_full.html">c3ref/c_checkpoint_full.html</a></li><li>checkpoint_fullfsync - <a href="pragma.html#pragma_checkpoint_fullfsync">pragma.html#pragma_checkpoint_fullfsync</a></li><li>checkpoint_fullfsync pragma - <a href="pragma.html#pragma_checkpoint_fullfsync">pragma.html#pragma_checkpoint_fullfsync</a></li><li>checkpointed - <a href="wal.html#ckpt">wal.html#ckpt</a></li><li>checkpointing - <a href="wal.html#ckpt">wal.html#ckpt</a></li><li>checksum VFS - <a href="cksumvfs.html">cksumvfs.html</a></li><li>checksum VFS shim - <a href="cksumvfs.html">cksumvfs.html</a></li><li>child key - <a href="foreignkeys.html#parentchild">foreignkeys.html#parentchild</a></li><li>child table - <a href="foreignkeys.html#parentchild">foreignkeys.html#parentchild</a></li><li>chronology - <a href="chronology.html">chronology.html</a></li><li>cintro - <a href="cintro.html">cintro.html</a></li><li>cksumvfs - <a href="cksumvfs.html">cksumvfs.html</a></li><li>CLI - <a href="cli.html">cli.html</a></li><li>clone the entire repository - <a href="getthecode.html#clone">getthecode.html#clone</a></li><li>close method - <a href="tclsqlite.html#close">tclsqlite.html#close</a></li><li>Clustered indexes - <a href="withoutrowid.html">withoutrowid.html</a></li><li>co-routines - <a href="optoverview.html#coroutines">optoverview.html#coroutines</a></li><li>coalesce - <a href="lang_corefunc.html#coalesce">lang_corefunc.html#coalesce</a></li><li>coalesce SQL function - <a href="lang_corefunc.html#coalesce">lang_corefunc.html#coalesce</a></li><li>Code of Conduct - <a href="codeofconduct.html">codeofconduct.html</a></li><li>Code of Ethics - <a href="codeofethics.html">codeofethics.html</a></li><li>Code of Ethics of the Project Founder - <a href="codeofethics.html">codeofethics.html</a></li><li>code repositories - <a href="download.html#srctree">download.html#srctree</a></li><li>COLLATE - <a href="lang_createindex.html#collidx">lang_createindex.html#collidx</a></li><li>COLLATE clause - <a href="lang_createtable.html#collateclause">lang_createtable.html#collateclause</a></li><li>COLLATE clauses - <a href="lang_createtable.html#collateclause">lang_createtable.html#collateclause</a></li><li>COLLATE constraint - <a href="lang_createtable.html#collateclause">lang_createtable.html#collateclause</a></li><li>collate method - <a href="tclsqlite.html#collate">tclsqlite.html#collate</a></li><li>COLLATE operator - <a href="lang_expr.html#collateop">lang_expr.html#collateop</a></li><li>collating function - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>collating sequence - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>collating sequences - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>collation - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>collation_list - <a href="pragma.html#pragma_collation_list">pragma.html#pragma_collation_list</a></li><li>collation_list pragma - <a href="pragma.html#pragma_collation_list">pragma.html#pragma_collation_list</a></li><li>collation_needed method - <a href="tclsqlite.html#collation_needed">tclsqlite.html#collation_needed</a></li><li>column access functions - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>column affinity - <a href="datatype3.html#affinity">datatype3.html#affinity</a></li><li>column definition - <a href="lang_createtable.html#tablecoldef">lang_createtable.html#tablecoldef</a></li><li>column definitions - <a href="lang_createtable.html#tablecoldef">lang_createtable.html#tablecoldef</a></li><li>column-constraint - <a href="syntax/column-constraint.html">syntax/column-constraint.html</a></li><li>column-constraint syntax diagram - <a href="syntax/column-constraint.html">syntax/column-constraint.html</a></li><li>column-def - <a href="syntax/column-def.html">syntax/column-def.html</a></li><li>column-def syntax diagram - <a href="syntax/column-def.html">syntax/column-def.html</a></li><li>column-name-list - <a href="syntax/column-name-list.html">syntax/column-name-list.html</a></li><li>column-name-list syntax diagram - <a href="syntax/column-name-list.html">syntax/column-name-list.html</a></li><li>Columnar output modes - <a href="cli.html#clmnr">cli.html#clmnr</a></li><li>columnar output modes - <a href="cli.html#clmnr">cli.html#clmnr</a></li><li>colUsed field - <a href="vtab.html#colUsed">vtab.html#colUsed</a></li><li>comma option - <a href="printf.html#comma">printf.html#comma</a></li><li>Command Line Interface - <a href="cli.html">cli.html</a></li><li>command-line interface - <a href="cli.html">cli.html</a></li><li>command-line options - <a href="cli.html#clopts">cli.html#clopts</a></li><li>command-line shell - <a href="cli.html">cli.html</a></li><li>commands - <a href="fts3.html#commands">fts3.html#commands</a></li><li>comment - <a href="lang_comment.html">lang_comment.html</a></li><li>comment-syntax - <a href="syntax/comment-syntax.html">syntax/comment-syntax.html</a></li><li>comment-syntax syntax diagram - <a href="syntax/comment-syntax.html">syntax/comment-syntax.html</a></li><li>comments - <a href="lang_comment.html">lang_comment.html</a></li><li>COMMIT - <a href="lang_transaction.html">lang_transaction.html</a></li><li>commit-stmt - <a href="syntax/commit-stmt.html">syntax/commit-stmt.html</a></li><li>commit-stmt syntax diagram - <a href="syntax/commit-stmt.html">syntax/commit-stmt.html</a></li><li>commit_hook method - <a href="tclsqlite.html#commit_hook">tclsqlite.html#commit_hook</a></li><li>common table expressions - <a href="lang_with.html">lang_with.html</a></li><li>common-table-expression - <a href="syntax/common-table-expression.html">syntax/common-table-expression.html</a></li><li>common-table-expression syntax diagram - <a href="syntax/common-table-expression.html">syntax/common-table-expression.html</a></li><li>comparison affinity rules - <a href="datatype3.html#compaff">datatype3.html#compaff</a></li><li>comparison expressions - <a href="datatype3.html#comparisons">datatype3.html#comparisons</a></li><li>comparison with fts4 - <a href="fts5.html#appendix_a">fts5.html#appendix_a</a></li><li>compilation - <a href="swarmvtab.html#compiling_and_using_swarmvtab">swarmvtab.html#compiling_and_using_swarmvtab</a></li><li>compile fts - <a href="fts3.html#compiling_and_enabling_fts3_and_fts4">fts3.html#compiling_and_enabling_fts3_and_fts4</a></li><li>compile loadable extensions - <a href="loadext.html#build">loadext.html#build</a></li><li>compile-time options - <a href="compile.html">compile.html</a></li><li>compile_options - <a href="pragma.html#pragma_compile_options">pragma.html#pragma_compile_options</a></li><li>compile_options pragma - <a href="pragma.html#pragma_compile_options">pragma.html#pragma_compile_options</a></li><li>Compiling Loadable Extensions - <a href="loadext.html#build">loadext.html#build</a></li><li>compiling the CLI - <a href="howtocompile.html#cli">howtocompile.html#cli</a></li><li>compiling the TCL interface - <a href="howtocompile.html#tcl">howtocompile.html#tcl</a></li><li>complete list of SQLite releases - <a href="changes.html">changes.html</a></li><li>complete method - <a href="tclsqlite.html#complete">tclsqlite.html#complete</a></li><li>COMPLETION - <a href="completion.html">completion.html</a></li><li>COMPLETION extension - <a href="completion.html">completion.html</a></li><li>COMPLETION table-valued function - <a href="completion.html">completion.html</a></li><li>compound query - <a href="lang_select.html#compound">lang_select.html#compound</a></li><li>compound SELECT - <a href="lang_select.html#compound">lang_select.html#compound</a></li><li>compound select - <a href="lang_select.html#compound">lang_select.html#compound</a></li><li>compound SELECTs - <a href="lang_select.html#compound">lang_select.html#compound</a></li><li>compound-operator - <a href="syntax/compound-operator.html">syntax/compound-operator.html</a></li><li>compound-operator syntax diagram - <a href="syntax/compound-operator.html">syntax/compound-operator.html</a></li><li>compound-select-stmt - <a href="syntax/compound-select-stmt.html">syntax/compound-select-stmt.html</a></li><li>compound-select-stmt syntax diagram - <a href="syntax/compound-select-stmt.html">syntax/compound-select-stmt.html</a></li><li>compressed FTS4 content - <a href="fts3.html#*fts4compression">fts3.html#*fts4compression</a></li><li>compute the Mandelbrot set - <a href="lang_with.html#mandelbrot">lang_with.html#mandelbrot</a></li><li>computed columns - <a href="gencol.html">gencol.html</a></li><li>concat - <a href="lang_corefunc.html#concat">lang_corefunc.html#concat</a></li><li>concat SQL function - <a href="lang_corefunc.html#concat">lang_corefunc.html#concat</a></li><li>concat_ws - <a href="lang_corefunc.html#concat_ws">lang_corefunc.html#concat_ws</a></li><li>concat_ws SQL function - <a href="lang_corefunc.html#concat_ws">lang_corefunc.html#concat_ws</a></li><li>config method - <a href="tclsqlite.html#config">tclsqlite.html#config</a></li><li>configurable edit distances - <a href="spellfix1.html#configeditdist">spellfix1.html#configeditdist</a></li><li>configuration option - <a href="c3ref/c_config_covering_index_scan.html">c3ref/c_config_covering_index_scan.html</a></li><li>conflict - <a href="lang_conflict.html">lang_conflict.html</a></li><li>conflict clause - <a href="lang_conflict.html">lang_conflict.html</a></li><li>conflict resolution algorithm - <a href="lang_conflict.html">lang_conflict.html</a></li><li>conflict resolution mode - <a href="c3ref/c_fail.html">c3ref/c_fail.html</a></li><li>conflict-clause - <a href="syntax/conflict-clause.html">syntax/conflict-clause.html</a></li><li>conflict-clause syntax diagram - <a href="syntax/conflict-clause.html">syntax/conflict-clause.html</a></li><li>constant-propagation optimization - <a href="optoverview.html#constprop">optoverview.html#constprop</a></li><li>contentless fts4 tables - <a href="fts3.html#_contentless_fts4_tables_">fts3.html#_contentless_fts4_tables_</a></li><li>contentless-delete - <a href="fts5.html#clssdeltab">fts5.html#clssdeltab</a></li><li>copy method - <a href="tclsqlite.html#copy">tclsqlite.html#copy</a></li><li>copyright - <a href="copyright.html">copyright.html</a></li><li>Core Functions - <a href="lang_corefunc.html">lang_corefunc.html</a></li><li>core URI query parameters - <a href="c3ref/open.html#coreuriqueryparameters">c3ref/open.html#coreuriqueryparameters</a></li><li>corefunc - <a href="lang_corefunc.html">lang_corefunc.html</a></li><li>coreqp - <a href="uri.html#coreqp">uri.html#coreqp</a></li><li>correlated subqueries - <a href="lang_expr.html#cosub">lang_expr.html#cosub</a></li><li>cos - <a href="lang_mathfunc.html#cos">lang_mathfunc.html#cos</a></li><li>cos SQL function - <a href="lang_mathfunc.html#cos">lang_mathfunc.html#cos</a></li><li>cosh - <a href="lang_mathfunc.html#cosh">lang_mathfunc.html#cosh</a></li><li>cosh SQL function - <a href="lang_mathfunc.html#cosh">lang_mathfunc.html#cosh</a></li><li>count - <a href="lang_aggfunc.html#count">lang_aggfunc.html#count</a></li><li>count aggregate function - <a href="lang_aggfunc.html#count">lang_aggfunc.html#count</a></li><li>count_changes - <a href="pragma.html#pragma_count_changes">pragma.html#pragma_count_changes</a></li><li>count_changes pragma - <a href="pragma.html#pragma_count_changes">pragma.html#pragma_count_changes</a></li><li>coverage testing vs. fuzz testing - <a href="testing.html#tension">testing.html#tension</a></li><li>covering index - <a href="queryplanner.html#covidx">queryplanner.html#covidx</a></li><li>covering indexes - <a href="queryplanner.html#covidx">queryplanner.html#covidx</a></li><li>covering indices - <a href="queryplanner.html#covidx">queryplanner.html#covidx</a></li><li>CPU cycles used - <a href="cpu.html">cpu.html</a></li><li>CPU performance measurement - <a href="cpu.html">cpu.html</a></li><li>CREATE INDEX - <a href="lang_createindex.html">lang_createindex.html</a></li><li>CREATE TABLE - <a href="lang_createtable.html">lang_createtable.html</a></li><li>CREATE TABLE AS - <a href="lang_createtable.html#createtabas">lang_createtable.html#createtabas</a></li><li>CREATE TRIGGER - <a href="lang_createtrigger.html">lang_createtrigger.html</a></li><li>CREATE VIEW - <a href="lang_createview.html">lang_createview.html</a></li><li>CREATE VIRTUAL TABLE - <a href="lang_createvtab.html">lang_createvtab.html</a></li><li>create-index-stmt - <a href="syntax/create-index-stmt.html">syntax/create-index-stmt.html</a></li><li>create-index-stmt syntax diagram - <a href="syntax/create-index-stmt.html">syntax/create-index-stmt.html</a></li><li>create-table-stmt - <a href="syntax/create-table-stmt.html">syntax/create-table-stmt.html</a></li><li>create-table-stmt syntax diagram - <a href="syntax/create-table-stmt.html">syntax/create-table-stmt.html</a></li><li>create-trigger-stmt - <a href="syntax/create-trigger-stmt.html">syntax/create-trigger-stmt.html</a></li><li>create-trigger-stmt syntax diagram - <a href="syntax/create-trigger-stmt.html">syntax/create-trigger-stmt.html</a></li><li>create-view-stmt - <a href="syntax/create-view-stmt.html">syntax/create-view-stmt.html</a></li><li>create-view-stmt syntax diagram - <a href="syntax/create-view-stmt.html">syntax/create-view-stmt.html</a></li><li>create-virtual-table-stmt - <a href="syntax/create-virtual-table-stmt.html">syntax/create-virtual-table-stmt.html</a></li><li>create-virtual-table-stmt syntax diagram - <a href="syntax/create-virtual-table-stmt.html">syntax/create-virtual-table-stmt.html</a></li><li>createindex - <a href="lang_createindex.html">lang_createindex.html</a></li><li>createtable - <a href="lang_createtable.html">lang_createtable.html</a></li><li>createtrigger - <a href="lang_createtrigger.html">lang_createtrigger.html</a></li><li>createview - <a href="lang_createview.html">lang_createview.html</a></li><li>createvtab - <a href="lang_createvtab.html">lang_createvtab.html</a></li><li>crew - <a href="crew.html">crew.html</a></li><li>CROSS JOIN - <a href="optoverview.html#crossjoin">optoverview.html#crossjoin</a></li><li>csv - <a href="csv.html">csv.html</a></li><li>CSV export - <a href="cli.html#csvout">cli.html#csvout</a></li><li>CSV import - <a href="cli.html#csv">cli.html#csv</a></li><li>CSV virtual table - <a href="csv.html">csv.html</a></li><li>cte-table-name - <a href="syntax/cte-table-name.html">syntax/cte-table-name.html</a></li><li>cte-table-name syntax diagram - <a href="syntax/cte-table-name.html">syntax/cte-table-name.html</a></li><li>custom auxiliary functions - <a href="fts5.html#_custom_auxiliary_functions_api_reference_">fts5.html#_custom_auxiliary_functions_api_reference_</a></li><li>custom builds - <a href="custombuild.html">custombuild.html</a></li><li>custom r-tree queries - <a href="rtree.html#customquery">rtree.html#customquery</a></li><li>custom SQL function - <a href="appfunc.html">appfunc.html</a></li><li>custom SQL functions - <a href="appfunc.html">appfunc.html</a></li><li>custom tokenizers - <a href="fts5.html#custom_tokenizers">fts5.html#custom_tokenizers</a></li><li>custom virtual tables - <a href="vtab.html#customvtab">vtab.html#customvtab</a></li><li>CVEs - <a href="cves.html">cves.html</a></li><li>Dan Kennedy - <a href="crew.html#dan">crew.html#dan</a></li><li>data container - <a href="whentouse.html#container">whentouse.html#container</a></li><li>data transfer format - <a href="whentouse.html#wireproto">whentouse.html#wireproto</a></li><li>data_store_directory - <a href="pragma.html#pragma_data_store_directory">pragma.html#pragma_data_store_directory</a></li><li>data_store_directory pragma - <a href="pragma.html#pragma_data_store_directory">pragma.html#pragma_data_store_directory</a></li><li>data_version - <a href="pragma.html#pragma_data_version">pragma.html#pragma_data_version</a></li><li>data_version pragma - <a href="pragma.html#pragma_data_version">pragma.html#pragma_data_version</a></li><li>database as container object - <a href="sqlar.html#dbasobj">sqlar.html#dbasobj</a></li><li>database as object - <a href="sqlar.html#dbasobj">sqlar.html#dbasobj</a></li><li>database connection - <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a></li><li>database connections - <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a></li><li>database corruption caused by inconsistent use of 83 filenames - <a href="shortnames.html#db83corrupt">shortnames.html#db83corrupt</a></li><li>database filename aliasing - <a href="howtocorrupt.html#alias">howtocorrupt.html#alias</a></li><li>database header - <a href="fileformat2.html#database_header">fileformat2.html#database_header</a></li><li>database_list - <a href="pragma.html#pragma_database_list">pragma.html#pragma_database_list</a></li><li>database_list pragma - <a href="pragma.html#pragma_database_list">pragma.html#pragma_database_list</a></li><li>datatype - <a href="datatype3.html">datatype3.html</a></li><li>date - <a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a></li><li>date and time datatype - <a href="datatype3.html#datetime">datatype3.html#datetime</a></li><li>Date And Time Functions - <a href="lang_datefunc.html">lang_datefunc.html</a></li><li>date and time functions - <a href="lang_datefunc.html">lang_datefunc.html</a></li><li>date SQL function - <a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a></li><li>date/time modifiers - <a href="lang_datefunc.html#dtmods">lang_datefunc.html#dtmods</a></li><li>date/time special case - <a href="deterministic.html#dtexception">deterministic.html#dtexception</a></li><li>datefunc - <a href="lang_datefunc.html">lang_datefunc.html</a></li><li>datetime - <a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a></li><li>datetime SQL function - <a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a></li><li>dbghints - <a href="debugging.html">debugging.html</a></li><li>dbhash - <a href="dbhash.html">dbhash.html</a></li><li>dbhash.exe - <a href="dbhash.html">dbhash.html</a></li><li>dbsqlfuzz - <a href="testing.html#dbsqlfuzz">testing.html#dbsqlfuzz</a></li><li>dbstat - <a href="dbstat.html">dbstat.html</a></li><li>DBSTAT aggregated mode - <a href="dbstat.html#dbstatagg">dbstat.html#dbstatagg</a></li><li>DBSTAT virtual table - <a href="dbstat.html">dbstat.html</a></li><li>dbstat virtual table - <a href="dbstat.html">dbstat.html</a></li><li>debugging hints - <a href="debugging.html">debugging.html</a></li><li>debugging memory allocator - <a href="malloc.html#memdebug">malloc.html#memdebug</a></li><li>decimal extension - <a href="floatingpoint.html#decext">floatingpoint.html#decext</a></li><li>decision checklist - <a href="whentouse.html#dbcklst">whentouse.html#dbcklst</a></li><li>DEFAULT clauses - <a href="lang_createtable.html#dfltval">lang_createtable.html#dfltval</a></li><li>default column value - <a href="lang_createtable.html#dfltval">lang_createtable.html#dfltval</a></li><li>default memory allocator - <a href="malloc.html#defaultalloc">malloc.html#defaultalloc</a></li><li>default value - <a href="lang_createtable.html#dfltval">lang_createtable.html#dfltval</a></li><li>default_cache_size - <a href="pragma.html#pragma_default_cache_size">pragma.html#pragma_default_cache_size</a></li><li>default_cache_size pragma - <a href="pragma.html#pragma_default_cache_size">pragma.html#pragma_default_cache_size</a></li><li>defense against dark arts - <a href="security.html">security.html</a></li><li>defense against the dark arts - <a href="security.html">security.html</a></li><li>defensive code - <a href="testing.html#defcode">testing.html#defcode</a></li><li>defer_foreign_keys - <a href="pragma.html#pragma_defer_foreign_keys">pragma.html#pragma_defer_foreign_keys</a></li><li>defer_foreign_keys pragma - <a href="pragma.html#pragma_defer_foreign_keys">pragma.html#pragma_defer_foreign_keys</a></li><li>degrees - <a href="lang_mathfunc.html#degrees">lang_mathfunc.html#degrees</a></li><li>degrees SQL function - <a href="lang_mathfunc.html#degrees">lang_mathfunc.html#degrees</a></li><li>DELETE - <a href="lang_delete.html">lang_delete.html</a></li><li>delete - <a href="lang_delete.html">lang_delete.html</a></li><li>delete-stmt - <a href="syntax/delete-stmt.html">syntax/delete-stmt.html</a></li><li>delete-stmt syntax diagram - <a href="syntax/delete-stmt.html">syntax/delete-stmt.html</a></li><li>delete-stmt-limited - <a href="syntax/delete-stmt-limited.html">syntax/delete-stmt-limited.html</a></li><li>delete-stmt-limited syntax diagram - <a href="syntax/delete-stmt-limited.html">syntax/delete-stmt-limited.html</a></li><li>deletemerge - <a href="fts5.html#the_deletemerge_configuration_option">fts5.html#the_deletemerge_configuration_option</a></li><li>DELETEs - <a href="lang_delete.html">lang_delete.html</a></li><li>deleting a hot journal - <a href="howtocorrupt.html#delhotjrnl">howtocorrupt.html#delhotjrnl</a></li><li>deprecated - <a href="c3ref/experimental.html">c3ref/experimental.html</a></li><li>DESC - <a href="lang_createindex.html#descidx">lang_createindex.html#descidx</a></li><li>descending index - <a href="lang_createindex.html#descidx">lang_createindex.html#descidx</a></li><li>descending indexes - <a href="lang_createindex.html#descidx">lang_createindex.html#descidx</a></li><li>descending indices - <a href="lang_createindex.html#descidx">lang_createindex.html#descidx</a></li><li>deserialize method - <a href="tclsqlite.html#deserialize">tclsqlite.html#deserialize</a></li><li>DETACH - <a href="lang_detach.html">lang_detach.html</a></li><li>detach - <a href="lang_detach.html">lang_detach.html</a></li><li>DETACH DATABASE - <a href="lang_detach.html">lang_detach.html</a></li><li>detach-stmt - <a href="syntax/detach-stmt.html">syntax/detach-stmt.html</a></li><li>detach-stmt syntax diagram - <a href="syntax/detach-stmt.html">syntax/detach-stmt.html</a></li><li>deterministic function - <a href="deterministic.html">deterministic.html</a></li><li>deterministic functions - <a href="deterministic.html">deterministic.html</a></li><li>deterministic SQL functions - <a href="deterministic.html">deterministic.html</a></li><li>DISTINCT - <a href="lang_select.html#distinct">lang_select.html#distinct</a></li><li>doclist - <a href="doclist.html">doclist.html</a></li><li>documents by category - <a href="docs.html">docs.html</a></li><li>dot-commands - <a href="cli.html#dotcmd">cli.html#dotcmd</a></li><li>double-quoted string literal - <a href="quirks.html#dblquote">quirks.html#dblquote</a></li><li>double-quoted string misfeature - <a href="quirks.html#dblquote">quirks.html#dblquote</a></li><li>download page - <a href="download.html">download.html</a></li><li>drop column - <a href="lang_altertable.html#altertabdropcol">lang_altertable.html#altertabdropcol</a></li><li>DROP INDEX - <a href="lang_dropindex.html">lang_dropindex.html</a></li><li>DROP TABLE - <a href="lang_droptable.html">lang_droptable.html</a></li><li>DROP TRIGGER - <a href="lang_droptrigger.html">lang_droptrigger.html</a></li><li>DROP VIEW - <a href="lang_dropview.html">lang_dropview.html</a></li><li>drop-index-stmt - <a href="syntax/drop-index-stmt.html">syntax/drop-index-stmt.html</a></li><li>drop-index-stmt syntax diagram - <a href="syntax/drop-index-stmt.html">syntax/drop-index-stmt.html</a></li><li>drop-table-stmt - <a href="syntax/drop-table-stmt.html">syntax/drop-table-stmt.html</a></li><li>drop-table-stmt syntax diagram - <a href="syntax/drop-table-stmt.html">syntax/drop-table-stmt.html</a></li><li>drop-trigger-stmt - <a href="syntax/drop-trigger-stmt.html">syntax/drop-trigger-stmt.html</a></li><li>drop-trigger-stmt syntax diagram - <a href="syntax/drop-trigger-stmt.html">syntax/drop-trigger-stmt.html</a></li><li>drop-view-stmt - <a href="syntax/drop-view-stmt.html">syntax/drop-view-stmt.html</a></li><li>drop-view-stmt syntax diagram - <a href="syntax/drop-view-stmt.html">syntax/drop-view-stmt.html</a></li><li>dropindex - <a href="lang_dropindex.html">lang_dropindex.html</a></li><li>droptable - <a href="lang_droptable.html">lang_droptable.html</a></li><li>droptrigger - <a href="lang_droptrigger.html">lang_droptrigger.html</a></li><li>dropview - <a href="lang_dropview.html">lang_dropview.html</a></li><li>dynamic string - <a href="c3ref/str.html">c3ref/str.html</a></li><li>dynamic typing - <a href="datatype3.html">datatype3.html</a></li><li>edit SQL function - <a href="cli.html#editfunc">cli.html#editfunc</a></li><li>editdist3 - <a href="spellfix1.html#editdist3">spellfix1.html#editdist3</a></li><li>embedded - <a href="serverless.html">serverless.html</a></li><li>empty_result_callbacks - <a href="pragma.html#pragma_empty_result_callbacks">pragma.html#pragma_empty_result_callbacks</a></li><li>empty_result_callbacks pragma - <a href="pragma.html#pragma_empty_result_callbacks">pragma.html#pragma_empty_result_callbacks</a></li><li>enable_load_extension method - <a href="tclsqlite.html#enable_load_extension">tclsqlite.html#enable_load_extension</a></li><li>encoding - <a href="pragma.html#pragma_encoding">pragma.html#pragma_encoding</a></li><li>encoding pragma - <a href="pragma.html#pragma_encoding">pragma.html#pragma_encoding</a></li><li>enhanced query syntax - <a href="fts3.html#_set_operations_using_the_enhanced_query_syntax">fts3.html#_set_operations_using_the_enhanced_query_syntax</a></li><li>eponymous virtual table - <a href="vtab.html#epovtab">vtab.html#epovtab</a></li><li>eponymous virtual tables - <a href="vtab.html#epovtab">vtab.html#epovtab</a></li><li>eponymous-only virtual table - <a href="vtab.html#epoonlyvtab">vtab.html#epoonlyvtab</a></li><li>eponymous-only virtual tables - <a href="vtab.html#epoonlyvtab">vtab.html#epoonlyvtab</a></li><li>eqp-or-opt - <a href="eqp.html#or-opt">eqp.html#or-opt</a></li><li>errlog - <a href="errlog.html">errlog.html</a></li><li>error code - <a href="rescode.html">rescode.html</a></li><li>error codes - <a href="rescode.html">rescode.html</a></li><li>error log - <a href="errlog.html">errlog.html</a></li><li>errorcode method - <a href="tclsqlite.html#errorcode">tclsqlite.html#errorcode</a></li><li>ESCAPE - <a href="lang_expr.html#like">lang_expr.html#like</a></li><li>eval method - <a href="tclsqlite.html#eval">tclsqlite.html#eval</a></li><li>EXCLUDE clause - <a href="windowfunctions.html#wexcls">windowfunctions.html#wexcls</a></li><li>exclude clause - <a href="windowfunctions.html#wexcls">windowfunctions.html#wexcls</a></li><li>EXCLUSIVE - <a href="lockingv3.html#excl_lock">lockingv3.html#excl_lock</a></li><li>EXCLUSIVE lock - <a href="lockingv3.html#excl_lock">lockingv3.html#excl_lock</a></li><li>exclusive lock - <a href="lockingv3.html#excl_lock">lockingv3.html#excl_lock</a></li><li>EXCLUSIVE locking mode - <a href="pragma.html#pragma_locking_mode">pragma.html#pragma_locking_mode</a></li><li>exclusive locking mode - <a href="pragma.html#pragma_locking_mode">pragma.html#pragma_locking_mode</a></li><li>exists method - <a href="tclsqlite.html#exists">tclsqlite.html#exists</a></li><li>EXISTS operator - <a href="lang_expr.html#exists_op">lang_expr.html#exists_op</a></li><li>exp - <a href="lang_mathfunc.html#exp">lang_mathfunc.html#exp</a></li><li>exp SQL function - <a href="lang_mathfunc.html#exp">lang_mathfunc.html#exp</a></li><li>experimental - <a href="c3ref/experimental.html">c3ref/experimental.html</a></li><li>experimental memory allocators - <a href="malloc.html#memsysx">malloc.html#memsysx</a></li><li>EXPLAIN - <a href="lang_explain.html">lang_explain.html</a></li><li>explain - <a href="lang_explain.html">lang_explain.html</a></li><li>EXPLAIN QUERY PLAN - <a href="eqp.html">eqp.html</a></li><li>explain query plan - <a href="eqp.html">eqp.html</a></li><li>export to excel - <a href="cli.html#exexcel*">cli.html#exexcel*</a></li><li>export to TSV - <a href="cli.html#extsv*">cli.html#extsv*</a></li><li>expr - <a href="syntax/expr.html">syntax/expr.html</a></li><li>expr syntax diagram - <a href="syntax/expr.html">syntax/expr.html</a></li><li>expression - <a href="lang_expr.html">lang_expr.html</a></li><li>expression affinity - <a href="datatype3.html#expraff">datatype3.html#expraff</a></li><li>expression index - <a href="expridx.html">expridx.html</a></li><li>expression indexes - <a href="expridx.html">expridx.html</a></li><li>expression syntax - <a href="lang_expr.html">lang_expr.html</a></li><li>ext-v-prim - <a href="rescode.html#pve">rescode.html#pve</a></li><li>extended error code - <a href="rescode.html#extrc">rescode.html#extrc</a></li><li>extended error codes - <a href="rescode.html#extrc">rescode.html#extrc</a></li><li>extended result code - <a href="rescode.html#extrc">rescode.html#extrc</a></li><li>extended result code definitions - <a href="c3ref/c_abort_rollback.html">c3ref/c_abort_rollback.html</a></li><li>extended result codes - <a href="rescode.html#extrc">rescode.html#extrc</a></li><li>Extending FTS5 - <a href="fts5.html#extending_fts5">fts5.html#extending_fts5</a></li><li>extension loading - <a href="loadext.html">loadext.html</a></li><li>external content fts4 tables - <a href="fts3.html#_external_content_fts4_tables_">fts3.html#_external_content_fts4_tables_</a></li><li>extract - <a href="lang_expr.html#extract">lang_expr.html#extract</a></li><li>factored-select-stmt - <a href="syntax/factored-select-stmt.html">syntax/factored-select-stmt.html</a></li><li>factored-select-stmt syntax diagram - <a href="syntax/factored-select-stmt.html">syntax/factored-select-stmt.html</a></li><li>faster than the filesystem - <a href="fasterthanfs.html">fasterthanfs.html</a></li><li>file control - <a href="c3ref/file_control.html">c3ref/file_control.html</a></li><li>file control opcode - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>file control opcodes - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>file format - <a href="fileformat2.html">fileformat2.html</a></li><li>file format version numbers - <a href="fileformat2.html#vnums">fileformat2.html#vnums</a></li><li>file I/O functions - <a href="cli.html#fileio">cli.html#fileio</a></li><li>file locking and concurrency control - <a href="lockingv3.html">lockingv3.html</a></li><li>file locking states - <a href="lockingv3.html#locking">lockingv3.html#locking</a></li><li>file-format benefits - <a href="aff_short.html">aff_short.html</a></li><li>filesystem corruption - <a href="howtocorrupt.html#fscorruption">howtocorrupt.html#fscorruption</a></li><li>FILTER clause on aggregate functions - <a href="lang_aggfunc.html#aggfilter">lang_aggfunc.html#aggfilter</a></li><li>filter-clause - <a href="syntax/filter-clause.html">syntax/filter-clause.html</a></li><li>filter-clause syntax diagram - <a href="syntax/filter-clause.html">syntax/filter-clause.html</a></li><li>flattened - <a href="optoverview.html#flattening">optoverview.html#flattening</a></li><li>flattening optimization - <a href="optoverview.html#flattening">optoverview.html#flattening</a></li><li>flexible type system - <a href="datatype3.html">datatype3.html</a></li><li>Flexible typing is a feature - <a href="flextypegood.html">flextypegood.html</a></li><li>floor - <a href="lang_mathfunc.html#floor">lang_mathfunc.html#floor</a></li><li>floor SQL function - <a href="lang_mathfunc.html#floor">lang_mathfunc.html#floor</a></li><li>footprint - <a href="footprint.html">footprint.html</a></li><li>foreign key actions - <a href="foreignkeys.html#fk_actions">foreignkeys.html#fk_actions</a></li><li>foreign key constraint - <a href="foreignkeys.html">foreignkeys.html</a></li><li>FOREIGN KEY constraints - <a href="foreignkeys.html">foreignkeys.html</a></li><li>foreign key constraints - <a href="foreignkeys.html">foreignkeys.html</a></li><li>foreign key constraints are enabled - <a href="foreignkeys.html#fk_enable">foreignkeys.html#fk_enable</a></li><li>foreign-key-clause - <a href="syntax/foreign-key-clause.html">syntax/foreign-key-clause.html</a></li><li>foreign-key-clause syntax diagram - <a href="syntax/foreign-key-clause.html">syntax/foreign-key-clause.html</a></li><li>foreign_key_check - <a href="pragma.html#pragma_foreign_key_check">pragma.html#pragma_foreign_key_check</a></li><li>foreign_key_check pragma - <a href="pragma.html#pragma_foreign_key_check">pragma.html#pragma_foreign_key_check</a></li><li>foreign_key_list - <a href="pragma.html#pragma_foreign_key_list">pragma.html#pragma_foreign_key_list</a></li><li>foreign_key_list pragma - <a href="pragma.html#pragma_foreign_key_list">pragma.html#pragma_foreign_key_list</a></li><li>foreign_keys - <a href="pragma.html#pragma_foreign_keys">pragma.html#pragma_foreign_keys</a></li><li>foreign_keys pragma - <a href="pragma.html#pragma_foreign_keys">pragma.html#pragma_foreign_keys</a></li><li>format - <a href="lang_corefunc.html#format">lang_corefunc.html#format</a></li><li>format SQL function - <a href="lang_corefunc.html#format">lang_corefunc.html#format</a></li><li>forum - <a href="support.html#fx">support.html#fx</a></li><li>frame boundary - <a href="windowfunctions.html#frameboundary">windowfunctions.html#frameboundary</a></li><li>frame specification - <a href="windowfunctions.html#framespec">windowfunctions.html#framespec</a></li><li>frame type - <a href="windowfunctions.html#frametype">windowfunctions.html#frametype</a></li><li>frame-spec - <a href="syntax/frame-spec.html">syntax/frame-spec.html</a></li><li>frame-spec syntax diagram - <a href="syntax/frame-spec.html">syntax/frame-spec.html</a></li><li>frames - <a href="windowfunctions.html#framespec">windowfunctions.html#framespec</a></li><li>free-page list - <a href="fileformat2.html#freelist">fileformat2.html#freelist</a></li><li>freelist - <a href="fileformat2.html#freelist">fileformat2.html#freelist</a></li><li>freelist_count - <a href="pragma.html#pragma_freelist_count">pragma.html#pragma_freelist_count</a></li><li>freelist_count pragma - <a href="pragma.html#pragma_freelist_count">pragma.html#pragma_freelist_count</a></li><li>FROM clause - <a href="lang_select.html#fromclause">lang_select.html#fromclause</a></li><li>FTS auxiliary functions - <a href="fts3.html#snippet">fts3.html#snippet</a></li><li>FTS hidden column - <a href="fts3.html#hiddencol">fts3.html#hiddencol</a></li><li>FTS MATCH - <a href="fts3.html#full_text_index_queries">fts3.html#full_text_index_queries</a></li><li>FTS shadow tables - <a href="fts3.html#*shadowtab">fts3.html#*shadowtab</a></li><li>FTS3 - <a href="fts3.html">fts3.html</a></li><li>fts3 - <a href="fts3.html">fts3.html</a></li><li>fts3_tokenizer - <a href="fts3.html#f3tknzr">fts3.html#f3tknzr</a></li><li>fts3tokenize - <a href="fts3.html#fts3tok">fts3.html#fts3tok</a></li><li>fts3tokenize virtual table - <a href="fts3.html#fts3tok">fts3.html#fts3tok</a></li><li>FTS4 - <a href="fts3.html#fts4">fts3.html#fts4</a></li><li>FTS4 automerge command - <a href="fts3.html#*fts4automergecmd">fts3.html#*fts4automergecmd</a></li><li>FTS4 commands - <a href="fts3.html#*cmds">fts3.html#*cmds</a></li><li>fts4 compress option - <a href="fts3.html#the_compress_and_uncompress_options">fts3.html#the_compress_and_uncompress_options</a></li><li>FTS4 content option - <a href="fts3.html#*fts4content">fts3.html#*fts4content</a></li><li>fts4 content option - <a href="fts3.html#the_content_option_">fts3.html#the_content_option_</a></li><li>FTS4 integrity-check command - <a href="fts3.html#*fts4ickcmd">fts3.html#*fts4ickcmd</a></li><li>FTS4 languageid option - <a href="fts3.html#*fts4languageid">fts3.html#*fts4languageid</a></li><li>fts4 languageid option - <a href="fts3.html#the_languageid_option">fts3.html#the_languageid_option</a></li><li>FTS4 matchinfo option - <a href="fts3.html#fts4matchinfo">fts3.html#fts4matchinfo</a></li><li>fts4 matchinfo option - <a href="fts3.html#the_matchinfo_option">fts3.html#the_matchinfo_option</a></li><li>FTS4 merge command - <a href="fts3.html#*fts4mergecmd">fts3.html#*fts4mergecmd</a></li><li>FTS4 notindexed option - <a href="fts3.html#fts4notindexed">fts3.html#fts4notindexed</a></li><li>fts4 notindexed option - <a href="fts3.html#the_notindexed_option">fts3.html#the_notindexed_option</a></li><li>FTS4 optimize command - <a href="fts3.html#*fts4optcmd">fts3.html#*fts4optcmd</a></li><li>FTS4 options - <a href="fts3.html#fts4_options">fts3.html#fts4_options</a></li><li>FTS4 order option - <a href="fts3.html#fts4order">fts3.html#fts4order</a></li><li>FTS4 prefix option - <a href="fts3.html#fts4prefix">fts3.html#fts4prefix</a></li><li>fts4 prefix option - <a href="fts3.html#the_prefix_option">fts3.html#the_prefix_option</a></li><li>FTS4 rebuild command - <a href="fts3.html#*fts4rebuidcmd">fts3.html#*fts4rebuidcmd</a></li><li>fts4aux - <a href="fts3.html#fts4aux">fts3.html#fts4aux</a></li><li>fts4aux languageid column - <a href="fts3.html#f4alid">fts3.html#f4alid</a></li><li>FTS5 - <a href="fts5.html">fts5.html</a></li><li>fts5 - <a href="fts5.html">fts5.html</a></li><li>FTS5 automerge option - <a href="fts5.html#the_automerge_configuration_option">fts5.html#the_automerge_configuration_option</a></li><li>FTS5 auxiliary functions - <a href="fts5.html#_auxiliary_functions_">fts5.html#_auxiliary_functions_</a></li><li>FTS5 bm25 - <a href="fts5.html#the_bm25_function">fts5.html#the_bm25_function</a></li><li>FTS5 boolean operators - <a href="fts5.html#fts5_boolean_operators">fts5.html#fts5_boolean_operators</a></li><li>FTS5 building - <a href="fts5.html#compiling_and_using_fts5">fts5.html#compiling_and_using_fts5</a></li><li>FTS5 column filters - <a href="fts5.html#fts5_column_filters">fts5.html#fts5_column_filters</a></li><li>FTS5 columnsize option - <a href="fts5.html#the_columnsize_option">fts5.html#the_columnsize_option</a></li><li>FTS5 content option - <a href="fts5.html#external_content_and_contentless_tables">fts5.html#external_content_and_contentless_tables</a></li><li>FTS5 contentless tables - <a href="fts5.html#contentless_tables">fts5.html#contentless_tables</a></li><li>FTS5 contentless-delete tables - <a href="fts5.html#contentless_delete_tables">fts5.html#contentless_delete_tables</a></li><li>FTS5 CREATE TABLE Options - <a href="fts5.html#fts5_table_creation_and_initialization">fts5.html#fts5_table_creation_and_initialization</a></li><li>FTS5 custom auxiliary functions - <a href="fts5.html#custom_auxiliary_functions">fts5.html#custom_auxiliary_functions</a></li><li>FTS5 delete command - <a href="fts5.html#the_delete_command">fts5.html#the_delete_command</a></li><li>FTS5 delete-all command - <a href="fts5.html#the_delete_all_command">fts5.html#the_delete_all_command</a></li><li>FTS5 detail option - <a href="fts5.html#the_detail_option">fts5.html#the_detail_option</a></li><li>FTS5 external content pitfalls - <a href="fts5.html#external_content_table_pitfalls">fts5.html#external_content_table_pitfalls</a></li><li>FTS5 external content tables - <a href="fts5.html#external_content_tables">fts5.html#external_content_tables</a></li><li>FTS5 highlight - <a href="fts5.html#the_highlight_function">fts5.html#the_highlight_function</a></li><li>FTS5 initial token - <a href="fts5.html#carrotq">fts5.html#carrotq</a></li><li>FTS5 initial token queries - <a href="fts5.html#fts5_initial_token_queries">fts5.html#fts5_initial_token_queries</a></li><li>FTS5 merge command - <a href="fts5.html#the_merge_command">fts5.html#the_merge_command</a></li><li>FTS5 NEAR queries - <a href="fts5.html#fts5_near_queries">fts5.html#fts5_near_queries</a></li><li>FTS5 optimize command - <a href="fts5.html#the_optimize_command">fts5.html#the_optimize_command</a></li><li>FTS5 pgsz option - <a href="fts5.html#the_pgsz_configuration_option">fts5.html#the_pgsz_configuration_option</a></li><li>FTS5 Phrases - <a href="fts5.html#fts5_phrases">fts5.html#fts5_phrases</a></li><li>FTS5 prefix indexes - <a href="fts5.html#prefix_indexes">fts5.html#prefix_indexes</a></li><li>FTS5 prefix queries - <a href="fts5.html#fts5_prefix_queries">fts5.html#fts5_prefix_queries</a></li><li>FTS5 query syntax - <a href="fts5.html#full_text_query_syntax">fts5.html#full_text_query_syntax</a></li><li>FTS5 rank configuration option - <a href="fts5.html#the_rank_configuration_option">fts5.html#the_rank_configuration_option</a></li><li>FTS5 rebuild command - <a href="fts5.html#the_rebuild_command">fts5.html#the_rebuild_command</a></li><li>FTS5 secure-delete command - <a href="fts5.html#the_secure_delete_configuration_option">fts5.html#the_secure_delete_configuration_option</a></li><li>fts5 shadow tables - <a href="fts5.html#fts5shadowtables">fts5.html#fts5shadowtables</a></li><li>FTS5 snippet - <a href="fts5.html#the_snippet_function">fts5.html#the_snippet_function</a></li><li>FTS5 Strings - <a href="fts5.html#fts5_strings">fts5.html#fts5_strings</a></li><li>fts5 technical differences - <a href="fts5.html#_summary_of_technical_differences_">fts5.html#_summary_of_technical_differences_</a></li><li>FTS5 tokendata option - <a href="fts5.html#the_tokendata_option">fts5.html#the_tokendata_option</a></li><li>FTS5 tokenizers - <a href="fts5.html#tokenizers">fts5.html#tokenizers</a></li><li>FTS5 usermerge option - <a href="fts5.html#the_usermerge_configuration_option">fts5.html#the_usermerge_configuration_option</a></li><li>fts5vocab - <a href="fts5.html#the_fts5vocab_virtual_table_module">fts5.html#the_fts5vocab_virtual_table_module</a></li><li>FULL JOIN - <a href="lang_select.html#fulljoin">lang_select.html#fulljoin</a></li><li>FULL OUTER JOIN - <a href="lang_select.html#fulljoin">lang_select.html#fulljoin</a></li><li>Full-featured SQL - <a href="fullsql.html">fullsql.html</a></li><li>full-featured SQL - <a href="fullsql.html">fullsql.html</a></li><li>full-text search - <a href="fts3.html">fts3.html</a></li><li>full_column_names - <a href="pragma.html#pragma_full_column_names">pragma.html#pragma_full_column_names</a></li><li>full_column_names pragma - <a href="pragma.html#pragma_full_column_names">pragma.html#pragma_full_column_names</a></li><li>fullfsync - <a href="pragma.html#pragma_fullfsync">pragma.html#pragma_fullfsync</a></li><li>fullfsync pragma - <a href="pragma.html#pragma_fullfsync">pragma.html#pragma_fullfsync</a></li><li>function creation routines - <a href="c3ref/create_function.html">c3ref/create_function.html</a></li><li>function method - <a href="tclsqlite.html#function">tclsqlite.html#function</a></li><li>function-arguments - <a href="syntax/function-arguments.html">syntax/function-arguments.html</a></li><li>function-arguments syntax diagram - <a href="syntax/function-arguments.html">syntax/function-arguments.html</a></li><li>function_list - <a href="pragma.html#pragma_function_list">pragma.html#pragma_function_list</a></li><li>function_list pragma - <a href="pragma.html#pragma_function_list">pragma.html#pragma_function_list</a></li><li>functions within expressions - <a href="lang_expr.html#*funcinexpr">lang_expr.html#*funcinexpr</a></li><li>fuzz testing - <a href="testing.html#fuzztesting">testing.html#fuzztesting</a></li><li>fuzzcheck - <a href="testing.html#fuzzcheck">testing.html#fuzzcheck</a></li><li>generalized ALTER TABLE procedure - <a href="lang_altertable.html#otheralter">lang_altertable.html#otheralter</a></li><li>generate_series - <a href="series.html">series.html</a></li><li>generated column - <a href="gencol.html">gencol.html</a></li><li>Generated columns - <a href="gencol.html">gencol.html</a></li><li>generated columns - <a href="gencol.html">gencol.html</a></li><li>GEOPOLY - <a href="geopoly.html">geopoly.html</a></li><li>geopoly - <a href="geopoly.html">geopoly.html</a></li><li>Geopoly extension - <a href="geopoly.html">geopoly.html</a></li><li>Geopoly module - <a href="geopoly.html">geopoly.html</a></li><li>geopoly_area - <a href="geopoly.html#garea">geopoly.html#garea</a></li><li>geopoly_bbox - <a href="geopoly.html#gbbox">geopoly.html#gbbox</a></li><li>geopoly_blob - <a href="geopoly.html#gblob">geopoly.html#gblob</a></li><li>geopoly_ccw - <a href="geopoly.html#ccw">geopoly.html#ccw</a></li><li>geopoly_contains_point - <a href="geopoly.html#gpoint">geopoly.html#gpoint</a></li><li>geopoly_group_bbox - <a href="geopoly.html#gbbox">geopoly.html#gbbox</a></li><li>geopoly_json - <a href="geopoly.html#gjson">geopoly.html#gjson</a></li><li>geopoly_overlap - <a href="geopoly.html#goverlap">geopoly.html#goverlap</a></li><li>geopoly_regular - <a href="geopoly.html#regpoly">geopoly.html#regpoly</a></li><li>geopoly_svg - <a href="geopoly.html#gsvg">geopoly.html#gsvg</a></li><li>geopoly_within - <a href="geopoly.html#gwithin">geopoly.html#gwithin</a></li><li>geopoly_xform - <a href="geopoly.html#xform">geopoly.html#xform</a></li><li>get the canonical source code - <a href="getthecode.html">getthecode.html</a></li><li>GLOB - <a href="lang_expr.html#glob">lang_expr.html#glob</a></li><li>glob - <a href="lang_corefunc.html#glob">lang_corefunc.html#glob</a></li><li>glob SQL function - <a href="lang_corefunc.html#glob">lang_corefunc.html#glob</a></li><li>GROUP BY - <a href="lang_select.html#resultset">lang_select.html#resultset</a></li><li>GROUP BY clause - <a href="lang_select.html#resultset">lang_select.html#resultset</a></li><li>group_concat - <a href="lang_aggfunc.html#group_concat">lang_aggfunc.html#group_concat</a></li><li>group_concat aggregate function - <a href="lang_aggfunc.html#group_concat">lang_aggfunc.html#group_concat</a></li><li>GROUPS frames - <a href="windowfunctions.html#grouptype">windowfunctions.html#grouptype</a></li><li>hard_heap_limit - <a href="pragma.html#pragma_hard_heap_limit">pragma.html#pragma_hard_heap_limit</a></li><li>hard_heap_limit pragma - <a href="pragma.html#pragma_hard_heap_limit">pragma.html#pragma_hard_heap_limit</a></li><li>hash join - <a href="optoverview.html#hashjoin">optoverview.html#hashjoin</a></li><li>HAVE_FDATASYNC - <a href="compile.html#fdatasync">compile.html#fdatasync</a></li><li>HAVE_GMTIME_R - <a href="compile.html#gmtime_r">compile.html#gmtime_r</a></li><li>HAVE_ISNAN - <a href="compile.html#isnan">compile.html#isnan</a></li><li>HAVE_LOCALTIME_R - <a href="compile.html#localtime_r">compile.html#localtime_r</a></li><li>HAVE_LOCALTIME_S - <a href="compile.html#localtime_s">compile.html#localtime_s</a></li><li>HAVE_MALLOC_USABLE_SIZE - <a href="compile.html#malloc_usable_size">compile.html#malloc_usable_size</a></li><li>HAVE_SQLITE_CONFIG_H - <a href="compile.html#sqlite_config_h">compile.html#sqlite_config_h</a></li><li>HAVE_STRCHRNUL - <a href="compile.html#strchrnul">compile.html#strchrnul</a></li><li>HAVE_UTIME - <a href="compile.html#utime">compile.html#utime</a></li><li>HAVING - <a href="lang_select.html#resultset">lang_select.html#resultset</a></li><li>HAVING clause - <a href="lang_select.html#resultset">lang_select.html#resultset</a></li><li>hazards of upgrading to the NGQP - <a href="queryplanner-ng.html#hazards">queryplanner-ng.html#hazards</a></li><li>hex - <a href="lang_corefunc.html#hex">lang_corefunc.html#hex</a></li><li>hex SQL function - <a href="lang_corefunc.html#hex">lang_corefunc.html#hex</a></li><li>hexadecimal integer literals - <a href="lang_expr.html#hexint">lang_expr.html#hexint</a></li><li>hexadecimal integers - <a href="lang_expr.html#hexint">lang_expr.html#hexint</a></li><li>hidden column - <a href="vtab.html#hiddencol">vtab.html#hiddencol</a></li><li>hidden columns - <a href="vtab.html#hiddencol">vtab.html#hiddencol</a></li><li>high-reliability - <a href="hirely.html">hirely.html</a></li><li>Hipp - <a href="crew.html">crew.html</a></li><li>host parameter - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>host parameter name - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>host parameters - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>hot journal - <a href="fileformat2.html#hotjrnl">fileformat2.html#hotjrnl</a></li><li>hot journal files - <a href="fileformat2.html#hotjrnl">fileformat2.html#hotjrnl</a></li><li>how collation is determined - <a href="datatype3.html#colrules">datatype3.html#colrules</a></li><li>How SQL Works - <a href="howitworks.html">howitworks.html</a></li><li>How SQLite Works - <a href="howitworks.html">howitworks.html</a></li><li>how to compile - <a href="howtocompile.html">howtocompile.html</a></li><li>How To Compile SQLite - <a href="howtocompile.html">howtocompile.html</a></li><li>how to corrupt - <a href="howtocorrupt.html">howtocorrupt.html</a></li><li>how to corrupt a database - <a href="useovernet.html">useovernet.html</a></li><li>How To Corrupt Your Database Files - <a href="lockingv3.html#how_to_corrupt">lockingv3.html#how_to_corrupt</a></li><li>how vacuum works - <a href="lang_vacuum.html#howvacuumworks">lang_vacuum.html#howvacuumworks</a></li><li>IEEE 754 floating point values are approximations - <a href="floatingpoint.html#fpapprox">floatingpoint.html#fpapprox</a></li><li>ieee754 extension - <a href="floatingpoint.html#ieee754ext">floatingpoint.html#ieee754ext</a></li><li>ieee754 function - <a href="floatingpoint.html#ieee754">floatingpoint.html#ieee754</a></li><li>ieee754_exponent function - <a href="floatingpoint.html#ieee754m">floatingpoint.html#ieee754m</a></li><li>ieee754_from_blob function - <a href="floatingpoint.html#ieee754b">floatingpoint.html#ieee754b</a></li><li>ieee754_mantissa function - <a href="floatingpoint.html#ieee754m">floatingpoint.html#ieee754m</a></li><li>ieee754_to_blob function - <a href="floatingpoint.html#ieee754b">floatingpoint.html#ieee754b</a></li><li>ifnull - <a href="lang_corefunc.html#ifnull">lang_corefunc.html#ifnull</a></li><li>ifnull SQL function - <a href="lang_corefunc.html#ifnull">lang_corefunc.html#ifnull</a></li><li>ignore_check_constraints - <a href="pragma.html#pragma_ignore_check_constraints">pragma.html#pragma_ignore_check_constraints</a></li><li>ignore_check_constraints pragma - <a href="pragma.html#pragma_ignore_check_constraints">pragma.html#pragma_ignore_check_constraints</a></li><li>iif - <a href="lang_corefunc.html#iif">lang_corefunc.html#iif</a></li><li>iif SQL function - <a href="lang_corefunc.html#iif">lang_corefunc.html#iif</a></li><li>immutable query parameter - <a href="uri.html#uriimmutable">uri.html#uriimmutable</a></li><li>imposter tables - <a href="imposter.html">imposter.html</a></li><li>IN operator - <a href="lang_expr.html#in_op">lang_expr.html#in_op</a></li><li>in-header database size - <a href="fileformat2.html#filesize">fileformat2.html#filesize</a></li><li>in-memory database - <a href="inmemorydb.html">inmemorydb.html</a></li><li>in-memory databases - <a href="inmemorydb.html">inmemorydb.html</a></li><li>in-memory shared cache database - <a href="inmemorydb.html#sharedmemdb">inmemorydb.html#sharedmemdb</a></li><li>in-memory shared-cache - <a href="sharedcache.html#inmemsharedcache">sharedcache.html#inmemsharedcache</a></li><li>incrblob method - <a href="tclsqlite.html#incrblob">tclsqlite.html#incrblob</a></li><li>increase in the default page size - <a href="pgszchng2016.html">pgszchng2016.html</a></li><li>incremental_vacuum - <a href="pragma.html#pragma_incremental_vacuum">pragma.html#pragma_incremental_vacuum</a></li><li>incremental_vacuum pragma - <a href="pragma.html#pragma_incremental_vacuum">pragma.html#pragma_incremental_vacuum</a></li><li>index b-tree - <a href="fileformat2.html#btypes">fileformat2.html#btypes</a></li><li>index_info - <a href="pragma.html#pragma_index_info">pragma.html#pragma_index_info</a></li><li>index_info pragma - <a href="pragma.html#pragma_index_info">pragma.html#pragma_index_info</a></li><li>index_list - <a href="pragma.html#pragma_index_list">pragma.html#pragma_index_list</a></li><li>index_list pragma - <a href="pragma.html#pragma_index_list">pragma.html#pragma_index_list</a></li><li>index_xinfo - <a href="pragma.html#pragma_index_xinfo">pragma.html#pragma_index_xinfo</a></li><li>index_xinfo pragma - <a href="pragma.html#pragma_index_xinfo">pragma.html#pragma_index_xinfo</a></li><li>INDEXED BY - <a href="lang_indexedby.html">lang_indexedby.html</a></li><li>indexed expression - <a href="expridx.html">expridx.html</a></li><li>indexed expressions - <a href="expridx.html">expridx.html</a></li><li>indexed-column - <a href="syntax/indexed-column.html">syntax/indexed-column.html</a></li><li>indexed-column syntax diagram - <a href="syntax/indexed-column.html">syntax/indexed-column.html</a></li><li>Indexes - <a href="lang_createindex.html">lang_createindex.html</a></li><li>Indexes On Expressions - <a href="expridx.html">expridx.html</a></li><li>indexes on expressions - <a href="expridx.html">expridx.html</a></li><li>indexing - <a href="queryplanner.html">queryplanner.html</a></li><li>indexing tutorial - <a href="queryplanner.html">queryplanner.html</a></li><li>INSERT - <a href="lang_insert.html">lang_insert.html</a></li><li>insert - <a href="lang_insert.html">lang_insert.html</a></li><li>insert-stmt - <a href="syntax/insert-stmt.html">syntax/insert-stmt.html</a></li><li>insert-stmt syntax diagram - <a href="syntax/insert-stmt.html">syntax/insert-stmt.html</a></li><li>INSERTs - <a href="lang_insert.html">lang_insert.html</a></li><li>INSTEAD OF - <a href="lang_createtrigger.html#instead_of_trigger">lang_createtrigger.html#instead_of_trigger</a></li><li>INSTEAD OF trigger - <a href="lang_createtrigger.html#instead_of_trigger">lang_createtrigger.html#instead_of_trigger</a></li><li>instr - <a href="lang_corefunc.html#instr">lang_corefunc.html#instr</a></li><li>instr SQL function - <a href="lang_corefunc.html#instr">lang_corefunc.html#instr</a></li><li>INTEGER PRIMARY KEY - <a href="lang_createtable.html#rowid">lang_createtable.html#rowid</a></li><li>integer-valued r-trees - <a href="rtree.html#intrtree">rtree.html#intrtree</a></li><li>integrity_check - <a href="pragma.html#pragma_integrity_check">pragma.html#pragma_integrity_check</a></li><li>integrity_check pragma - <a href="pragma.html#pragma_integrity_check">pragma.html#pragma_integrity_check</a></li><li>internal index - <a href="fileformat2.html#intschema">fileformat2.html#intschema</a></li><li>internal indexes - <a href="fileformat2.html#intschema">fileformat2.html#intschema</a></li><li>internal schema object - <a href="fileformat2.html#intschema">fileformat2.html#intschema</a></li><li>internal schema objects - <a href="fileformat2.html#intschema">fileformat2.html#intschema</a></li><li>internal table - <a href="fileformat2.html#intschema">fileformat2.html#intschema</a></li><li>internal tables - <a href="fileformat2.html#intschema">fileformat2.html#intschema</a></li><li>Internal Versus External BLOBs - <a href="intern-v-extern-blob.html">intern-v-extern-blob.html</a></li><li>interrupt method - <a href="tclsqlite.html#interrupt">tclsqlite.html#interrupt</a></li><li>invalid UTF - <a href="invalidutf.html">invalidutf.html</a></li><li>IS DISTINCT FROM - <a href="lang_expr.html#isdf">lang_expr.html#isdf</a></li><li>IS NOT DISTINCT FROM - <a href="lang_expr.html#isdf">lang_expr.html#isdf</a></li><li>IS NOT operator - <a href="lang_expr.html#isisnot">lang_expr.html#isisnot</a></li><li>IS operator - <a href="lang_expr.html#isisnot">lang_expr.html#isisnot</a></li><li>isolation - <a href="isolation.html">isolation.html</a></li><li>jfuzz - <a href="testing.html#dbsqlfuzz">testing.html#dbsqlfuzz</a></li><li>join order - <a href="optoverview.html#table_order">optoverview.html#table_order</a></li><li>join-clause - <a href="syntax/join-clause.html">syntax/join-clause.html</a></li><li>join-clause syntax diagram - <a href="syntax/join-clause.html">syntax/join-clause.html</a></li><li>join-constraint - <a href="syntax/join-constraint.html">syntax/join-constraint.html</a></li><li>join-constraint syntax diagram - <a href="syntax/join-constraint.html">syntax/join-constraint.html</a></li><li>join-operator - <a href="syntax/join-operator.html">syntax/join-operator.html</a></li><li>join-operator syntax diagram - <a href="syntax/join-operator.html">syntax/join-operator.html</a></li><li>journal_mode - <a href="pragma.html#pragma_journal_mode">pragma.html#pragma_journal_mode</a></li><li>journal_mode pragma - <a href="pragma.html#pragma_journal_mode">pragma.html#pragma_journal_mode</a></li><li>journal_size_limit - <a href="pragma.html#pragma_journal_size_limit">pragma.html#pragma_journal_size_limit</a></li><li>journal_size_limit pragma - <a href="pragma.html#pragma_journal_size_limit">pragma.html#pragma_journal_size_limit</a></li><li>json - <a href="json1.html#jmini">json1.html#jmini</a></li><li>JSON BLOB input bug - <a href="json1.html#jblobbug">json1.html#jblobbug</a></li><li>JSON function path arguments - <a href="json1.html#jsonpath">json1.html#jsonpath</a></li><li>JSON paths - <a href="json1.html#jsonpath">json1.html#jsonpath</a></li><li>json SQL function - <a href="json1.html#jmini">json1.html#jmini</a></li><li>JSON SQL functions - <a href="json1.html">json1.html</a></li><li>json1 - <a href="json1.html">json1.html</a></li><li>JSON5 - <a href="json1.html#json5">json1.html#json5</a></li><li>JSON5 extensions - <a href="json1.html#json5">json1.html#json5</a></li><li>json_array - <a href="json1.html#jarray">json1.html#jarray</a></li><li>json_array SQL function - <a href="json1.html#jarray">json1.html#jarray</a></li><li>json_array_length - <a href="json1.html#jarraylen">json1.html#jarraylen</a></li><li>json_array_length SQL function - <a href="json1.html#jarraylen">json1.html#jarraylen</a></li><li>json_each - <a href="json1.html#jeach">json1.html#jeach</a></li><li>json_each table-valued function - <a href="json1.html#jeach">json1.html#jeach</a></li><li>json_error_position - <a href="json1.html#jerr">json1.html#jerr</a></li><li>json_error_position SQL function - <a href="json1.html#jerr">json1.html#jerr</a></li><li>json_extract - <a href="json1.html#jex">json1.html#jex</a></li><li>json_extract SQL function - <a href="json1.html#jex">json1.html#jex</a></li><li>json_group_array - <a href="json1.html#jgrouparray">json1.html#jgrouparray</a></li><li>json_group_array SQL function - <a href="json1.html#jgrouparray">json1.html#jgrouparray</a></li><li>json_group_object - <a href="json1.html#jgroupobject">json1.html#jgroupobject</a></li><li>json_group_object SQL function - <a href="json1.html#jgroupobject">json1.html#jgroupobject</a></li><li>json_insert - <a href="json1.html#jins">json1.html#jins</a></li><li>json_insert SQL function - <a href="json1.html#jins">json1.html#jins</a></li><li>json_object - <a href="json1.html#jobj">json1.html#jobj</a></li><li>json_object SQL function - <a href="json1.html#jobj">json1.html#jobj</a></li><li>json_patch - <a href="json1.html#jpatch">json1.html#jpatch</a></li><li>json_patch SQL function - <a href="json1.html#jpatch">json1.html#jpatch</a></li><li>json_quote - <a href="json1.html#jquote">json1.html#jquote</a></li><li>json_quote SQL function - <a href="json1.html#jquote">json1.html#jquote</a></li><li>json_remove - <a href="json1.html#jrm">json1.html#jrm</a></li><li>json_remove SQL function - <a href="json1.html#jrm">json1.html#jrm</a></li><li>json_replace - <a href="json1.html#jrepl">json1.html#jrepl</a></li><li>json_replace SQL function - <a href="json1.html#jrepl">json1.html#jrepl</a></li><li>json_set - <a href="json1.html#jset">json1.html#jset</a></li><li>json_set SQL function - <a href="json1.html#jset">json1.html#jset</a></li><li>json_tree - <a href="json1.html#jtree">json1.html#jtree</a></li><li>json_tree table-valued function - <a href="json1.html#jtree">json1.html#jtree</a></li><li>json_type - <a href="json1.html#jtype">json1.html#jtype</a></li><li>json_type SQL function - <a href="json1.html#jtype">json1.html#jtype</a></li><li>json_valid - <a href="json1.html#jvalid">json1.html#jvalid</a></li><li>json_valid SQL function - <a href="json1.html#jvalid">json1.html#jvalid</a></li><li>JSONB - <a href="json1.html#jsonbx">json1.html#jsonbx</a></li><li>jsonb - <a href="json1.html#jminib">json1.html#jminib</a></li><li>jsonb SQL function - <a href="json1.html#jminib">json1.html#jminib</a></li><li>jsonb_array - <a href="json1.html#jarrayb">json1.html#jarrayb</a></li><li>jsonb_array SQL function - <a href="json1.html#jarrayb">json1.html#jarrayb</a></li><li>jsonb_extract - <a href="json1.html#jexb">json1.html#jexb</a></li><li>jsonb_extract SQL function - <a href="json1.html#jexb">json1.html#jexb</a></li><li>jsonb_group_array - <a href="json1.html#jgrouparrayb">json1.html#jgrouparrayb</a></li><li>jsonb_group_array SQL function - <a href="json1.html#jgrouparrayb">json1.html#jgrouparrayb</a></li><li>jsonb_group_object - <a href="json1.html#jgroupobjectb">json1.html#jgroupobjectb</a></li><li>jsonb_group_object SQL function - <a href="json1.html#jgroupobjectb">json1.html#jgroupobjectb</a></li><li>jsonb_insert - <a href="json1.html#jinsb">json1.html#jinsb</a></li><li>jsonb_insert SQL function - <a href="json1.html#jinsb">json1.html#jinsb</a></li><li>jsonb_object - <a href="json1.html#jobjb">json1.html#jobjb</a></li><li>jsonb_object SQL function - <a href="json1.html#jobjb">json1.html#jobjb</a></li><li>jsonb_patch - <a href="json1.html#jpatchb">json1.html#jpatchb</a></li><li>jsonb_patch SQL function - <a href="json1.html#jpatchb">json1.html#jpatchb</a></li><li>jsonb_remove - <a href="json1.html#jrmb">json1.html#jrmb</a></li><li>jsonb_remove SQL function - <a href="json1.html#jrmb">json1.html#jrmb</a></li><li>jsonb_replace - <a href="json1.html#jreplb">json1.html#jreplb</a></li><li>jsonb_replace SQL function - <a href="json1.html#jreplb">json1.html#jreplb</a></li><li>jsonb_set - <a href="json1.html#jsetb">json1.html#jsetb</a></li><li>jsonb_set SQL function - <a href="json1.html#jsetb">json1.html#jsetb</a></li><li>julianday - <a href="lang_datefunc.html#jlndy">lang_datefunc.html#jlndy</a></li><li>julianday modifier - <a href="lang_datefunc.html#jdmod">lang_datefunc.html#jdmod</a></li><li>julianday SQL function - <a href="lang_datefunc.html#jlndy">lang_datefunc.html#jlndy</a></li><li>Kennedy - <a href="crew.html">crew.html</a></li><li>keyword index - <a href="keyword_index.html">keyword_index.html</a></li><li>keywords - <a href="lang_keywords.html">lang_keywords.html</a></li><li>langexpr - <a href="lang_expr.html">lang_expr.html</a></li><li>langindexedby - <a href="lang_indexedby.html">lang_indexedby.html</a></li><li>langkeywords - <a href="lang_keywords.html">lang_keywords.html</a></li><li>langreplace - <a href="lang_replace.html">lang_replace.html</a></li><li>languageid - <a href="fts3.html#*fts4languageid">fts3.html#*fts4languageid</a></li><li>langupdate - <a href="lang_update.html">lang_update.html</a></li><li>langvacuum - <a href="lang_vacuum.html">lang_vacuum.html</a></li><li>large WAL files - <a href="wal.html#bigwal">wal.html#bigwal</a></li><li>last_insert_rowid - <a href="lang_corefunc.html#last_insert_rowid">lang_corefunc.html#last_insert_rowid</a></li><li>last_insert_rowid method - <a href="tclsqlite.html#last_insert_rowid">tclsqlite.html#last_insert_rowid</a></li><li>last_insert_rowid SQL function - <a href="lang_corefunc.html#last_insert_rowid">lang_corefunc.html#last_insert_rowid</a></li><li>LEFT JOIN strength reduction optimization - <a href="optoverview.html#leftjoinreduction">optoverview.html#leftjoinreduction</a></li><li>legacy_alter_table - <a href="pragma.html#pragma_legacy_alter_table">pragma.html#pragma_legacy_alter_table</a></li><li>legacy_alter_table pragma - <a href="pragma.html#pragma_legacy_alter_table">pragma.html#pragma_legacy_alter_table</a></li><li>legacy_file_format - <a href="pragma.html#pragma_legacy_file_format">pragma.html#pragma_legacy_file_format</a></li><li>legacy_file_format pragma - <a href="pragma.html#pragma_legacy_file_format">pragma.html#pragma_legacy_file_format</a></li><li>Lemon - <a href="lemon.html">lemon.html</a></li><li>Lemon LALR parser generator - <a href="lemon.html">lemon.html</a></li><li>Lemon parser generator - <a href="lemon.html">lemon.html</a></li><li>length - <a href="lang_corefunc.html#length">lang_corefunc.html#length</a></li><li>length SQL function - <a href="lang_corefunc.html#length">lang_corefunc.html#length</a></li><li>library size - <a href="footprint.html">footprint.html</a></li><li>license - <a href="copyright.html">copyright.html</a></li><li>LIKE - <a href="lang_expr.html#like">lang_expr.html#like</a></li><li>like - <a href="lang_corefunc.html#like">lang_corefunc.html#like</a></li><li>LIKE optimization - <a href="optoverview.html#like_opt">optoverview.html#like_opt</a></li><li>like SQL function - <a href="lang_corefunc.html#like">lang_corefunc.html#like</a></li><li>likelihood - <a href="lang_corefunc.html#likelihood">lang_corefunc.html#likelihood</a></li><li>likelihood SQL function - <a href="lang_corefunc.html#likelihood">lang_corefunc.html#likelihood</a></li><li>likely - <a href="lang_corefunc.html#likely">lang_corefunc.html#likely</a></li><li>likely SQL function - <a href="lang_corefunc.html#likely">lang_corefunc.html#likely</a></li><li>LIMIT - <a href="lang_select.html#limitoffset">lang_select.html#limitoffset</a></li><li>limit categories - <a href="c3ref/c_limit_attached.html">c3ref/c_limit_attached.html</a></li><li>limit category - <a href="c3ref/c_limit_attached.html">c3ref/c_limit_attached.html</a></li><li>limits - <a href="limits.html">limits.html</a></li><li>list of current bytecodes - <a href="opcode.html#codes">opcode.html#codes</a></li><li>list of virtual tables - <a href="vtablist.html">vtablist.html</a></li><li>literal value - <a href="lang_expr.html#litvalue">lang_expr.html#litvalue</a></li><li>literal-value - <a href="syntax/literal-value.html">syntax/literal-value.html</a></li><li>literal-value syntax diagram - <a href="syntax/literal-value.html">syntax/literal-value.html</a></li><li>ln - <a href="lang_mathfunc.html#ln">lang_mathfunc.html#ln</a></li><li>ln SQL function - <a href="lang_mathfunc.html#ln">lang_mathfunc.html#ln</a></li><li>load_extension - <a href="lang_corefunc.html#load_extension">lang_corefunc.html#load_extension</a></li><li>load_extension SQL function - <a href="lang_corefunc.html#load_extension">lang_corefunc.html#load_extension</a></li><li>loadable extension - <a href="loadext.html">loadext.html</a></li><li>loadable extensions - <a href="loadext.html">loadext.html</a></li><li>loadext - <a href="loadext.html">loadext.html</a></li><li>localtime modifier - <a href="lang_datefunc.html#localtime">lang_datefunc.html#localtime</a></li><li>lock-byte page - <a href="fileformat2.html#lockbyte">fileformat2.html#lockbyte</a></li><li>locking_mode - <a href="pragma.html#pragma_locking_mode">pragma.html#pragma_locking_mode</a></li><li>locking_mode pragma - <a href="pragma.html#pragma_locking_mode">pragma.html#pragma_locking_mode</a></li><li>log - <a href="lang_mathfunc.html#log">lang_mathfunc.html#log</a></li><li>log2 - <a href="lang_mathfunc.html#log2">lang_mathfunc.html#log2</a></li><li>log2 SQL function - <a href="lang_mathfunc.html#log2">lang_mathfunc.html#log2</a></li><li>log10 - <a href="lang_mathfunc.html#log">lang_mathfunc.html#log</a></li><li>long term support - <a href="lts.html">lts.html</a></li><li>lookaside - <a href="malloc.html#lookaside">malloc.html#lookaside</a></li><li>lookaside buffer - <a href="malloc.html#lookaside">malloc.html#lookaside</a></li><li>lookaside memory - <a href="malloc.html#lookaside">malloc.html#lookaside</a></li><li>lookaside memory allocator - <a href="malloc.html#lookaside">malloc.html#lookaside</a></li><li>low-dependency - <a href="selfcontained.html">selfcontained.html</a></li><li>lower - <a href="lang_corefunc.html#lower">lang_corefunc.html#lower</a></li><li>lower SQL function - <a href="lang_corefunc.html#lower">lang_corefunc.html#lower</a></li><li>ltrim - <a href="lang_corefunc.html#ltrim">lang_corefunc.html#ltrim</a></li><li>ltrim SQL function - <a href="lang_corefunc.html#ltrim">lang_corefunc.html#ltrim</a></li><li>mailing lists - <a href="support.html#mailinglists">support.html#mailinglists</a></li><li>managing SQLite Archives from the command-line - <a href="sqlar.html#cltools">sqlar.html#cltools</a></li><li>Manual Control Of Query Plans Using CROSS JOIN - <a href="optoverview.html#crossjoin">optoverview.html#crossjoin</a></li><li>Manual Control Of Query Plans Using SQLITE_STAT Tables - <a href="optoverview.html#manctrl">optoverview.html#manctrl</a></li><li>master journal - <a href="tempfiles.html#superjrnl">tempfiles.html#superjrnl</a></li><li>MATCH - <a href="lang_expr.html#match">lang_expr.html#match</a></li><li>matchinfo - <a href="fts3.html#matchinfo">fts3.html#matchinfo</a></li><li>matchinfo b flag - <a href="fts3.html#matchinfo-b">fts3.html#matchinfo-b</a></li><li>matchinfo x flag - <a href="fts3.html#matchinfo-x">fts3.html#matchinfo-x</a></li><li>matchinfo y flag - <a href="fts3.html#matchinfo-y">fts3.html#matchinfo-y</a></li><li>materialization hints - <a href="lang_with.html#mathint">lang_with.html#mathint</a></li><li>MATERIALIZED - <a href="lang_with.html#mathint">lang_with.html#mathint</a></li><li>Math Functions - <a href="lang_mathfunc.html">lang_mathfunc.html</a></li><li>math functions - <a href="lang_mathfunc.html">lang_mathfunc.html</a></li><li>mathfunc - <a href="lang_mathfunc.html">lang_mathfunc.html</a></li><li>max - <a href="lang_corefunc.html#max_scalar">lang_corefunc.html#max_scalar</a></li><li>max aggregate function - <a href="lang_aggfunc.html#max_agg">lang_aggfunc.html#max_agg</a></li><li>max SQL function - <a href="lang_corefunc.html#max_scalar">lang_corefunc.html#max_scalar</a></li><li>max_agg - <a href="lang_aggfunc.html#max_agg">lang_aggfunc.html#max_agg</a></li><li>max_page_count - <a href="pragma.html#pragma_max_page_count">pragma.html#pragma_max_page_count</a></li><li>max_page_count pragma - <a href="pragma.html#pragma_max_page_count">pragma.html#pragma_max_page_count</a></li><li>max_scalar - <a href="lang_corefunc.html#max_scalar">lang_corefunc.html#max_scalar</a></li><li>maxopen parameter - <a href="swarmvtab.html#the_maxopen_parameter">swarmvtab.html#the_maxopen_parameter</a></li><li>MC/DC - <a href="testing.html#mcdc">testing.html#mcdc</a></li><li>MC/DC testing - <a href="testing.html#mcdc">testing.html#mcdc</a></li><li>memory - <a href="inmemorydb.html">inmemorydb.html</a></li><li>memory allocation - <a href="malloc.html">malloc.html</a></li><li>memory statistics - <a href="malloc.html#memstatus">malloc.html#memstatus</a></li><li>memory-mapped I/O - <a href="mmap.html">mmap.html</a></li><li>memsys2 - <a href="malloc.html#memdebug">malloc.html#memdebug</a></li><li>memsys5 - <a href="malloc.html#memsys5">malloc.html#memsys5</a></li><li>merge command - <a href="fts3.html#*fts4mergecmd">fts3.html#*fts4mergecmd</a></li><li>microoptimizations - <a href="cpu.html#microopt">cpu.html#microopt</a></li><li>min - <a href="lang_corefunc.html#min_scalar">lang_corefunc.html#min_scalar</a></li><li>min aggregate function - <a href="lang_aggfunc.html#min_agg">lang_aggfunc.html#min_agg</a></li><li>min SQL function - <a href="lang_corefunc.html#min_scalar">lang_corefunc.html#min_scalar</a></li><li>min/max optimization - <a href="optoverview.html#minmax">optoverview.html#minmax</a></li><li>min_agg - <a href="lang_aggfunc.html#min_agg">lang_aggfunc.html#min_agg</a></li><li>min_scalar - <a href="lang_corefunc.html#min_scalar">lang_corefunc.html#min_scalar</a></li><li>missing callback - <a href="swarmvtab.html#the_missing_callback">swarmvtab.html#the_missing_callback</a></li><li>mmap - <a href="mmap.html">mmap.html</a></li><li>mmap_size - <a href="pragma.html#pragma_mmap_size">pragma.html#pragma_mmap_size</a></li><li>mmap_size pragma - <a href="pragma.html#pragma_mmap_size">pragma.html#pragma_mmap_size</a></li><li>mod - <a href="lang_mathfunc.html#mod">lang_mathfunc.html#mod</a></li><li>mod SQL function - <a href="lang_mathfunc.html#mod">lang_mathfunc.html#mod</a></li><li>mode query parameter - <a href="uri.html#urimode">uri.html#urimode</a></li><li>modeof - <a href="uri.html#urimodeof">uri.html#urimodeof</a></li><li>modeof query parameter - <a href="uri.html#urimodeof">uri.html#urimodeof</a></li><li>modifiers - <a href="lang_datefunc.html#dtmods">lang_datefunc.html#dtmods</a></li><li>module_list - <a href="pragma.html#pragma_module_list">pragma.html#pragma_module_list</a></li><li>module_list pragma - <a href="pragma.html#pragma_module_list">pragma.html#pragma_module_list</a></li><li>most used - <a href="mostdeployed.html">mostdeployed.html</a></li><li>most widely deployed - <a href="mostdeployed.html">mostdeployed.html</a></li><li>most widely used - <a href="mostdeployed.html">mostdeployed.html</a></li><li>mutation test script - <a href="th3.html#muttest">th3.html#muttest</a></li><li>mutation testing - <a href="testing.html#mutationtests">testing.html#mutationtests</a></li><li>mxFrame - <a href="walformat.html#mxframe">walformat.html#mxframe</a></li><li>naming - <a href="lang_naming.html">lang_naming.html</a></li><li>nBackfill - <a href="walformat.html#nbackfill">walformat.html#nbackfill</a></li><li>NEAR queries - <a href="fts3.html#near">fts3.html#near</a></li><li>network filesystem use - <a href="useovernet.html">useovernet.html</a></li><li>Next Generation Query Planner - <a href="queryplanner-ng.html">queryplanner-ng.html</a></li><li>next generation query planner - <a href="queryplanner-ng.html">queryplanner-ng.html</a></li><li>NGQP - <a href="queryplanner-ng.html">queryplanner-ng.html</a></li><li>NOCASE - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>NOCASE collating function - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>nolock query parameter - <a href="uri.html#urinolock">uri.html#urinolock</a></li><li>non-deterministic functions - <a href="deterministic.html">deterministic.html</a></li><li>non-standard SELECT syntax - <a href="lang_select.html#nonstd">lang_select.html#nonstd</a></li><li>NOT EXISTS operator - <a href="lang_expr.html#exists_op">lang_expr.html#exists_op</a></li><li>NOT IN operator - <a href="lang_expr.html#in_op">lang_expr.html#in_op</a></li><li>NOT INDEXED - <a href="lang_indexedby.html">lang_indexedby.html</a></li><li>NOT MATERIALIZED - <a href="lang_with.html#mathint">lang_with.html#mathint</a></li><li>NOT NULL - <a href="lang_createtable.html#notnullconst">lang_createtable.html#notnullconst</a></li><li>NOT NULL constraint - <a href="lang_createtable.html#notnullconst">lang_createtable.html#notnullconst</a></li><li>NOT NULL constraints - <a href="lang_createtable.html#notnullconst">lang_createtable.html#notnullconst</a></li><li>not open-contributin - <a href="copyright.html#notopencontrib">copyright.html#notopencontrib</a></li><li>NUL characters in strings - <a href="nulinstr.html">nulinstr.html</a></li><li>nullif - <a href="lang_corefunc.html#nullif">lang_corefunc.html#nullif</a></li><li>nullif SQL function - <a href="lang_corefunc.html#nullif">lang_corefunc.html#nullif</a></li><li>NULLS FIRST - <a href="lang_select.html#nullslast">lang_select.html#nullslast</a></li><li>NULLS LAST - <a href="lang_select.html#nullslast">lang_select.html#nullslast</a></li><li>nullvalue method - <a href="tclsqlite.html#nullvalue">tclsqlite.html#nullvalue</a></li><li>numeric-literal - <a href="syntax/numeric-literal.html">syntax/numeric-literal.html</a></li><li>numeric-literal syntax diagram - <a href="syntax/numeric-literal.html">syntax/numeric-literal.html</a></li><li>object resolution - <a href="lang_naming.html">lang_naming.html</a></li><li>octet_length - <a href="lang_corefunc.html#octet_length">lang_corefunc.html#octet_length</a></li><li>octet_length SQL function - <a href="lang_corefunc.html#octet_length">lang_corefunc.html#octet_length</a></li><li>OFFSET - <a href="lang_select.html#limitoffset">lang_select.html#limitoffset</a></li><li>offsets - <a href="fts3.html#offsets">fts3.html#offsets</a></li><li>omit-left-join optimization - <a href="optoverview.html#omitnoopjoin">optoverview.html#omitnoopjoin</a></li><li>omit-outer-join optimization - <a href="optoverview.html#omitnoopjoin">optoverview.html#omitnoopjoin</a></li><li>omitfeatures - <a href="compile.html#omitfeatures">compile.html#omitfeatures</a></li><li>ON CONFLICT - <a href="lang_conflict.html">lang_conflict.html</a></li><li>ON CONFLICT clause - <a href="lang_conflict.html">lang_conflict.html</a></li><li>ON CONFLICT clauses - <a href="lang_conflict.html">lang_conflict.html</a></li><li>on-disk format - <a href="fileformat2.html">fileformat2.html</a></li><li>onecolumn method - <a href="tclsqlite.html#onecolumn">tclsqlite.html#onecolumn</a></li><li>opcode definitions - <a href="opcode.html#codes">opcode.html#codes</a></li><li>opcodes - <a href="opcode.html">opcode.html</a></li><li>OPEN_EXRESCODE - <a href="c3ref/open.html#openexrescode">c3ref/open.html#openexrescode</a></li><li>OPEN_NOFOLLOW - <a href="c3ref/open.html#opennofollow">c3ref/open.html#opennofollow</a></li><li>openclose callback - <a href="swarmvtab.html#the_openclose_callback">swarmvtab.html#the_openclose_callback</a></li><li>OpenOffice case study - <a href="affcase1.html">affcase1.html</a></li><li>optimize - <a href="pragma.html#pragma_optimize">pragma.html#pragma_optimize</a></li><li>optimize command - <a href="fts3.html#*fts4optcmd">fts3.html#*fts4optcmd</a></li><li>optimize pragma - <a href="pragma.html#pragma_optimize">pragma.html#pragma_optimize</a></li><li>optimizer - <a href="optoverview.html">optoverview.html</a></li><li>OR optimization - <a href="optoverview.html#or_opt">optoverview.html#or_opt</a></li><li>or optimization - <a href="optoverview.html#or_opt">optoverview.html#or_opt</a></li><li>or-connected-terms - <a href="queryplanner.html#or_in_where">queryplanner.html#or_in_where</a></li><li>ORDER BY - <a href="lang_select.html#orderby">lang_select.html#orderby</a></li><li>order by - <a href="lang_select.html#orderby">lang_select.html#orderby</a></li><li>ORDER BY clause in aggregate functions - <a href="lang_aggfunc.html#aggorderby">lang_aggfunc.html#aggorderby</a></li><li>orderByConsumed - <a href="vtab.html#obc">vtab.html#obc</a></li><li>ordering-term - <a href="syntax/ordering-term.html">syntax/ordering-term.html</a></li><li>ordering-term syntax diagram - <a href="syntax/ordering-term.html">syntax/ordering-term.html</a></li><li>ordinary common table expressions - <a href="lang_with.html#ordinarycte">lang_with.html#ordinarycte</a></li><li>OS backend - <a href="vfs.html">vfs.html</a></li><li>OSS Fuzz - <a href="testing.html#ossfuzz">testing.html#ossfuzz</a></li><li>OUTER JOIN strength reduction - <a href="optoverview.html#leftjoinreduction">optoverview.html#leftjoinreduction</a></li><li>OUTER JOIN strength reduction optimization - <a href="optoverview.html#leftjoinreduction">optoverview.html#leftjoinreduction</a></li><li>output mode - <a href="cli.html#dotmode">cli.html#dotmode</a></li><li>over-clause - <a href="syntax/over-clause.html">syntax/over-clause.html</a></li><li>over-clause syntax diagram - <a href="syntax/over-clause.html">syntax/over-clause.html</a></li><li>overflow page - <a href="fileformat2.html#ovflpgs">fileformat2.html#ovflpgs</a></li><li>overflow pages - <a href="fileformat2.html#ovflpgs">fileformat2.html#ovflpgs</a></li><li>page cache - <a href="c3ref/pcache_methods2.html">c3ref/pcache_methods2.html</a></li><li>page_count - <a href="pragma.html#pragma_page_count">pragma.html#pragma_page_count</a></li><li>page_count pragma - <a href="pragma.html#pragma_page_count">pragma.html#pragma_page_count</a></li><li>page_size - <a href="pragma.html#pragma_page_size">pragma.html#pragma_page_size</a></li><li>page_size pragma - <a href="pragma.html#pragma_page_size">pragma.html#pragma_page_size</a></li><li>pagecache memory allocator - <a href="malloc.html#pagecache">malloc.html#pagecache</a></li><li>parameter - <a href="lang_expr.html#varparam">lang_expr.html#varparam</a></li><li>parameter binding - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>parameters - <a href="lang_expr.html#varparam">lang_expr.html#varparam</a></li><li>parent key - <a href="foreignkeys.html#parentchild">foreignkeys.html#parentchild</a></li><li>parent table - <a href="foreignkeys.html#parentchild">foreignkeys.html#parentchild</a></li><li>parser_trace - <a href="pragma.html#pragma_parser_trace">pragma.html#pragma_parser_trace</a></li><li>parser_trace pragma - <a href="pragma.html#pragma_parser_trace">pragma.html#pragma_parser_trace</a></li><li>partial index - <a href="partialindex.html">partialindex.html</a></li><li>partial indexes - <a href="partialindex.html">partialindex.html</a></li><li>partial indices - <a href="partialindex.html">partialindex.html</a></li><li>partial sorting by index - <a href="queryplanner.html#partialsort">queryplanner.html#partialsort</a></li><li>partition - <a href="windowfunctions.html#ptxn">windowfunctions.html#ptxn</a></li><li>patchset - <a href="sessionintro.html#changeset">sessionintro.html#changeset</a></li><li>patchsets - <a href="sessionintro.html#changeset">sessionintro.html#changeset</a></li><li>PENDING - <a href="lockingv3.html#pending_lock">lockingv3.html#pending_lock</a></li><li>PENDING lock - <a href="lockingv3.html#pending_lock">lockingv3.html#pending_lock</a></li><li>pending lock - <a href="lockingv3.html#pending_lock">lockingv3.html#pending_lock</a></li><li>permuted index - <a href="sitemap.html">sitemap.html</a></li><li>persistent journal mode - <a href="pragma.html#pragma_journal_mode">pragma.html#pragma_journal_mode</a></li><li>persistent loadable extensions - <a href="loadext.html#persist">loadext.html#persist</a></li><li>phrase queries - <a href="fts3.html#phrase">fts3.html#phrase</a></li><li>pi - <a href="lang_mathfunc.html#pi">lang_mathfunc.html#pi</a></li><li>pi SQL function - <a href="lang_mathfunc.html#pi">lang_mathfunc.html#pi</a></li><li>pointer leak - <a href="bindptr.html#ptrleak">bindptr.html#ptrleak</a></li><li>pointer leaks - <a href="bindptr.html#ptrleak">bindptr.html#ptrleak</a></li><li>pointer passing interface - <a href="bindptr.html">bindptr.html</a></li><li>pointer passing interfaces - <a href="bindptr.html">bindptr.html</a></li><li>pointer types - <a href="bindptr.html#ptrtyp">bindptr.html#ptrtyp</a></li><li>pointer value - <a href="bindptr.html">bindptr.html</a></li><li>porting SQLite - <a href="custombuild.html">custombuild.html</a></li><li>pow - <a href="lang_mathfunc.html#pow">lang_mathfunc.html#pow</a></li><li>pow SQL function - <a href="lang_mathfunc.html#pow">lang_mathfunc.html#pow</a></li><li>power-safe - <a href="transactional.html">transactional.html</a></li><li>power-safe transactions - <a href="transactional.html">transactional.html</a></li><li>powersafe overwrite - <a href="psow.html">psow.html</a></li><li>PRAGMA - <a href="pragma.html#syntax">pragma.html#syntax</a></li><li>PRAGMA analysis_limit - <a href="pragma.html#pragma_analysis_limit">pragma.html#pragma_analysis_limit</a></li><li>PRAGMA application_id - <a href="pragma.html#pragma_application_id">pragma.html#pragma_application_id</a></li><li>PRAGMA auto_vacuum - <a href="pragma.html#pragma_auto_vacuum">pragma.html#pragma_auto_vacuum</a></li><li>PRAGMA automatic_index - <a href="pragma.html#pragma_automatic_index">pragma.html#pragma_automatic_index</a></li><li>PRAGMA busy_timeout - <a href="pragma.html#pragma_busy_timeout">pragma.html#pragma_busy_timeout</a></li><li>PRAGMA cache_size - <a href="pragma.html#pragma_cache_size">pragma.html#pragma_cache_size</a></li><li>PRAGMA cache_spill - <a href="pragma.html#pragma_cache_spill">pragma.html#pragma_cache_spill</a></li><li>PRAGMA case_sensitive_like - <a href="pragma.html#pragma_case_sensitive_like">pragma.html#pragma_case_sensitive_like</a></li><li>PRAGMA cell_size_check - <a href="pragma.html#pragma_cell_size_check">pragma.html#pragma_cell_size_check</a></li><li>PRAGMA checkpoint_fullfsync - <a href="pragma.html#pragma_checkpoint_fullfsync">pragma.html#pragma_checkpoint_fullfsync</a></li><li>PRAGMA collation_list - <a href="pragma.html#pragma_collation_list">pragma.html#pragma_collation_list</a></li><li>PRAGMA compile_options - <a href="pragma.html#pragma_compile_options">pragma.html#pragma_compile_options</a></li><li>PRAGMA count_changes - <a href="pragma.html#pragma_count_changes">pragma.html#pragma_count_changes</a></li><li>PRAGMA data_store_directory - <a href="pragma.html#pragma_data_store_directory">pragma.html#pragma_data_store_directory</a></li><li>PRAGMA data_version - <a href="pragma.html#pragma_data_version">pragma.html#pragma_data_version</a></li><li>PRAGMA database_list - <a href="pragma.html#pragma_database_list">pragma.html#pragma_database_list</a></li><li>PRAGMA default_cache_size - <a href="pragma.html#pragma_default_cache_size">pragma.html#pragma_default_cache_size</a></li><li>PRAGMA defer_foreign_keys - <a href="pragma.html#pragma_defer_foreign_keys">pragma.html#pragma_defer_foreign_keys</a></li><li>PRAGMA empty_result_callbacks - <a href="pragma.html#pragma_empty_result_callbacks">pragma.html#pragma_empty_result_callbacks</a></li><li>PRAGMA encoding - <a href="pragma.html#pragma_encoding">pragma.html#pragma_encoding</a></li><li>PRAGMA foreign_key_check - <a href="pragma.html#pragma_foreign_key_check">pragma.html#pragma_foreign_key_check</a></li><li>PRAGMA foreign_key_list - <a href="pragma.html#pragma_foreign_key_list">pragma.html#pragma_foreign_key_list</a></li><li>PRAGMA foreign_keys - <a href="pragma.html#pragma_foreign_keys">pragma.html#pragma_foreign_keys</a></li><li>PRAGMA freelist_count - <a href="pragma.html#pragma_freelist_count">pragma.html#pragma_freelist_count</a></li><li>PRAGMA full_column_names - <a href="pragma.html#pragma_full_column_names">pragma.html#pragma_full_column_names</a></li><li>PRAGMA fullfsync - <a href="pragma.html#pragma_fullfsync">pragma.html#pragma_fullfsync</a></li><li>PRAGMA function - <a href="pragma.html#pragfunc">pragma.html#pragfunc</a></li><li>PRAGMA function_list - <a href="pragma.html#pragma_function_list">pragma.html#pragma_function_list</a></li><li>PRAGMA functions - <a href="pragma.html#pragfunc">pragma.html#pragfunc</a></li><li>PRAGMA hard_heap_limit - <a href="pragma.html#pragma_hard_heap_limit">pragma.html#pragma_hard_heap_limit</a></li><li>PRAGMA ignore_check_constraints - <a href="pragma.html#pragma_ignore_check_constraints">pragma.html#pragma_ignore_check_constraints</a></li><li>PRAGMA incremental_vacuum - <a href="pragma.html#pragma_incremental_vacuum">pragma.html#pragma_incremental_vacuum</a></li><li>PRAGMA index_info - <a href="pragma.html#pragma_index_info">pragma.html#pragma_index_info</a></li><li>PRAGMA index_list - <a href="pragma.html#pragma_index_list">pragma.html#pragma_index_list</a></li><li>PRAGMA index_xinfo - <a href="pragma.html#pragma_index_xinfo">pragma.html#pragma_index_xinfo</a></li><li>PRAGMA integrity_check - <a href="pragma.html#pragma_integrity_check">pragma.html#pragma_integrity_check</a></li><li>PRAGMA journal_mode - <a href="pragma.html#pragma_journal_mode">pragma.html#pragma_journal_mode</a></li><li>PRAGMA journal_size_limit - <a href="pragma.html#pragma_journal_size_limit">pragma.html#pragma_journal_size_limit</a></li><li>PRAGMA legacy_alter_table - <a href="pragma.html#pragma_legacy_alter_table">pragma.html#pragma_legacy_alter_table</a></li><li>PRAGMA legacy_file_format - <a href="pragma.html#pragma_legacy_file_format">pragma.html#pragma_legacy_file_format</a></li><li>pragma list - <a href="pragma.html#toc">pragma.html#toc</a></li><li>PRAGMA locking_mode - <a href="pragma.html#pragma_locking_mode">pragma.html#pragma_locking_mode</a></li><li>PRAGMA max_page_count - <a href="pragma.html#pragma_max_page_count">pragma.html#pragma_max_page_count</a></li><li>PRAGMA mmap_size - <a href="pragma.html#pragma_mmap_size">pragma.html#pragma_mmap_size</a></li><li>PRAGMA module_list - <a href="pragma.html#pragma_module_list">pragma.html#pragma_module_list</a></li><li>PRAGMA optimize - <a href="pragma.html#pragma_optimize">pragma.html#pragma_optimize</a></li><li>PRAGMA page_count - <a href="pragma.html#pragma_page_count">pragma.html#pragma_page_count</a></li><li>PRAGMA page_size - <a href="pragma.html#pragma_page_size">pragma.html#pragma_page_size</a></li><li>PRAGMA parser_trace - <a href="pragma.html#pragma_parser_trace">pragma.html#pragma_parser_trace</a></li><li>PRAGMA pragma_list - <a href="pragma.html#pragma_pragma_list">pragma.html#pragma_pragma_list</a></li><li>PRAGMA query_only - <a href="pragma.html#pragma_query_only">pragma.html#pragma_query_only</a></li><li>PRAGMA quick_check - <a href="pragma.html#pragma_quick_check">pragma.html#pragma_quick_check</a></li><li>PRAGMA read_uncommitted - <a href="pragma.html#pragma_read_uncommitted">pragma.html#pragma_read_uncommitted</a></li><li>PRAGMA recursive_triggers - <a href="pragma.html#pragma_recursive_triggers">pragma.html#pragma_recursive_triggers</a></li><li>PRAGMA reverse_unordered_selects - <a href="pragma.html#pragma_reverse_unordered_selects">pragma.html#pragma_reverse_unordered_selects</a></li><li>PRAGMA schema_version - <a href="pragma.html#pragma_schema_version">pragma.html#pragma_schema_version</a></li><li>PRAGMA secure_delete - <a href="pragma.html#pragma_secure_delete">pragma.html#pragma_secure_delete</a></li><li>PRAGMA short_column_names - <a href="pragma.html#pragma_short_column_names">pragma.html#pragma_short_column_names</a></li><li>PRAGMA shrink_memory - <a href="pragma.html#pragma_shrink_memory">pragma.html#pragma_shrink_memory</a></li><li>PRAGMA soft_heap_limit - <a href="pragma.html#pragma_soft_heap_limit">pragma.html#pragma_soft_heap_limit</a></li><li>PRAGMA stats - <a href="pragma.html#pragma_stats">pragma.html#pragma_stats</a></li><li>PRAGMA synchronous - <a href="pragma.html#pragma_synchronous">pragma.html#pragma_synchronous</a></li><li>PRAGMA table_info - <a href="pragma.html#pragma_table_info">pragma.html#pragma_table_info</a></li><li>PRAGMA table_list - <a href="pragma.html#pragma_table_list">pragma.html#pragma_table_list</a></li><li>PRAGMA table_xinfo - <a href="pragma.html#pragma_table_xinfo">pragma.html#pragma_table_xinfo</a></li><li>PRAGMA temp_store - <a href="pragma.html#pragma_temp_store">pragma.html#pragma_temp_store</a></li><li>PRAGMA temp_store_directory - <a href="pragma.html#pragma_temp_store_directory">pragma.html#pragma_temp_store_directory</a></li><li>PRAGMA threads - <a href="pragma.html#pragma_threads">pragma.html#pragma_threads</a></li><li>PRAGMA trusted_schema - <a href="pragma.html#pragma_trusted_schema">pragma.html#pragma_trusted_schema</a></li><li>PRAGMA user_version - <a href="pragma.html#pragma_user_version">pragma.html#pragma_user_version</a></li><li>PRAGMA vdbe_addoptrace - <a href="pragma.html#pragma_vdbe_addoptrace">pragma.html#pragma_vdbe_addoptrace</a></li><li>PRAGMA vdbe_debug - <a href="pragma.html#pragma_vdbe_debug">pragma.html#pragma_vdbe_debug</a></li><li>PRAGMA vdbe_listing - <a href="pragma.html#pragma_vdbe_listing">pragma.html#pragma_vdbe_listing</a></li><li>PRAGMA vdbe_trace - <a href="pragma.html#pragma_vdbe_trace">pragma.html#pragma_vdbe_trace</a></li><li>PRAGMA wal_autocheckpoint - <a href="pragma.html#pragma_wal_autocheckpoint">pragma.html#pragma_wal_autocheckpoint</a></li><li>PRAGMA wal_checkpoint - <a href="pragma.html#pragma_wal_checkpoint">pragma.html#pragma_wal_checkpoint</a></li><li>PRAGMA writable_schema - <a href="pragma.html#pragma_writable_schema">pragma.html#pragma_writable_schema</a></li><li>pragma-stmt - <a href="syntax/pragma-stmt.html">syntax/pragma-stmt.html</a></li><li>pragma-stmt syntax diagram - <a href="syntax/pragma-stmt.html">syntax/pragma-stmt.html</a></li><li>pragma-value - <a href="syntax/pragma-value.html">syntax/pragma-value.html</a></li><li>pragma-value syntax diagram - <a href="syntax/pragma-value.html">syntax/pragma-value.html</a></li><li>pragma_list - <a href="pragma.html#pragma_pragma_list">pragma.html#pragma_pragma_list</a></li><li>pragma_list pragma - <a href="pragma.html#pragma_pragma_list">pragma.html#pragma_pragma_list</a></li><li>precompiled amalgamation tarballs - <a href="amalgamation.html#amalgtarball">amalgamation.html#amalgtarball</a></li><li>prefix queries - <a href="fts3.html#termprefix">fts3.html#termprefix</a></li><li>prefix query - <a href="fts3.html#termprefix">fts3.html#termprefix</a></li><li>prepared statement - <a href="c3ref/stmt.html">c3ref/stmt.html</a></li><li>prepared statements - <a href="c3ref/stmt.html">c3ref/stmt.html</a></li><li>preupdate method - <a href="tclsqlite.html#preupdate">tclsqlite.html#preupdate</a></li><li>PRIMARY KEY - <a href="lang_createtable.html#primkeyconst">lang_createtable.html#primkeyconst</a></li><li>PRIMARY KEY constraint - <a href="lang_createtable.html#primkeyconst">lang_createtable.html#primkeyconst</a></li><li>primary versus extended result codes - <a href="rescode.html#pve">rescode.html#pve</a></li><li>printf - <a href="lang_corefunc.html#printf">lang_corefunc.html#printf</a></li><li>printf SQL function - <a href="lang_corefunc.html#printf">lang_corefunc.html#printf</a></li><li>prior releases - <a href="chronology.html">chronology.html</a></li><li>private branches - <a href="privatebranch.html">privatebranch.html</a></li><li>professional support - <a href="prosupport.html">prosupport.html</a></li><li>profile method - <a href="tclsqlite.html#profile">tclsqlite.html#profile</a></li><li>Programming Loadable Extensions - <a href="loadext.html#write">loadext.html#write</a></li><li>progress method - <a href="tclsqlite.html#progress">tclsqlite.html#progress</a></li><li>protected sqlite3_value - <a href="c3ref/value.html">c3ref/value.html</a></li><li>PSOW - <a href="psow.html">psow.html</a></li><li>psow query parameter - <a href="uri.html#uripsow">uri.html#uripsow</a></li><li>public-domain - <a href="copyright.html">copyright.html</a></li><li>push-down optimization - <a href="optoverview.html#pushdown">optoverview.html#pushdown</a></li><li>Q - <a href="printf.html#percentq">printf.html#percentq</a></li><li>q - <a href="printf.html#percentq">printf.html#percentq</a></li><li>qbox - <a href="cli.html#qbox">cli.html#qbox</a></li><li>qbox output mode - <a href="cli.html#qbox">cli.html#qbox</a></li><li>QPSG - <a href="queryplanner-ng.html#qpstab">queryplanner-ng.html#qpstab</a></li><li>qualified-table-name - <a href="syntax/qualified-table-name.html">syntax/qualified-table-name.html</a></li><li>qualified-table-name syntax diagram - <a href="syntax/qualified-table-name.html">syntax/qualified-table-name.html</a></li><li>queries against graphs - <a href="lang_with.html#rcex3">lang_with.html#rcex3</a></li><li>query flattener - <a href="optoverview.html#flattening">optoverview.html#flattening</a></li><li>query parameters with special meaning to SQLite - <a href="uri.html#coreqp">uri.html#coreqp</a></li><li>query planner - <a href="optoverview.html">optoverview.html</a></li><li>query planner checklist - <a href="queryplanner-ng.html#howtofix">queryplanner-ng.html#howtofix</a></li><li>query planner stability guarantee - <a href="queryplanner-ng.html#qpstab">queryplanner-ng.html#qpstab</a></li><li>query_only - <a href="pragma.html#pragma_query_only">pragma.html#pragma_query_only</a></li><li>query_only pragma - <a href="pragma.html#pragma_query_only">pragma.html#pragma_query_only</a></li><li>Quick Start Guide - <a href="quickstart.html">quickstart.html</a></li><li>quick_check - <a href="pragma.html#pragma_quick_check">pragma.html#pragma_quick_check</a></li><li>quick_check pragma - <a href="pragma.html#pragma_quick_check">pragma.html#pragma_quick_check</a></li><li>quickstart - <a href="quickstart.html">quickstart.html</a></li><li>Quirks - <a href="quirks.html">quirks.html</a></li><li>quote - <a href="lang_corefunc.html#quote">lang_corefunc.html#quote</a></li><li>quote SQL function - <a href="lang_corefunc.html#quote">lang_corefunc.html#quote</a></li><li>R-Tree extension - <a href="rtree.html">rtree.html</a></li><li>R-Trees - <a href="rtree.html">rtree.html</a></li><li>radians - <a href="lang_mathfunc.html#radians">lang_mathfunc.html#radians</a></li><li>radians SQL function - <a href="lang_mathfunc.html#radians">lang_mathfunc.html#radians</a></li><li>RAISE function - <a href="lang_createtrigger.html#raise">lang_createtrigger.html#raise</a></li><li>raise-function - <a href="syntax/raise-function.html">syntax/raise-function.html</a></li><li>raise-function syntax diagram - <a href="syntax/raise-function.html">syntax/raise-function.html</a></li><li>random - <a href="lang_corefunc.html#random">lang_corefunc.html#random</a></li><li>random SQL function - <a href="lang_corefunc.html#random">lang_corefunc.html#random</a></li><li>randomblob - <a href="lang_corefunc.html#randomblob">lang_corefunc.html#randomblob</a></li><li>randomblob SQL function - <a href="lang_corefunc.html#randomblob">lang_corefunc.html#randomblob</a></li><li>RANGE frames - <a href="windowfunctions.html#rangetype">windowfunctions.html#rangetype</a></li><li>RANGE n FOLLOWING - <a href="windowfunctions.html#exprrange">windowfunctions.html#exprrange</a></li><li>RANGE n PRECEDING - <a href="windowfunctions.html#exprrange">windowfunctions.html#exprrange</a></li><li>range query optimization - <a href="optoverview.html#rangequery">optoverview.html#rangequery</a></li><li>RBU - <a href="rbu.html">rbu.html</a></li><li>RBU Database Contents - <a href="rbu.html#database_contents">rbu.html#database_contents</a></li><li>RBU Database Tables - <a href="rbu.html#database_tables">rbu.html#database_tables</a></li><li>RBU extension - <a href="rbu.html">rbu.html</a></li><li>RBU FTS3/4 Tables - <a href="rbu.html#fts4_tables">rbu.html#fts4_tables</a></li><li>RBU Update - <a href="rbu.html#rbu_updates">rbu.html#rbu_updates</a></li><li>RBU Vacuum - <a href="rbu.html#rbu_vacuum">rbu.html#rbu_vacuum</a></li><li>read-only WAL databases - <a href="wal.html#readonly">wal.html#readonly</a></li><li>read_uncommitted - <a href="pragma.html#pragma_read_uncommitted">pragma.html#pragma_read_uncommitted</a></li><li>read_uncommitted pragma - <a href="pragma.html#pragma_read_uncommitted">pragma.html#pragma_read_uncommitted</a></li><li>reading and writing an rtree at the same time - <a href="rtree.html#readwrite">rtree.html#readwrite</a></li><li>rebuild command - <a href="fts3.html#*fts4rebuidcmd">fts3.html#*fts4rebuidcmd</a></li><li>recent CVEs - <a href="cves.html#cvetab">cves.html#cvetab</a></li><li>recommended ANALYZE usage pattern - <a href="lang_analyze.html#req">lang_analyze.html#req</a></li><li>recommended by the US Library of Congress - <a href="locrsf.html">locrsf.html</a></li><li>recommended compile-time option - <a href="compile.html#rcmd">compile.html#rcmd</a></li><li>recommended compile-time options - <a href="compile.html#rcmd">compile.html#rcmd</a></li><li>recommended storage format - <a href="locrsf.html">locrsf.html</a></li><li>record format - <a href="fileformat2.html#record_format">fileformat2.html#record_format</a></li><li>recovery - <a href="walformat.html#recovery">walformat.html#recovery</a></li><li>recovery extension - <a href="recovery.html">recovery.html</a></li><li>recursive common table expression - <a href="lang_with.html#recursivecte">lang_with.html#recursivecte</a></li><li>recursive common table expressions - <a href="lang_with.html#recursivecte">lang_with.html#recursivecte</a></li><li>recursive query - <a href="lang_with.html#recursivecte">lang_with.html#recursivecte</a></li><li>recursive-cte - <a href="syntax/recursive-cte.html">syntax/recursive-cte.html</a></li><li>recursive-cte syntax diagram - <a href="syntax/recursive-cte.html">syntax/recursive-cte.html</a></li><li>recursive_triggers - <a href="pragma.html#pragma_recursive_triggers">pragma.html#pragma_recursive_triggers</a></li><li>recursive_triggers pragma - <a href="pragma.html#pragma_recursive_triggers">pragma.html#pragma_recursive_triggers</a></li><li>REGEXP - <a href="lang_expr.html#regexp">lang_expr.html#regexp</a></li><li>REINDEX - <a href="lang_reindex.html">lang_reindex.html</a></li><li>reindex - <a href="lang_reindex.html">lang_reindex.html</a></li><li>reindex-stmt - <a href="syntax/reindex-stmt.html">syntax/reindex-stmt.html</a></li><li>reindex-stmt syntax diagram - <a href="syntax/reindex-stmt.html">syntax/reindex-stmt.html</a></li><li>RELEASE - <a href="lang_savepoint.html">lang_savepoint.html</a></li><li>release history - <a href="changes.html">changes.html</a></li><li>release testing checklists - <a href="testing.html#cklist">testing.html#cklist</a></li><li>release-stmt - <a href="syntax/release-stmt.html">syntax/release-stmt.html</a></li><li>release-stmt syntax diagram - <a href="syntax/release-stmt.html">syntax/release-stmt.html</a></li><li>relfootprint - <a href="footprint.html">footprint.html</a></li><li>rename column - <a href="lang_altertable.html#altertabmvcol">lang_altertable.html#altertabmvcol</a></li><li>rename table - <a href="lang_altertable.html#altertabrename">lang_altertable.html#altertabrename</a></li><li>REPLACE - <a href="lang_replace.html">lang_replace.html</a></li><li>replace - <a href="lang_corefunc.html#replace">lang_corefunc.html#replace</a></li><li>replace SQL function - <a href="lang_corefunc.html#replace">lang_corefunc.html#replace</a></li><li>reported vulnerabilities - <a href="cves.html">cves.html</a></li><li>requirements - <a href="requirements.html">requirements.html</a></li><li>reserve bytes - <a href="fileformat2.html#resbyte">fileformat2.html#resbyte</a></li><li>RESERVED - <a href="lockingv3.html#reserved_lock">lockingv3.html#reserved_lock</a></li><li>RESERVED lock - <a href="lockingv3.html#reserved_lock">lockingv3.html#reserved_lock</a></li><li>reserved lock - <a href="lockingv3.html#reserved_lock">lockingv3.html#reserved_lock</a></li><li>reset the WAL - <a href="fileformat2.html#walreset">fileformat2.html#walreset</a></li><li>restore method - <a href="tclsqlite.html#restore">tclsqlite.html#restore</a></li><li>result code - <a href="rescode.html">rescode.html</a></li><li>result code definitions - <a href="c3ref/c_abort.html">c3ref/c_abort.html</a></li><li>result codes - <a href="rescode.html">rescode.html</a></li><li>result-column - <a href="syntax/result-column.html">syntax/result-column.html</a></li><li>result-column syntax diagram - <a href="syntax/result-column.html">syntax/result-column.html</a></li><li>result-set expressions - <a href="lang_select.html#resultset">lang_select.html#resultset</a></li><li>RETURNING - <a href="lang_returning.html">lang_returning.html</a></li><li>returning - <a href="lang_returning.html">lang_returning.html</a></li><li>RETURNING clause - <a href="lang_returning.html">lang_returning.html</a></li><li>returning-clause - <a href="syntax/returning-clause.html">syntax/returning-clause.html</a></li><li>returning-clause syntax diagram - <a href="syntax/returning-clause.html">syntax/returning-clause.html</a></li><li>reverse_unordered_selects - <a href="pragma.html#pragma_reverse_unordered_selects">pragma.html#pragma_reverse_unordered_selects</a></li><li>reverse_unordered_selects pragma - <a href="pragma.html#pragma_reverse_unordered_selects">pragma.html#pragma_reverse_unordered_selects</a></li><li>RIGHT and FULL OUTER JOIN - <a href="lang_select.html#rjoin">lang_select.html#rjoin</a></li><li>RIGHT JOIN - <a href="lang_select.html#rjoin">lang_select.html#rjoin</a></li><li>Robson proof - <a href="malloc.html#nofrag">malloc.html#nofrag</a></li><li>ROLLBACK - <a href="lang_transaction.html">lang_transaction.html</a></li><li>rollback journal - <a href="lockingv3.html#rollback">lockingv3.html#rollback</a></li><li>rollback journal format - <a href="fileformat2.html#rollbackjournal">fileformat2.html#rollbackjournal</a></li><li>rollback-stmt - <a href="syntax/rollback-stmt.html">syntax/rollback-stmt.html</a></li><li>rollback-stmt syntax diagram - <a href="syntax/rollback-stmt.html">syntax/rollback-stmt.html</a></li><li>rollback_hook method - <a href="tclsqlite.html#rollback_hook">tclsqlite.html#rollback_hook</a></li><li>round - <a href="lang_corefunc.html#round">lang_corefunc.html#round</a></li><li>round SQL function - <a href="lang_corefunc.html#round">lang_corefunc.html#round</a></li><li>row value - <a href="rowvalue.html">rowvalue.html</a></li><li>row value IN operator - <a href="rowvalue.html#rvinop">rowvalue.html#rvinop</a></li><li>row values - <a href="rowvalue.html">rowvalue.html</a></li><li>ROWID - <a href="lang_createtable.html#rowid">lang_createtable.html#rowid</a></li><li>rowid - <a href="lang_createtable.html#rowid">lang_createtable.html#rowid</a></li><li>rowid table - <a href="rowidtable.html">rowidtable.html</a></li><li>rowid tables - <a href="rowidtable.html">rowidtable.html</a></li><li>rowvalue - <a href="rowvalue.html">rowvalue.html</a></li><li>RTREE - <a href="rtree.html">rtree.html</a></li><li>rtree - <a href="rtree.html">rtree.html</a></li><li>rtree shadow tables - <a href="rtree.html#xshadow">rtree.html#xshadow</a></li><li>rtreecheck - <a href="rtree.html#rtreecheck">rtree.html#rtreecheck</a></li><li>RTRIM - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>rtrim - <a href="lang_corefunc.html#rtrim">lang_corefunc.html#rtrim</a></li><li>RTRIM collating function - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>rtrim SQL function - <a href="lang_corefunc.html#rtrim">lang_corefunc.html#rtrim</a></li><li>rules for determining column affinity - <a href="datatype3.html#affname">datatype3.html#affname</a></li><li>rules for determining column affinity in VIEWs - <a href="datatype3.html#affview">datatype3.html#affview</a></li><li>Run-Time Loadable Extensions - <a href="loadext.html">loadext.html</a></li><li>safe command-line option - <a href="cli.html#safemode">cli.html#safemode</a></li><li>SAVEPOINT - <a href="lang_savepoint.html">lang_savepoint.html</a></li><li>savepoint - <a href="lang_savepoint.html">lang_savepoint.html</a></li><li>SAVEPOINT bug - <a href="howtocorrupt.html#svptbug">howtocorrupt.html#svptbug</a></li><li>savepoint-stmt - <a href="syntax/savepoint-stmt.html">syntax/savepoint-stmt.html</a></li><li>savepoint-stmt syntax diagram - <a href="syntax/savepoint-stmt.html">syntax/savepoint-stmt.html</a></li><li>Scalar Functions - <a href="lang_corefunc.html">lang_corefunc.html</a></li><li>scalar functions - <a href="lang_corefunc.html">lang_corefunc.html</a></li><li>scan status flags - <a href="c3ref/c_scanstat_complex.html">c3ref/c_scanstat_complex.html</a></li><li>scanstatus options - <a href="c3ref/c_scanstat_est.html">c3ref/c_scanstat_est.html</a></li><li>schema format - <a href="fileformat2.html#schemaformat">fileformat2.html#schemaformat</a></li><li>schema format number - <a href="fileformat2.html#schemaformat">fileformat2.html#schemaformat</a></li><li>schema storage - <a href="fileformat2.html#ffschema">fileformat2.html#ffschema</a></li><li>schema_version - <a href="pragma.html#pragma_schema_version">pragma.html#pragma_schema_version</a></li><li>schema_version pragma - <a href="pragma.html#pragma_schema_version">pragma.html#pragma_schema_version</a></li><li>search application tips - <a href="fts3.html#appendix_a">fts3.html#appendix_a</a></li><li>second edition file format document - <a href="fileformat2.html">fileformat2.html</a></li><li>secure_delete - <a href="pragma.html#pragma_secure_delete">pragma.html#pragma_secure_delete</a></li><li>secure_delete pragma - <a href="pragma.html#pragma_secure_delete">pragma.html#pragma_secure_delete</a></li><li>security - <a href="security.html">security.html</a></li><li>segment btree - <a href="fts3.html#data_structures">fts3.html#data_structures</a></li><li>SELECT - <a href="lang_select.html">lang_select.html</a></li><li>select - <a href="lang_select.html">lang_select.html</a></li><li>SELECT query - <a href="lang_select.html">lang_select.html</a></li><li>SELECT statement - <a href="lang_select.html">lang_select.html</a></li><li>select-core - <a href="syntax/select-core.html">syntax/select-core.html</a></li><li>select-core syntax diagram - <a href="syntax/select-core.html">syntax/select-core.html</a></li><li>select-stmt - <a href="syntax/select-stmt.html">syntax/select-stmt.html</a></li><li>select-stmt syntax diagram - <a href="syntax/select-stmt.html">syntax/select-stmt.html</a></li><li>self-contained - <a href="selfcontained.html">selfcontained.html</a></li><li>separating a database from its journal - <a href="howtocorrupt.html#roguejrnl">howtocorrupt.html#roguejrnl</a></li><li>serial type - <a href="fileformat2.html#serialtype">fileformat2.html#serialtype</a></li><li>serial types - <a href="fileformat2.html#serialtype">fileformat2.html#serialtype</a></li><li>serialize method - <a href="tclsqlite.html#serialize">tclsqlite.html#serialize</a></li><li>series - <a href="series.html">series.html</a></li><li>server-side database - <a href="whentouse.html#serversidedb">whentouse.html#serversidedb</a></li><li>serverless - <a href="serverless.html">serverless.html</a></li><li>session - <a href="sessionintro.html">sessionintro.html</a></li><li>session extension - <a href="sessionintro.html">sessionintro.html</a></li><li>Session Extension C-language Interface - <a href="session/intro.html">session/intro.html</a></li><li>Session Module C-API function list - <a href="session/funclist.html">session/funclist.html</a></li><li>session-capi - <a href="session/intro.html">session/intro.html</a></li><li>session_funclist - <a href="session/funclist.html">session/funclist.html</a></li><li>shadow table - <a href="vtab.html#xshadowname">vtab.html#xshadowname</a></li><li>shadow tables - <a href="vtab.html#xshadowname">vtab.html#xshadowname</a></li><li>shadowtabs - <a href="fts3.html#shadow_tables">fts3.html#shadow_tables</a></li><li>SHARED - <a href="lockingv3.html#shared_lock">lockingv3.html#shared_lock</a></li><li>shared cache - <a href="sharedcache.html">sharedcache.html</a></li><li>shared cache mode - <a href="sharedcache.html">sharedcache.html</a></li><li>SHARED lock - <a href="lockingv3.html#shared_lock">lockingv3.html#shared_lock</a></li><li>shared lock - <a href="lockingv3.html#shared_lock">lockingv3.html#shared_lock</a></li><li>shims - <a href="vfs.html#shim">vfs.html#shim</a></li><li>shm file - <a href="walformat.html#shm">walformat.html#shm</a></li><li>short filenames - <a href="shortnames.html">shortnames.html</a></li><li>short_column_names - <a href="pragma.html#pragma_short_column_names">pragma.html#pragma_short_column_names</a></li><li>short_column_names pragma - <a href="pragma.html#pragma_short_column_names">pragma.html#pragma_short_column_names</a></li><li>shrink_memory - <a href="pragma.html#pragma_shrink_memory">pragma.html#pragma_shrink_memory</a></li><li>shrink_memory pragma - <a href="pragma.html#pragma_shrink_memory">pragma.html#pragma_shrink_memory</a></li><li>sign - <a href="lang_corefunc.html#sign">lang_corefunc.html#sign</a></li><li>sign SQL function - <a href="lang_corefunc.html#sign">lang_corefunc.html#sign</a></li><li>signed-number - <a href="syntax/signed-number.html">syntax/signed-number.html</a></li><li>signed-number syntax diagram - <a href="syntax/signed-number.html">syntax/signed-number.html</a></li><li>simple fts queries - <a href="fts3.html#simple_fts_queries">fts3.html#simple_fts_queries</a></li><li>simple SELECT - <a href="lang_select.html#simpleselect">lang_select.html#simpleselect</a></li><li>simple-function-invocation - <a href="syntax/simple-function-invocation.html">syntax/simple-function-invocation.html</a></li><li>simple-function-invocation syntax diagram - <a href="syntax/simple-function-invocation.html">syntax/simple-function-invocation.html</a></li><li>simple-select-stmt - <a href="syntax/simple-select-stmt.html">syntax/simple-select-stmt.html</a></li><li>simple-select-stmt syntax diagram - <a href="syntax/simple-select-stmt.html">syntax/simple-select-stmt.html</a></li><li>sin - <a href="lang_mathfunc.html#sin">lang_mathfunc.html#sin</a></li><li>sin SQL function - <a href="lang_mathfunc.html#sin">lang_mathfunc.html#sin</a></li><li>single-argument carray - <a href="carray.html#onearg">carray.html#onearg</a></li><li>sinh - <a href="lang_mathfunc.html#sinh">lang_mathfunc.html#sinh</a></li><li>sinh SQL function - <a href="lang_mathfunc.html#sinh">lang_mathfunc.html#sinh</a></li><li>skip-scan - <a href="optoverview.html#skipscan">optoverview.html#skipscan</a></li><li>skip-scan optimization - <a href="optoverview.html#skipscan">optoverview.html#skipscan</a></li><li>SLT - <a href="testing.html#slt">testing.html#slt</a></li><li>snapshot - <a href="c3ref/snapshot.html">c3ref/snapshot.html</a></li><li>snippet - <a href="fts3.html#snippet">fts3.html#snippet</a></li><li>soft_heap_limit - <a href="pragma.html#pragma_soft_heap_limit">pragma.html#pragma_soft_heap_limit</a></li><li>soft_heap_limit pragma - <a href="pragma.html#pragma_soft_heap_limit">pragma.html#pragma_soft_heap_limit</a></li><li>solve Sudoku puzzles - <a href="lang_with.html#sudoku">lang_with.html#sudoku</a></li><li>sort order - <a href="datatype3.html#sortorder">datatype3.html#sortorder</a></li><li>sorting - <a href="queryplanner.html#sorting">queryplanner.html#sorting</a></li><li>sorting subsets of the result - <a href="optoverview.html#partsort">optoverview.html#partsort</a></li><li>soundex - <a href="lang_corefunc.html#soundex">lang_corefunc.html#soundex</a></li><li>soundex SQL function - <a href="lang_corefunc.html#soundex">lang_corefunc.html#soundex</a></li><li>spellfix1 - <a href="spellfix1.html">spellfix1.html</a></li><li>split amalgamation - <a href="amalgamation.html#amal32k">amalgamation.html#amal32k</a></li><li>SQL Archive - <a href="sqlar.html">sqlar.html</a></li><li>SQL fuzzing - <a href="testing.html#fuzztesting">testing.html#fuzztesting</a></li><li>SQL keyword - <a href="lang_keywords.html">lang_keywords.html</a></li><li>SQL keywords - <a href="lang_keywords.html">lang_keywords.html</a></li><li>SQL Logic Tests - <a href="testing.html#slt">testing.html#slt</a></li><li>SQL parameter - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>SQL parameters - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sql parameters - <a href="swarmvtab.html#sql_parameters">swarmvtab.html#sql_parameters</a></li><li>SQL statement compiler - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sql-stmt - <a href="syntax/sql-stmt.html">syntax/sql-stmt.html</a></li><li>sql-stmt syntax diagram - <a href="syntax/sql-stmt.html">syntax/sql-stmt.html</a></li><li>sql-stmt-list - <a href="syntax/sql-stmt-list.html">syntax/sql-stmt-list.html</a></li><li>sql-stmt-list syntax diagram - <a href="syntax/sql-stmt-list.html">syntax/sql-stmt-list.html</a></li><li>SQLAR - <a href="sqlar.html">sqlar.html</a></li><li>sqldiff - <a href="sqldiff.html">sqldiff.html</a></li><li>sqldiff --rbu - <a href="rbu.html#sqldiff">rbu.html#sqldiff</a></li><li>sqldiff.exe - <a href="sqldiff.html">sqldiff.html</a></li><li>SQLite amalgamation source file - <a href="amalgamation.html">amalgamation.html</a></li><li>SQLite Archive - <a href="sqlar.html">sqlar.html</a></li><li>SQLite Archive files - <a href="sqlar.html">sqlar.html</a></li><li>SQLite Archive format - <a href="sqlar.html">sqlar.html</a></li><li>SQLite Archive smaller than ZIP - <a href="affcase1.html#smaller">affcase1.html#smaller</a></li><li>SQLite Consortium - <a href="consortium.html">consortium.html</a></li><li>SQLite database file format - <a href="fileformat2.html">fileformat2.html</a></li><li>SQLite extension - <a href="loadext.html">loadext.html</a></li><li>SQLite extensions - <a href="loadext.html">loadext.html</a></li><li>SQLite Keywords - <a href="lang_keywords.html">lang_keywords.html</a></li><li>SQLite query planner - <a href="optoverview.html">optoverview.html</a></li><li>SQLite Shared-Cache Mode - <a href="sharedcache.html">sharedcache.html</a></li><li>SQLite source code repositories - <a href="download.html#srctree">download.html#srctree</a></li><li>sqlite3 - <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a></li><li>sqlite3.exe - <a href="cli.html">cli.html</a></li><li>sqlite3.exe command-line shell - <a href="cli.html">cli.html</a></li><li>sqlite3_aggregate_context - <a href="c3ref/aggregate_context.html">c3ref/aggregate_context.html</a></li><li>sqlite3_aggregate_count - <a href="c3ref/aggregate_count.html">c3ref/aggregate_count.html</a></li><li>sqlite3_analyzer - <a href="sqlanalyze.html">sqlanalyze.html</a></li><li>sqlite3_analyzer.exe - <a href="sqlanalyze.html">sqlanalyze.html</a></li><li>sqlite3_api_routines - <a href="c3ref/api_routines.html">c3ref/api_routines.html</a></li><li>sqlite3_auto_extension - <a href="c3ref/auto_extension.html">c3ref/auto_extension.html</a></li><li>sqlite3_autovacuum_pages - <a href="c3ref/autovacuum_pages.html">c3ref/autovacuum_pages.html</a></li><li>sqlite3_backup - <a href="c3ref/backup.html">c3ref/backup.html</a></li><li>sqlite3_backup_finish - <a href="c3ref/backup_finish.html#sqlite3backupfinish">c3ref/backup_finish.html#sqlite3backupfinish</a></li><li>sqlite3_backup_init - <a href="c3ref/backup_finish.html#sqlite3backupinit">c3ref/backup_finish.html#sqlite3backupinit</a></li><li>sqlite3_backup_pagecount - <a href="c3ref/backup_finish.html#sqlite3backuppagecount">c3ref/backup_finish.html#sqlite3backuppagecount</a></li><li>sqlite3_backup_remaining - <a href="c3ref/backup_finish.html#sqlite3backupremaining">c3ref/backup_finish.html#sqlite3backupremaining</a></li><li>sqlite3_backup_step - <a href="c3ref/backup_finish.html#sqlite3backupstep">c3ref/backup_finish.html#sqlite3backupstep</a></li><li>sqlite3_bind_blob - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_blob64 - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_double - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_int - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_int64 - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_null - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_parameter_count - <a href="c3ref/bind_parameter_count.html">c3ref/bind_parameter_count.html</a></li><li>sqlite3_bind_parameter_index - <a href="c3ref/bind_parameter_index.html">c3ref/bind_parameter_index.html</a></li><li>sqlite3_bind_parameter_name - <a href="c3ref/bind_parameter_name.html">c3ref/bind_parameter_name.html</a></li><li>sqlite3_bind_pointer - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_text - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_text16 - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_text64 - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_value - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_zeroblob - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_zeroblob64 - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_blob - <a href="c3ref/blob.html">c3ref/blob.html</a></li><li>sqlite3_blob_bytes - <a href="c3ref/blob_bytes.html">c3ref/blob_bytes.html</a></li><li>sqlite3_blob_close - <a href="c3ref/blob_close.html">c3ref/blob_close.html</a></li><li>sqlite3_blob_open - <a href="c3ref/blob_open.html">c3ref/blob_open.html</a></li><li>sqlite3_blob_read - <a href="c3ref/blob_read.html">c3ref/blob_read.html</a></li><li>sqlite3_blob_reopen - <a href="c3ref/blob_reopen.html">c3ref/blob_reopen.html</a></li><li>sqlite3_blob_write - <a href="c3ref/blob_write.html">c3ref/blob_write.html</a></li><li>sqlite3_busy_handler - <a href="c3ref/busy_handler.html">c3ref/busy_handler.html</a></li><li>sqlite3_busy_timeout - <a href="c3ref/busy_timeout.html">c3ref/busy_timeout.html</a></li><li>sqlite3_cancel_auto_extension - <a href="c3ref/cancel_auto_extension.html">c3ref/cancel_auto_extension.html</a></li><li>sqlite3_carray_bind - <a href="carray.html#onearg">carray.html#onearg</a></li><li>sqlite3_changegroup - <a href="session/changegroup.html">session/changegroup.html</a></li><li>sqlite3_changes - <a href="c3ref/changes.html">c3ref/changes.html</a></li><li>sqlite3_changes64 - <a href="c3ref/changes.html">c3ref/changes.html</a></li><li>sqlite3_changeset_iter - <a href="session/changeset_iter.html">session/changeset_iter.html</a></li><li>sqlite3_clear_bindings - <a href="c3ref/clear_bindings.html">c3ref/clear_bindings.html</a></li><li>sqlite3_close - <a href="c3ref/close.html">c3ref/close.html</a></li><li>sqlite3_close_v2 - <a href="c3ref/close.html">c3ref/close.html</a></li><li>sqlite3_collation_needed - <a href="c3ref/collation_needed.html">c3ref/collation_needed.html</a></li><li>sqlite3_collation_needed16 - <a href="c3ref/collation_needed.html">c3ref/collation_needed.html</a></li><li>sqlite3_column_blob - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_bytes - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_bytes16 - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_count - <a href="c3ref/column_count.html">c3ref/column_count.html</a></li><li>sqlite3_column_database_name - <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a></li><li>sqlite3_column_database_name16 - <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a></li><li>sqlite3_column_decltype - <a href="c3ref/column_decltype.html">c3ref/column_decltype.html</a></li><li>sqlite3_column_decltype16 - <a href="c3ref/column_decltype.html">c3ref/column_decltype.html</a></li><li>sqlite3_column_double - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_int - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_int64 - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_name - <a href="c3ref/column_name.html">c3ref/column_name.html</a></li><li>sqlite3_column_name16 - <a href="c3ref/column_name.html">c3ref/column_name.html</a></li><li>sqlite3_column_origin_name - <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a></li><li>sqlite3_column_origin_name16 - <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a></li><li>sqlite3_column_table_name - <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a></li><li>sqlite3_column_table_name16 - <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a></li><li>sqlite3_column_text - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_text16 - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_type - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_value - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_commit_hook - <a href="c3ref/commit_hook.html">c3ref/commit_hook.html</a></li><li>sqlite3_compileoption_get - <a href="c3ref/compileoption_get.html">c3ref/compileoption_get.html</a></li><li>sqlite3_compileoption_used - <a href="c3ref/compileoption_get.html">c3ref/compileoption_get.html</a></li><li>sqlite3_complete - <a href="c3ref/complete.html">c3ref/complete.html</a></li><li>sqlite3_complete16 - <a href="c3ref/complete.html">c3ref/complete.html</a></li><li>sqlite3_config - <a href="c3ref/config.html">c3ref/config.html</a></li><li>sqlite3_context - <a href="c3ref/context.html">c3ref/context.html</a></li><li>sqlite3_context_db_handle - <a href="c3ref/context_db_handle.html">c3ref/context_db_handle.html</a></li><li>sqlite3_create_collation - <a href="c3ref/create_collation.html">c3ref/create_collation.html</a></li><li>sqlite3_create_collation16 - <a href="c3ref/create_collation.html">c3ref/create_collation.html</a></li><li>sqlite3_create_collation_v2 - <a href="c3ref/create_collation.html">c3ref/create_collation.html</a></li><li>sqlite3_create_filename - <a href="c3ref/create_filename.html">c3ref/create_filename.html</a></li><li>sqlite3_create_function - <a href="c3ref/create_function.html">c3ref/create_function.html</a></li><li>sqlite3_create_function16 - <a href="c3ref/create_function.html">c3ref/create_function.html</a></li><li>sqlite3_create_function_v2 - <a href="c3ref/create_function.html">c3ref/create_function.html</a></li><li>sqlite3_create_module - <a href="c3ref/create_module.html">c3ref/create_module.html</a></li><li>sqlite3_create_module_v2 - <a href="c3ref/create_module.html">c3ref/create_module.html</a></li><li>sqlite3_create_window_function - <a href="c3ref/create_function.html">c3ref/create_function.html</a></li><li>sqlite3_data_count - <a href="c3ref/data_count.html">c3ref/data_count.html</a></li><li>sqlite3_data_directory - <a href="c3ref/data_directory.html">c3ref/data_directory.html</a></li><li>sqlite3_database_file_object - <a href="c3ref/database_file_object.html">c3ref/database_file_object.html</a></li><li>sqlite3_db_cacheflush - <a href="c3ref/db_cacheflush.html">c3ref/db_cacheflush.html</a></li><li>sqlite3_db_config - <a href="c3ref/db_config.html">c3ref/db_config.html</a></li><li>sqlite3_db_filename - <a href="c3ref/db_filename.html">c3ref/db_filename.html</a></li><li>sqlite3_db_handle - <a href="c3ref/db_handle.html">c3ref/db_handle.html</a></li><li>sqlite3_db_mutex - <a href="c3ref/db_mutex.html">c3ref/db_mutex.html</a></li><li>sqlite3_db_name - <a href="c3ref/db_name.html">c3ref/db_name.html</a></li><li>sqlite3_db_readonly - <a href="c3ref/db_readonly.html">c3ref/db_readonly.html</a></li><li>sqlite3_db_release_memory - <a href="c3ref/db_release_memory.html">c3ref/db_release_memory.html</a></li><li>sqlite3_db_status - <a href="c3ref/db_status.html">c3ref/db_status.html</a></li><li>sqlite3_declare_vtab - <a href="c3ref/declare_vtab.html">c3ref/declare_vtab.html</a></li><li>sqlite3_deserialize - <a href="c3ref/deserialize.html">c3ref/deserialize.html</a></li><li>sqlite3_drop_modules - <a href="c3ref/drop_modules.html">c3ref/drop_modules.html</a></li><li>sqlite3_enable_load_extension - <a href="c3ref/enable_load_extension.html">c3ref/enable_load_extension.html</a></li><li>sqlite3_enable_shared_cache - <a href="c3ref/enable_shared_cache.html">c3ref/enable_shared_cache.html</a></li><li>sqlite3_errcode - <a href="c3ref/errcode.html">c3ref/errcode.html</a></li><li>sqlite3_errmsg - <a href="c3ref/errcode.html">c3ref/errcode.html</a></li><li>sqlite3_errmsg16 - <a href="c3ref/errcode.html">c3ref/errcode.html</a></li><li>sqlite3_error_offset - <a href="c3ref/errcode.html">c3ref/errcode.html</a></li><li>sqlite3_errstr - <a href="c3ref/errcode.html">c3ref/errcode.html</a></li><li>sqlite3_exec - <a href="c3ref/exec.html">c3ref/exec.html</a></li><li>sqlite3_expanded_sql - <a href="c3ref/expanded_sql.html">c3ref/expanded_sql.html</a></li><li>sqlite3_expired - <a href="c3ref/aggregate_count.html">c3ref/aggregate_count.html</a></li><li>sqlite3_extended_errcode - <a href="c3ref/errcode.html">c3ref/errcode.html</a></li><li>sqlite3_extended_result_codes - <a href="c3ref/extended_result_codes.html">c3ref/extended_result_codes.html</a></li><li>sqlite3_file - <a href="c3ref/file.html">c3ref/file.html</a></li><li>sqlite3_file_control - <a href="c3ref/file_control.html">c3ref/file_control.html</a></li><li>sqlite3_filename - <a href="c3ref/filename.html">c3ref/filename.html</a></li><li>sqlite3_filename_database - <a href="c3ref/filename_database.html">c3ref/filename_database.html</a></li><li>sqlite3_filename_journal - <a href="c3ref/filename_database.html">c3ref/filename_database.html</a></li><li>sqlite3_filename_wal - <a href="c3ref/filename_database.html">c3ref/filename_database.html</a></li><li>sqlite3_finalize - <a href="c3ref/finalize.html">c3ref/finalize.html</a></li><li>sqlite3_free - <a href="c3ref/free.html">c3ref/free.html</a></li><li>sqlite3_free_filename - <a href="c3ref/create_filename.html">c3ref/create_filename.html</a></li><li>sqlite3_free_table - <a href="c3ref/free_table.html">c3ref/free_table.html</a></li><li>sqlite3_get_autocommit - <a href="c3ref/get_autocommit.html">c3ref/get_autocommit.html</a></li><li>sqlite3_get_auxdata - <a href="c3ref/get_auxdata.html">c3ref/get_auxdata.html</a></li><li>sqlite3_get_clientdata - <a href="c3ref/get_clientdata.html">c3ref/get_clientdata.html</a></li><li>sqlite3_get_table - <a href="c3ref/free_table.html">c3ref/free_table.html</a></li><li>sqlite3_global_recover - <a href="c3ref/aggregate_count.html">c3ref/aggregate_count.html</a></li><li>sqlite3_hard_heap_limit64 - <a href="c3ref/hard_heap_limit64.html">c3ref/hard_heap_limit64.html</a></li><li>sqlite3_index_info - <a href="c3ref/index_info.html">c3ref/index_info.html</a></li><li>sqlite3_initialize - <a href="c3ref/initialize.html">c3ref/initialize.html</a></li><li>sqlite3_int64 - <a href="c3ref/int64.html">c3ref/int64.html</a></li><li>sqlite3_interrupt - <a href="c3ref/interrupt.html">c3ref/interrupt.html</a></li><li>sqlite3_io_methods - <a href="c3ref/io_methods.html">c3ref/io_methods.html</a></li><li>sqlite3_is_interrupted - <a href="c3ref/interrupt.html">c3ref/interrupt.html</a></li><li>sqlite3_keyword_check - <a href="c3ref/keyword_check.html">c3ref/keyword_check.html</a></li><li>sqlite3_keyword_count - <a href="c3ref/keyword_check.html">c3ref/keyword_check.html</a></li><li>sqlite3_keyword_name - <a href="c3ref/keyword_check.html">c3ref/keyword_check.html</a></li><li>sqlite3_last_insert_rowid - <a href="c3ref/last_insert_rowid.html">c3ref/last_insert_rowid.html</a></li><li>sqlite3_libversion - <a href="c3ref/libversion.html">c3ref/libversion.html</a></li><li>sqlite3_libversion_number - <a href="c3ref/libversion.html">c3ref/libversion.html</a></li><li>sqlite3_limit - <a href="c3ref/limit.html">c3ref/limit.html</a></li><li>sqlite3_load_extension - <a href="c3ref/load_extension.html">c3ref/load_extension.html</a></li><li>sqlite3_log - <a href="c3ref/log.html">c3ref/log.html</a></li><li>sqlite3_malloc - <a href="c3ref/free.html">c3ref/free.html</a></li><li>sqlite3_malloc64 - <a href="c3ref/free.html">c3ref/free.html</a></li><li>sqlite3_mem_methods - <a href="c3ref/mem_methods.html">c3ref/mem_methods.html</a></li><li>sqlite3_memory_alarm - <a href="c3ref/aggregate_count.html">c3ref/aggregate_count.html</a></li><li>sqlite3_memory_highwater - <a href="c3ref/memory_highwater.html">c3ref/memory_highwater.html</a></li><li>sqlite3_memory_used - <a href="c3ref/memory_highwater.html">c3ref/memory_highwater.html</a></li><li>sqlite3_module - <a href="c3ref/module.html">c3ref/module.html</a></li><li>sqlite3_module.xBegin - <a href="vtab.html#xBegin">vtab.html#xBegin</a></li><li>sqlite3_module.xBestIndex - <a href="vtab.html#xbestindex">vtab.html#xbestindex</a></li><li>sqlite3_module.xClose - <a href="vtab.html#xclose">vtab.html#xclose</a></li><li>sqlite3_module.xColumn - <a href="vtab.html#xcolumn">vtab.html#xcolumn</a></li><li>sqlite3_module.xCommit - <a href="vtab.html#xcommit">vtab.html#xcommit</a></li><li>sqlite3_module.xConnect - <a href="vtab.html#xconnect">vtab.html#xconnect</a></li><li>sqlite3_module.xCreate - <a href="vtab.html#xcreate">vtab.html#xcreate</a></li><li>sqlite3_module.xDisconnect - <a href="vtab.html#xdisconnect">vtab.html#xdisconnect</a></li><li>sqlite3_module.xEof - <a href="vtab.html#xeof">vtab.html#xeof</a></li><li>sqlite3_module.xFilter - <a href="vtab.html#xfilter">vtab.html#xfilter</a></li><li>sqlite3_module.xFindFunction - <a href="vtab.html#xfindfunction">vtab.html#xfindfunction</a></li><li>sqlite3_module.xIntegrity - <a href="vtab.html#xintegrity">vtab.html#xintegrity</a></li><li>sqlite3_module.xNext - <a href="vtab.html#xnext">vtab.html#xnext</a></li><li>sqlite3_module.xOpen - <a href="vtab.html#xopen">vtab.html#xopen</a></li><li>sqlite3_module.xRename - <a href="vtab.html#xrename">vtab.html#xrename</a></li><li>sqlite3_module.xRollback - <a href="vtab.html#xrollback">vtab.html#xrollback</a></li><li>sqlite3_module.xRowid - <a href="vtab.html#xrowid">vtab.html#xrowid</a></li><li>sqlite3_module.xSavepoint - <a href="vtab.html#xsavepoint">vtab.html#xsavepoint</a></li><li>sqlite3_module.xShadowName - <a href="vtab.html#xshadowname">vtab.html#xshadowname</a></li><li>sqlite3_module.xSync - <a href="vtab.html#xsync">vtab.html#xsync</a></li><li>sqlite3_module.xUpdate - <a href="vtab.html#xupdate">vtab.html#xupdate</a></li><li>sqlite3_mprintf - <a href="c3ref/mprintf.html">c3ref/mprintf.html</a></li><li>sqlite3_msize - <a href="c3ref/free.html">c3ref/free.html</a></li><li>sqlite3_mutex - <a href="c3ref/mutex.html">c3ref/mutex.html</a></li><li>sqlite3_mutex_alloc - <a href="c3ref/mutex_alloc.html">c3ref/mutex_alloc.html</a></li><li>sqlite3_mutex_enter - <a href="c3ref/mutex_alloc.html">c3ref/mutex_alloc.html</a></li><li>sqlite3_mutex_free - <a href="c3ref/mutex_alloc.html">c3ref/mutex_alloc.html</a></li><li>sqlite3_mutex_held - <a href="c3ref/mutex_held.html">c3ref/mutex_held.html</a></li><li>sqlite3_mutex_leave - <a href="c3ref/mutex_alloc.html">c3ref/mutex_alloc.html</a></li><li>sqlite3_mutex_methods - <a href="c3ref/mutex_methods.html">c3ref/mutex_methods.html</a></li><li>sqlite3_mutex_notheld - <a href="c3ref/mutex_held.html">c3ref/mutex_held.html</a></li><li>sqlite3_mutex_try - <a href="c3ref/mutex_alloc.html">c3ref/mutex_alloc.html</a></li><li>sqlite3_next_stmt - <a href="c3ref/next_stmt.html">c3ref/next_stmt.html</a></li><li>sqlite3_normalized_sql - <a href="c3ref/expanded_sql.html">c3ref/expanded_sql.html</a></li><li>sqlite3_open - <a href="c3ref/open.html">c3ref/open.html</a></li><li>sqlite3_open16 - <a href="c3ref/open.html">c3ref/open.html</a></li><li>sqlite3_open_v2 - <a href="c3ref/open.html">c3ref/open.html</a></li><li>sqlite3_os_end - <a href="c3ref/initialize.html">c3ref/initialize.html</a></li><li>sqlite3_os_init - <a href="c3ref/initialize.html">c3ref/initialize.html</a></li><li>sqlite3_overload_function - <a href="c3ref/overload_function.html">c3ref/overload_function.html</a></li><li>sqlite3_pcache - <a href="c3ref/pcache.html">c3ref/pcache.html</a></li><li>sqlite3_pcache_methods2 - <a href="c3ref/pcache_methods2.html">c3ref/pcache_methods2.html</a></li><li>sqlite3_pcache_page - <a href="c3ref/pcache_page.html">c3ref/pcache_page.html</a></li><li>sqlite3_prepare - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sqlite3_prepare16 - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sqlite3_prepare16_v2 - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sqlite3_prepare16_v3 - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sqlite3_prepare_v2 - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sqlite3_prepare_v3 - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sqlite3_preupdate_blobwrite - <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a></li><li>sqlite3_preupdate_count - <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a></li><li>sqlite3_preupdate_depth - <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a></li><li>sqlite3_preupdate_hook - <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a></li><li>sqlite3_preupdate_new - <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a></li><li>sqlite3_preupdate_old - <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a></li><li>sqlite3_profile - <a href="c3ref/profile.html">c3ref/profile.html</a></li><li>sqlite3_progress_handler - <a href="c3ref/progress_handler.html">c3ref/progress_handler.html</a></li><li>sqlite3_randomness - <a href="c3ref/randomness.html">c3ref/randomness.html</a></li><li>sqlite3_realloc - <a href="c3ref/free.html">c3ref/free.html</a></li><li>sqlite3_realloc64 - <a href="c3ref/free.html">c3ref/free.html</a></li><li>sqlite3_rebaser - <a href="session/rebaser.html">session/rebaser.html</a></li><li>sqlite3_release_memory - <a href="c3ref/release_memory.html">c3ref/release_memory.html</a></li><li>sqlite3_reset - <a href="c3ref/reset.html">c3ref/reset.html</a></li><li>sqlite3_reset_auto_extension - <a href="c3ref/reset_auto_extension.html">c3ref/reset_auto_extension.html</a></li><li>sqlite3_result_blob - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_blob64 - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_double - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_error - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_error16 - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_error_code - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_error_nomem - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_error_toobig - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_int - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_int64 - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_null - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_pointer - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_subtype - <a href="c3ref/result_subtype.html">c3ref/result_subtype.html</a></li><li>sqlite3_result_text - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_text16 - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_text16be - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_text16le - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_text64 - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_value - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_zeroblob - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_zeroblob64 - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_rollback_hook - <a href="c3ref/commit_hook.html">c3ref/commit_hook.html</a></li><li>sqlite3_rtree_query_callback - <a href="rtree.html#xquery">rtree.html#xquery</a></li><li>sqlite3_serialize - <a href="c3ref/serialize.html">c3ref/serialize.html</a></li><li>sqlite3_session - <a href="session/session.html">session/session.html</a></li><li>sqlite3_set_authorizer - <a href="c3ref/set_authorizer.html">c3ref/set_authorizer.html</a></li><li>sqlite3_set_auxdata - <a href="c3ref/get_auxdata.html">c3ref/get_auxdata.html</a></li><li>sqlite3_set_clientdata - <a href="c3ref/get_clientdata.html">c3ref/get_clientdata.html</a></li><li>sqlite3_set_last_insert_rowid - <a href="c3ref/set_last_insert_rowid.html">c3ref/set_last_insert_rowid.html</a></li><li>sqlite3_shutdown - <a href="c3ref/initialize.html">c3ref/initialize.html</a></li><li>sqlite3_sleep - <a href="c3ref/sleep.html">c3ref/sleep.html</a></li><li>sqlite3_snapshot - <a href="c3ref/snapshot.html">c3ref/snapshot.html</a></li><li>sqlite3_snapshot_cmp - <a href="c3ref/snapshot_cmp.html">c3ref/snapshot_cmp.html</a></li><li>sqlite3_snapshot_free - <a href="c3ref/snapshot_free.html">c3ref/snapshot_free.html</a></li><li>sqlite3_snapshot_get - <a href="c3ref/snapshot_get.html">c3ref/snapshot_get.html</a></li><li>sqlite3_snapshot_open - <a href="c3ref/snapshot_open.html">c3ref/snapshot_open.html</a></li><li>sqlite3_snapshot_recover - <a href="c3ref/snapshot_recover.html">c3ref/snapshot_recover.html</a></li><li>sqlite3_snprintf - <a href="c3ref/mprintf.html">c3ref/mprintf.html</a></li><li>sqlite3_soft_heap_limit - <a href="c3ref/soft_heap_limit.html">c3ref/soft_heap_limit.html</a></li><li>sqlite3_soft_heap_limit64 - <a href="c3ref/hard_heap_limit64.html">c3ref/hard_heap_limit64.html</a></li><li>sqlite3_sourceid - <a href="c3ref/libversion.html">c3ref/libversion.html</a></li><li>sqlite3_sql - <a href="c3ref/expanded_sql.html">c3ref/expanded_sql.html</a></li><li>sqlite3_status - <a href="c3ref/status.html">c3ref/status.html</a></li><li>sqlite3_status64 - <a href="c3ref/status.html">c3ref/status.html</a></li><li>sqlite3_step - <a href="c3ref/step.html">c3ref/step.html</a></li><li>sqlite3_stmt - <a href="c3ref/stmt.html">c3ref/stmt.html</a></li><li>sqlite3_stmt_busy - <a href="c3ref/stmt_busy.html">c3ref/stmt_busy.html</a></li><li>sqlite3_stmt_explain - <a href="c3ref/stmt_explain.html">c3ref/stmt_explain.html</a></li><li>sqlite3_stmt_isexplain - <a href="c3ref/stmt_isexplain.html">c3ref/stmt_isexplain.html</a></li><li>sqlite3_stmt_readonly - <a href="c3ref/stmt_readonly.html">c3ref/stmt_readonly.html</a></li><li>sqlite3_stmt_scanstatus - <a href="c3ref/stmt_scanstatus.html">c3ref/stmt_scanstatus.html</a></li><li>sqlite3_stmt_scanstatus_reset - <a href="c3ref/stmt_scanstatus_reset.html">c3ref/stmt_scanstatus_reset.html</a></li><li>sqlite3_stmt_scanstatus_v2 - <a href="c3ref/stmt_scanstatus.html">c3ref/stmt_scanstatus.html</a></li><li>sqlite3_stmt_status - <a href="c3ref/stmt_status.html">c3ref/stmt_status.html</a></li><li>sqlite3_str - <a href="c3ref/str.html">c3ref/str.html</a></li><li>sqlite3_str_append - <a href="c3ref/str_append.html">c3ref/str_append.html</a></li><li>sqlite3_str_appendall - <a href="c3ref/str_append.html">c3ref/str_append.html</a></li><li>sqlite3_str_appendchar - <a href="c3ref/str_append.html">c3ref/str_append.html</a></li><li>sqlite3_str_appendf - <a href="c3ref/str_append.html">c3ref/str_append.html</a></li><li>sqlite3_str_errcode - <a href="c3ref/str_errcode.html">c3ref/str_errcode.html</a></li><li>sqlite3_str_finish - <a href="c3ref/str_finish.html">c3ref/str_finish.html</a></li><li>sqlite3_str_length - <a href="c3ref/str_errcode.html">c3ref/str_errcode.html</a></li><li>sqlite3_str_new - <a href="c3ref/str_new.html">c3ref/str_new.html</a></li><li>sqlite3_str_reset - <a href="c3ref/str_append.html">c3ref/str_append.html</a></li><li>sqlite3_str_value - <a href="c3ref/str_errcode.html">c3ref/str_errcode.html</a></li><li>sqlite3_str_vappendf - <a href="c3ref/str_append.html">c3ref/str_append.html</a></li><li>sqlite3_strglob - <a href="c3ref/strglob.html">c3ref/strglob.html</a></li><li>sqlite3_stricmp - <a href="c3ref/stricmp.html">c3ref/stricmp.html</a></li><li>sqlite3_strlike - <a href="c3ref/strlike.html">c3ref/strlike.html</a></li><li>sqlite3_strnicmp - <a href="c3ref/stricmp.html">c3ref/stricmp.html</a></li><li>sqlite3_system_errno - <a href="c3ref/system_errno.html">c3ref/system_errno.html</a></li><li>sqlite3_table_column_metadata - <a href="c3ref/table_column_metadata.html">c3ref/table_column_metadata.html</a></li><li>sqlite3_temp_directory - <a href="c3ref/temp_directory.html">c3ref/temp_directory.html</a></li><li>sqlite3_test_control - <a href="c3ref/test_control.html">c3ref/test_control.html</a></li><li>sqlite3_thread_cleanup - <a href="c3ref/aggregate_count.html">c3ref/aggregate_count.html</a></li><li>sqlite3_threadsafe - <a href="c3ref/threadsafe.html">c3ref/threadsafe.html</a></li><li>sqlite3_total_changes - <a href="c3ref/total_changes.html">c3ref/total_changes.html</a></li><li>sqlite3_total_changes64 - <a href="c3ref/total_changes.html">c3ref/total_changes.html</a></li><li>sqlite3_trace - <a href="c3ref/profile.html">c3ref/profile.html</a></li><li>sqlite3_trace_v2 - <a href="c3ref/trace_v2.html">c3ref/trace_v2.html</a></li><li>sqlite3_transfer_bindings - <a href="c3ref/aggregate_count.html">c3ref/aggregate_count.html</a></li><li>sqlite3_txn_state - <a href="c3ref/txn_state.html">c3ref/txn_state.html</a></li><li>sqlite3_uint64 - <a href="c3ref/int64.html">c3ref/int64.html</a></li><li>sqlite3_unlock_notify - <a href="c3ref/unlock_notify.html">c3ref/unlock_notify.html</a></li><li>sqlite3_update_hook - <a href="c3ref/update_hook.html">c3ref/update_hook.html</a></li><li>sqlite3_uri_boolean - <a href="c3ref/uri_boolean.html">c3ref/uri_boolean.html</a></li><li>sqlite3_uri_int64 - <a href="c3ref/uri_boolean.html">c3ref/uri_boolean.html</a></li><li>sqlite3_uri_key - <a href="c3ref/uri_boolean.html">c3ref/uri_boolean.html</a></li><li>sqlite3_uri_parameter - <a href="c3ref/uri_boolean.html">c3ref/uri_boolean.html</a></li><li>sqlite3_user_data - <a href="c3ref/user_data.html">c3ref/user_data.html</a></li><li>sqlite3_value - <a href="c3ref/value.html">c3ref/value.html</a></li><li>sqlite3_value_blob - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_bytes - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_bytes16 - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_double - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_dup - <a href="c3ref/value_dup.html">c3ref/value_dup.html</a></li><li>sqlite3_value_encoding - <a href="c3ref/value_encoding.html">c3ref/value_encoding.html</a></li><li>sqlite3_value_free - <a href="c3ref/value_dup.html">c3ref/value_dup.html</a></li><li>sqlite3_value_frombind - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_int - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_int64 - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_nochange - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_numeric_type - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_pointer - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_subtype - <a href="c3ref/value_subtype.html">c3ref/value_subtype.html</a></li><li>sqlite3_value_text - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_text16 - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_text16be - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_text16le - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_type - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_version - <a href="c3ref/libversion.html">c3ref/libversion.html</a></li><li>sqlite3_vfs - <a href="c3ref/vfs.html">c3ref/vfs.html</a></li><li>sqlite3_vfs.xAccess - <a href="c3ref/vfs.html#sqlite3vfsxaccess">c3ref/vfs.html#sqlite3vfsxaccess</a></li><li>sqlite3_vfs.xOpen - <a href="c3ref/vfs.html#sqlite3vfsxopen">c3ref/vfs.html#sqlite3vfsxopen</a></li><li>sqlite3_vfs_find - <a href="c3ref/vfs_find.html">c3ref/vfs_find.html</a></li><li>sqlite3_vfs_register - <a href="c3ref/vfs_find.html">c3ref/vfs_find.html</a></li><li>sqlite3_vfs_unregister - <a href="c3ref/vfs_find.html">c3ref/vfs_find.html</a></li><li>sqlite3_vmprintf - <a href="c3ref/mprintf.html">c3ref/mprintf.html</a></li><li>sqlite3_vsnprintf - <a href="c3ref/mprintf.html">c3ref/mprintf.html</a></li><li>sqlite3_vtab - <a href="c3ref/vtab.html">c3ref/vtab.html</a></li><li>sqlite3_vtab_collation - <a href="c3ref/vtab_collation.html">c3ref/vtab_collation.html</a></li><li>sqlite3_vtab_config - <a href="c3ref/vtab_config.html">c3ref/vtab_config.html</a></li><li>sqlite3_vtab_cursor - <a href="c3ref/vtab_cursor.html">c3ref/vtab_cursor.html</a></li><li>sqlite3_vtab_distinct - <a href="c3ref/vtab_distinct.html">c3ref/vtab_distinct.html</a></li><li>sqlite3_vtab_in - <a href="c3ref/vtab_in.html">c3ref/vtab_in.html</a></li><li>sqlite3_vtab_in_first - <a href="c3ref/vtab_in_first.html">c3ref/vtab_in_first.html</a></li><li>sqlite3_vtab_in_next - <a href="c3ref/vtab_in_first.html">c3ref/vtab_in_first.html</a></li><li>sqlite3_vtab_nochange - <a href="c3ref/vtab_nochange.html">c3ref/vtab_nochange.html</a></li><li>sqlite3_vtab_on_conflict - <a href="c3ref/vtab_on_conflict.html">c3ref/vtab_on_conflict.html</a></li><li>sqlite3_vtab_rhs_value - <a href="c3ref/vtab_rhs_value.html">c3ref/vtab_rhs_value.html</a></li><li>sqlite3_wal_autocheckpoint - <a href="c3ref/wal_autocheckpoint.html">c3ref/wal_autocheckpoint.html</a></li><li>sqlite3_wal_checkpoint - <a href="c3ref/wal_checkpoint.html">c3ref/wal_checkpoint.html</a></li><li>sqlite3_wal_checkpoint_v2 - <a href="c3ref/wal_checkpoint_v2.html">c3ref/wal_checkpoint_v2.html</a></li><li>sqlite3_wal_hook - <a href="c3ref/wal_hook.html">c3ref/wal_hook.html</a></li><li>sqlite3_win32_set_directory - <a href="c3ref/win32_set_directory.html">c3ref/win32_set_directory.html</a></li><li>sqlite3_win32_set_directory8 - <a href="c3ref/win32_set_directory.html">c3ref/win32_set_directory.html</a></li><li>sqlite3_win32_set_directory16 - <a href="c3ref/win32_set_directory.html">c3ref/win32_set_directory.html</a></li><li>sqlite3changegroup_add - <a href="session/sqlite3changegroup_add.html">session/sqlite3changegroup_add.html</a></li><li>sqlite3changegroup_add_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changegroup_delete - <a href="session/sqlite3changegroup_delete.html">session/sqlite3changegroup_delete.html</a></li><li>sqlite3changegroup_new - <a href="session/sqlite3changegroup_new.html">session/sqlite3changegroup_new.html</a></li><li>sqlite3changegroup_output - <a href="session/sqlite3changegroup_output.html">session/sqlite3changegroup_output.html</a></li><li>sqlite3changegroup_output_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changegroup_schema - <a href="session/sqlite3changegroup_schema.html">session/sqlite3changegroup_schema.html</a></li><li>sqlite3changeset_apply - <a href="session/sqlite3changeset_apply.html">session/sqlite3changeset_apply.html</a></li><li>sqlite3changeset_apply_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changeset_apply_v2 - <a href="session/sqlite3changeset_apply.html">session/sqlite3changeset_apply.html</a></li><li>sqlite3changeset_apply_v2_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changeset_concat - <a href="session/sqlite3changeset_concat.html">session/sqlite3changeset_concat.html</a></li><li>sqlite3changeset_concat_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changeset_conflict - <a href="session/sqlite3changeset_conflict.html">session/sqlite3changeset_conflict.html</a></li><li>sqlite3changeset_finalize - <a href="session/sqlite3changeset_finalize.html">session/sqlite3changeset_finalize.html</a></li><li>sqlite3changeset_fk_conflicts - <a href="session/sqlite3changeset_fk_conflicts.html">session/sqlite3changeset_fk_conflicts.html</a></li><li>sqlite3changeset_invert - <a href="session/sqlite3changeset_invert.html">session/sqlite3changeset_invert.html</a></li><li>sqlite3changeset_invert_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changeset_new - <a href="session/sqlite3changeset_new.html">session/sqlite3changeset_new.html</a></li><li>sqlite3changeset_next - <a href="session/sqlite3changeset_next.html">session/sqlite3changeset_next.html</a></li><li>sqlite3changeset_old - <a href="session/sqlite3changeset_old.html">session/sqlite3changeset_old.html</a></li><li>sqlite3changeset_op - <a href="session/sqlite3changeset_op.html">session/sqlite3changeset_op.html</a></li><li>sqlite3changeset_pk - <a href="session/sqlite3changeset_pk.html">session/sqlite3changeset_pk.html</a></li><li>sqlite3changeset_start - <a href="session/sqlite3changeset_start.html">session/sqlite3changeset_start.html</a></li><li>sqlite3changeset_start_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changeset_start_v2 - <a href="session/sqlite3changeset_start.html">session/sqlite3changeset_start.html</a></li><li>sqlite3changeset_start_v2_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changeset_upgrade - <a href="session/sqlite3changeset_upgrade.html">session/sqlite3changeset_upgrade.html</a></li><li>sqlite3rebaser_configure - <a href="session/sqlite3rebaser_configure.html">session/sqlite3rebaser_configure.html</a></li><li>sqlite3rebaser_create - <a href="session/sqlite3rebaser_create.html">session/sqlite3rebaser_create.html</a></li><li>sqlite3rebaser_delete - <a href="session/sqlite3rebaser_delete.html">session/sqlite3rebaser_delete.html</a></li><li>sqlite3rebaser_rebase - <a href="session/sqlite3rebaser_rebase.html">session/sqlite3rebaser_rebase.html</a></li><li>sqlite3rebaser_rebase_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3session_attach - <a href="session/sqlite3session_attach.html">session/sqlite3session_attach.html</a></li><li>sqlite3session_changeset - <a href="session/sqlite3session_changeset.html">session/sqlite3session_changeset.html</a></li><li>sqlite3session_changeset_size - <a href="session/sqlite3session_changeset_size.html">session/sqlite3session_changeset_size.html</a></li><li>sqlite3session_changeset_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3session_config - <a href="session/sqlite3session_config.html">session/sqlite3session_config.html</a></li><li>sqlite3session_create - <a href="session/sqlite3session_create.html">session/sqlite3session_create.html</a></li><li>sqlite3session_delete - <a href="session/sqlite3session_delete.html">session/sqlite3session_delete.html</a></li><li>sqlite3session_diff - <a href="session/sqlite3session_diff.html">session/sqlite3session_diff.html</a></li><li>sqlite3session_enable - <a href="session/sqlite3session_enable.html">session/sqlite3session_enable.html</a></li><li>sqlite3session_indirect - <a href="session/sqlite3session_indirect.html">session/sqlite3session_indirect.html</a></li><li>sqlite3session_isempty - <a href="session/sqlite3session_isempty.html">session/sqlite3session_isempty.html</a></li><li>sqlite3session_memory_used - <a href="session/sqlite3session_memory_used.html">session/sqlite3session_memory_used.html</a></li><li>sqlite3session_object_config - <a href="session/sqlite3session_object_config.html">session/sqlite3session_object_config.html</a></li><li>sqlite3session_patchset - <a href="session/sqlite3session_patchset.html">session/sqlite3session_patchset.html</a></li><li>sqlite3session_patchset_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3session_table_filter - <a href="session/sqlite3session_table_filter.html">session/sqlite3session_table_filter.html</a></li><li>SQLITE_4_BYTE_ALIGNED_MALLOC - <a href="compile.html#4_byte_aligned_malloc">compile.html#4_byte_aligned_malloc</a></li><li>SQLITE_ABORT - <a href="rescode.html#abort">rescode.html#abort</a></li><li>SQLITE_ABORT_ROLLBACK - <a href="rescode.html#abort_rollback">rescode.html#abort_rollback</a></li><li>SQLITE_ACCESS_EXISTS - <a href="c3ref/c_access_exists.html">c3ref/c_access_exists.html</a></li><li>SQLITE_ACCESS_READ - <a href="c3ref/c_access_exists.html">c3ref/c_access_exists.html</a></li><li>SQLITE_ACCESS_READWRITE - <a href="c3ref/c_access_exists.html">c3ref/c_access_exists.html</a></li><li>SQLITE_ALLOW_COVERING_INDEX_SCAN - <a href="compile.html#allow_covering_index_scan">compile.html#allow_covering_index_scan</a></li><li>SQLITE_ALLOW_URI_AUTHORITY - <a href="compile.html#allow_uri_authority">compile.html#allow_uri_authority</a></li><li>SQLITE_ALTER_TABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_ANALYZE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_ANY - <a href="c3ref/c_any.html">c3ref/c_any.html</a></li><li>SQLITE_API - <a href="compile.html#api">compile.html#api</a></li><li>SQLITE_APICALL - <a href="compile.html#apicall">compile.html#apicall</a></li><li>SQLITE_ATTACH - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_AUTH - <a href="rescode.html#auth">rescode.html#auth</a></li><li>SQLITE_AUTH_USER - <a href="rescode.html#auth_user">rescode.html#auth_user</a></li><li>SQLITE_BLOB - <a href="c3ref/c_blob.html">c3ref/c_blob.html</a></li><li>SQLITE_BUSY - <a href="rescode.html#busy">rescode.html#busy</a></li><li>SQLITE_BUSY_RECOVERY - <a href="rescode.html#busy_recovery">rescode.html#busy_recovery</a></li><li>SQLITE_BUSY_SNAPSHOT - <a href="rescode.html#busy_snapshot">rescode.html#busy_snapshot</a></li><li>SQLITE_BUSY_TIMEOUT - <a href="rescode.html#busy_timeout">rescode.html#busy_timeout</a></li><li>SQLITE_BYTEORDER - <a href="compile.html#byteorder">compile.html#byteorder</a></li><li>SQLITE_CALLBACK - <a href="compile.html#callback">compile.html#callback</a></li><li>SQLITE_CANTOPEN - <a href="rescode.html#cantopen">rescode.html#cantopen</a></li><li>SQLITE_CANTOPEN_CONVPATH - <a href="rescode.html#cantopen_convpath">rescode.html#cantopen_convpath</a></li><li>SQLITE_CANTOPEN_DIRTYWAL - <a href="rescode.html#cantopen_dirtywal">rescode.html#cantopen_dirtywal</a></li><li>SQLITE_CANTOPEN_FULLPATH - <a href="rescode.html#cantopen_fullpath">rescode.html#cantopen_fullpath</a></li><li>SQLITE_CANTOPEN_ISDIR - <a href="rescode.html#cantopen_isdir">rescode.html#cantopen_isdir</a></li><li>SQLITE_CANTOPEN_NOTEMPDIR - <a href="rescode.html#cantopen_notempdir">rescode.html#cantopen_notempdir</a></li><li>SQLITE_CANTOPEN_SYMLINK - <a href="rescode.html#cantopen_symlink">rescode.html#cantopen_symlink</a></li><li>SQLITE_CASE_SENSITIVE_LIKE - <a href="compile.html#case_sensitive_like">compile.html#case_sensitive_like</a></li><li>SQLITE_CDECL - <a href="compile.html#cdecl">compile.html#cdecl</a></li><li>SQLITE_CHANGESET_ABORT - <a href="session/c_changeset_abort.html">session/c_changeset_abort.html</a></li><li>SQLITE_CHANGESET_CONFLICT - <a href="session/c_changeset_conflict.html">session/c_changeset_conflict.html</a></li><li>SQLITE_CHANGESET_CONSTRAINT - <a href="session/c_changeset_conflict.html">session/c_changeset_conflict.html</a></li><li>SQLITE_CHANGESET_DATA - <a href="session/c_changeset_conflict.html">session/c_changeset_conflict.html</a></li><li>SQLITE_CHANGESET_FOREIGN_KEY - <a href="session/c_changeset_conflict.html">session/c_changeset_conflict.html</a></li><li>SQLITE_CHANGESET_NOTFOUND - <a href="session/c_changeset_conflict.html">session/c_changeset_conflict.html</a></li><li>SQLITE_CHANGESET_OMIT - <a href="session/c_changeset_abort.html">session/c_changeset_abort.html</a></li><li>SQLITE_CHANGESET_REPLACE - <a href="session/c_changeset_abort.html">session/c_changeset_abort.html</a></li><li>SQLITE_CHANGESETAPPLY_FKNOACTION - <a href="session/c_changesetapply_fknoaction.html">session/c_changesetapply_fknoaction.html</a></li><li>SQLITE_CHANGESETAPPLY_IGNORENOOP - <a href="session/c_changesetapply_fknoaction.html">session/c_changesetapply_fknoaction.html</a></li><li>SQLITE_CHANGESETAPPLY_INVERT - <a href="session/c_changesetapply_fknoaction.html">session/c_changesetapply_fknoaction.html</a></li><li>SQLITE_CHANGESETAPPLY_NOSAVEPOINT - <a href="session/c_changesetapply_fknoaction.html">session/c_changesetapply_fknoaction.html</a></li><li>SQLITE_CHANGESETSTART_INVERT - <a href="session/c_changesetstart_invert.html">session/c_changesetstart_invert.html</a></li><li>SQLITE_CHECKPOINT_FULL - <a href="c3ref/c_checkpoint_full.html">c3ref/c_checkpoint_full.html</a></li><li>SQLITE_CHECKPOINT_PASSIVE - <a href="c3ref/c_checkpoint_full.html">c3ref/c_checkpoint_full.html</a></li><li>SQLITE_CHECKPOINT_RESTART - <a href="c3ref/c_checkpoint_full.html">c3ref/c_checkpoint_full.html</a></li><li>SQLITE_CHECKPOINT_TRUNCATE - <a href="c3ref/c_checkpoint_full.html">c3ref/c_checkpoint_full.html</a></li><li>sqlite_compileoption_get - <a href="lang_corefunc.html#sqlite_compileoption_get">lang_corefunc.html#sqlite_compileoption_get</a></li><li>sqlite_compileoption_get SQL function - <a href="lang_corefunc.html#sqlite_compileoption_get">lang_corefunc.html#sqlite_compileoption_get</a></li><li>sqlite_compileoption_used - <a href="lang_corefunc.html#sqlite_compileoption_used">lang_corefunc.html#sqlite_compileoption_used</a></li><li>sqlite_compileoption_used SQL function - <a href="lang_corefunc.html#sqlite_compileoption_used">lang_corefunc.html#sqlite_compileoption_used</a></li><li>SQLITE_CONFIG_COVERING_INDEX_SCAN - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigcoveringindexscan">c3ref/c_config_covering_index_scan.html#sqliteconfigcoveringindexscan</a></li><li>SQLITE_CONFIG_GETMALLOC - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiggetmalloc">c3ref/c_config_covering_index_scan.html#sqliteconfiggetmalloc</a></li><li>SQLITE_CONFIG_GETMUTEX - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiggetmutex">c3ref/c_config_covering_index_scan.html#sqliteconfiggetmutex</a></li><li>SQLITE_CONFIG_GETPCACHE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiggetpcache">c3ref/c_config_covering_index_scan.html#sqliteconfiggetpcache</a></li><li>SQLITE_CONFIG_GETPCACHE2 - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiggetpcache2">c3ref/c_config_covering_index_scan.html#sqliteconfiggetpcache2</a></li><li>SQLITE_CONFIG_HEAP - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigheap">c3ref/c_config_covering_index_scan.html#sqliteconfigheap</a></li><li>SQLITE_CONFIG_LOG - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiglog">c3ref/c_config_covering_index_scan.html#sqliteconfiglog</a></li><li>SQLITE_CONFIG_LOOKASIDE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiglookaside">c3ref/c_config_covering_index_scan.html#sqliteconfiglookaside</a></li><li>SQLITE_CONFIG_MALLOC - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigmalloc">c3ref/c_config_covering_index_scan.html#sqliteconfigmalloc</a></li><li>SQLITE_CONFIG_MEMDB_MAXSIZE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigmemdbmaxsize">c3ref/c_config_covering_index_scan.html#sqliteconfigmemdbmaxsize</a></li><li>SQLITE_CONFIG_MEMSTATUS - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigmemstatus">c3ref/c_config_covering_index_scan.html#sqliteconfigmemstatus</a></li><li>SQLITE_CONFIG_MMAP_SIZE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigmmapsize">c3ref/c_config_covering_index_scan.html#sqliteconfigmmapsize</a></li><li>SQLITE_CONFIG_MULTITHREAD - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigmultithread">c3ref/c_config_covering_index_scan.html#sqliteconfigmultithread</a></li><li>SQLITE_CONFIG_MUTEX - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigmutex">c3ref/c_config_covering_index_scan.html#sqliteconfigmutex</a></li><li>SQLITE_CONFIG_PAGECACHE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigpagecache">c3ref/c_config_covering_index_scan.html#sqliteconfigpagecache</a></li><li>SQLITE_CONFIG_PCACHE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigpcache">c3ref/c_config_covering_index_scan.html#sqliteconfigpcache</a></li><li>SQLITE_CONFIG_PCACHE2 - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigpcache2">c3ref/c_config_covering_index_scan.html#sqliteconfigpcache2</a></li><li>SQLITE_CONFIG_PCACHE_HDRSZ - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigpcachehdrsz">c3ref/c_config_covering_index_scan.html#sqliteconfigpcachehdrsz</a></li><li>SQLITE_CONFIG_PMASZ - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigpmasz">c3ref/c_config_covering_index_scan.html#sqliteconfigpmasz</a></li><li>SQLITE_CONFIG_ROWID_IN_VIEW - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigrowidinview">c3ref/c_config_covering_index_scan.html#sqliteconfigrowidinview</a></li><li>SQLITE_CONFIG_SCRATCH - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigscratch">c3ref/c_config_covering_index_scan.html#sqliteconfigscratch</a></li><li>SQLITE_CONFIG_SERIALIZED - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigserialized">c3ref/c_config_covering_index_scan.html#sqliteconfigserialized</a></li><li>SQLITE_CONFIG_SINGLETHREAD - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigsinglethread">c3ref/c_config_covering_index_scan.html#sqliteconfigsinglethread</a></li><li>SQLITE_CONFIG_SMALL_MALLOC - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigsmallmalloc">c3ref/c_config_covering_index_scan.html#sqliteconfigsmallmalloc</a></li><li>SQLITE_CONFIG_SORTERREF_SIZE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigsorterrefsize">c3ref/c_config_covering_index_scan.html#sqliteconfigsorterrefsize</a></li><li>SQLITE_CONFIG_SQLLOG - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigsqllog">c3ref/c_config_covering_index_scan.html#sqliteconfigsqllog</a></li><li>SQLITE_CONFIG_STMTJRNL_SPILL - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigstmtjrnlspill">c3ref/c_config_covering_index_scan.html#sqliteconfigstmtjrnlspill</a></li><li>SQLITE_CONFIG_URI - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiguri">c3ref/c_config_covering_index_scan.html#sqliteconfiguri</a></li><li>SQLITE_CONFIG_WIN32_HEAPSIZE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigwin32heapsize">c3ref/c_config_covering_index_scan.html#sqliteconfigwin32heapsize</a></li><li>SQLITE_CONSTRAINT - <a href="rescode.html#constraint">rescode.html#constraint</a></li><li>SQLITE_CONSTRAINT_CHECK - <a href="rescode.html#constraint_check">rescode.html#constraint_check</a></li><li>SQLITE_CONSTRAINT_COMMITHOOK - <a href="rescode.html#constraint_commithook">rescode.html#constraint_commithook</a></li><li>SQLITE_CONSTRAINT_DATATYPE - <a href="rescode.html#constraint_datatype">rescode.html#constraint_datatype</a></li><li>SQLITE_CONSTRAINT_FOREIGNKEY - <a href="rescode.html#constraint_foreignkey">rescode.html#constraint_foreignkey</a></li><li>SQLITE_CONSTRAINT_FUNCTION - <a href="rescode.html#constraint_function">rescode.html#constraint_function</a></li><li>SQLITE_CONSTRAINT_NOTNULL - <a href="rescode.html#constraint_notnull">rescode.html#constraint_notnull</a></li><li>SQLITE_CONSTRAINT_PINNED - <a href="rescode.html#constraint_pinned">rescode.html#constraint_pinned</a></li><li>SQLITE_CONSTRAINT_PRIMARYKEY - <a href="rescode.html#constraint_primarykey">rescode.html#constraint_primarykey</a></li><li>SQLITE_CONSTRAINT_ROWID - <a href="rescode.html#constraint_rowid">rescode.html#constraint_rowid</a></li><li>SQLITE_CONSTRAINT_TRIGGER - <a href="rescode.html#constraint_trigger">rescode.html#constraint_trigger</a></li><li>SQLITE_CONSTRAINT_UNIQUE - <a href="rescode.html#constraint_unique">rescode.html#constraint_unique</a></li><li>SQLITE_CONSTRAINT_VTAB - <a href="rescode.html#constraint_vtab">rescode.html#constraint_vtab</a></li><li>SQLITE_COPY - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CORRUPT - <a href="rescode.html#corrupt">rescode.html#corrupt</a></li><li>SQLITE_CORRUPT_INDEX - <a href="rescode.html#corrupt_index">rescode.html#corrupt_index</a></li><li>SQLITE_CORRUPT_SEQUENCE - <a href="rescode.html#corrupt_sequence">rescode.html#corrupt_sequence</a></li><li>SQLITE_CORRUPT_VTAB - <a href="rescode.html#corrupt_vtab">rescode.html#corrupt_vtab</a></li><li>SQLITE_CREATE_INDEX - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_TABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_TEMP_INDEX - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_TEMP_TABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_TEMP_TRIGGER - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_TEMP_VIEW - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_TRIGGER - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_VIEW - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_VTABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DBCONFIG_DEFENSIVE - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigdefensive">c3ref/c_dbconfig_defensive.html#sqlitedbconfigdefensive</a></li><li>SQLITE_DBCONFIG_DQS_DDL - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigdqsddl">c3ref/c_dbconfig_defensive.html#sqlitedbconfigdqsddl</a></li><li>SQLITE_DBCONFIG_DQS_DML - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigdqsdml">c3ref/c_dbconfig_defensive.html#sqlitedbconfigdqsdml</a></li><li>SQLITE_DBCONFIG_ENABLE_FKEY - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigenablefkey">c3ref/c_dbconfig_defensive.html#sqlitedbconfigenablefkey</a></li><li>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigenablefts3tokenizer">c3ref/c_dbconfig_defensive.html#sqlitedbconfigenablefts3tokenizer</a></li><li>SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigenableloadextension">c3ref/c_dbconfig_defensive.html#sqlitedbconfigenableloadextension</a></li><li>SQLITE_DBCONFIG_ENABLE_QPSG - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigenableqpsg">c3ref/c_dbconfig_defensive.html#sqlitedbconfigenableqpsg</a></li><li>SQLITE_DBCONFIG_ENABLE_TRIGGER - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigenabletrigger">c3ref/c_dbconfig_defensive.html#sqlitedbconfigenabletrigger</a></li><li>SQLITE_DBCONFIG_ENABLE_VIEW - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigenableview">c3ref/c_dbconfig_defensive.html#sqlitedbconfigenableview</a></li><li>SQLITE_DBCONFIG_LEGACY_ALTER_TABLE - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfiglegacyaltertable">c3ref/c_dbconfig_defensive.html#sqlitedbconfiglegacyaltertable</a></li><li>SQLITE_DBCONFIG_LEGACY_FILE_FORMAT - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfiglegacyfileformat">c3ref/c_dbconfig_defensive.html#sqlitedbconfiglegacyfileformat</a></li><li>SQLITE_DBCONFIG_LOOKASIDE - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfiglookaside">c3ref/c_dbconfig_defensive.html#sqlitedbconfiglookaside</a></li><li>SQLITE_DBCONFIG_MAINDBNAME - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigmaindbname">c3ref/c_dbconfig_defensive.html#sqlitedbconfigmaindbname</a></li><li>SQLITE_DBCONFIG_MAX - <a href="c3ref/c_dbconfig_defensive.html">c3ref/c_dbconfig_defensive.html</a></li><li>SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfignockptonclose">c3ref/c_dbconfig_defensive.html#sqlitedbconfignockptonclose</a></li><li>SQLITE_DBCONFIG_RESET_DATABASE - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigresetdatabase">c3ref/c_dbconfig_defensive.html#sqlitedbconfigresetdatabase</a></li><li>SQLITE_DBCONFIG_REVERSE_SCANORDER - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigreversescanorder">c3ref/c_dbconfig_defensive.html#sqlitedbconfigreversescanorder</a></li><li>SQLITE_DBCONFIG_STMT_SCANSTATUS - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigstmtscanstatus">c3ref/c_dbconfig_defensive.html#sqlitedbconfigstmtscanstatus</a></li><li>SQLITE_DBCONFIG_TRIGGER_EQP - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigtriggereqp">c3ref/c_dbconfig_defensive.html#sqlitedbconfigtriggereqp</a></li><li>SQLITE_DBCONFIG_TRUSTED_SCHEMA - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigtrustedschema">c3ref/c_dbconfig_defensive.html#sqlitedbconfigtrustedschema</a></li><li>SQLITE_DBCONFIG_WRITABLE_SCHEMA - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigwritableschema">c3ref/c_dbconfig_defensive.html#sqlitedbconfigwritableschema</a></li><li>sqlite_dbpage - <a href="dbpage.html">dbpage.html</a></li><li>SQLITE_DBPAGE virtual table - <a href="dbpage.html">dbpage.html</a></li><li>SQLITE_DBSTATUS options - <a href="c3ref/c_dbstatus_options.html">c3ref/c_dbstatus_options.html</a></li><li>SQLITE_DBSTATUS_CACHE_HIT - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuscachehit">c3ref/c_dbstatus_options.html#sqlitedbstatuscachehit</a></li><li>SQLITE_DBSTATUS_CACHE_MISS - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuscachemiss">c3ref/c_dbstatus_options.html#sqlitedbstatuscachemiss</a></li><li>SQLITE_DBSTATUS_CACHE_SPILL - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuscachespill">c3ref/c_dbstatus_options.html#sqlitedbstatuscachespill</a></li><li>SQLITE_DBSTATUS_CACHE_USED - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuscacheused">c3ref/c_dbstatus_options.html#sqlitedbstatuscacheused</a></li><li>SQLITE_DBSTATUS_CACHE_USED_SHARED - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuscacheusedshared">c3ref/c_dbstatus_options.html#sqlitedbstatuscacheusedshared</a></li><li>SQLITE_DBSTATUS_CACHE_WRITE - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuscachewrite">c3ref/c_dbstatus_options.html#sqlitedbstatuscachewrite</a></li><li>SQLITE_DBSTATUS_DEFERRED_FKS - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatusdeferredfks">c3ref/c_dbstatus_options.html#sqlitedbstatusdeferredfks</a></li><li>SQLITE_DBSTATUS_LOOKASIDE_HIT - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuslookasidehit">c3ref/c_dbstatus_options.html#sqlitedbstatuslookasidehit</a></li><li>SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuslookasidemissfull">c3ref/c_dbstatus_options.html#sqlitedbstatuslookasidemissfull</a></li><li>SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuslookasidemisssize">c3ref/c_dbstatus_options.html#sqlitedbstatuslookasidemisssize</a></li><li>SQLITE_DBSTATUS_LOOKASIDE_USED - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuslookasideused">c3ref/c_dbstatus_options.html#sqlitedbstatuslookasideused</a></li><li>SQLITE_DBSTATUS_MAX - <a href="c3ref/c_dbstatus_options.html">c3ref/c_dbstatus_options.html</a></li><li>SQLITE_DBSTATUS_SCHEMA_USED - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatusschemaused">c3ref/c_dbstatus_options.html#sqlitedbstatusschemaused</a></li><li>SQLITE_DBSTATUS_STMT_USED - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatusstmtused">c3ref/c_dbstatus_options.html#sqlitedbstatusstmtused</a></li><li>SQLITE_DEBUG - <a href="compile.html#debug">compile.html#debug</a></li><li>SQLITE_DEFAULT_AUTOMATIC_INDEX - <a href="compile.html#default_automatic_index">compile.html#default_automatic_index</a></li><li>SQLITE_DEFAULT_AUTOVACUUM - <a href="compile.html#default_autovacuum">compile.html#default_autovacuum</a></li><li>SQLITE_DEFAULT_CACHE_SIZE - <a href="compile.html#default_cache_size">compile.html#default_cache_size</a></li><li>SQLITE_DEFAULT_FILE_FORMAT - <a href="compile.html#default_file_format">compile.html#default_file_format</a></li><li>SQLITE_DEFAULT_FILE_PERMISSIONS - <a href="compile.html#default_file_permissions">compile.html#default_file_permissions</a></li><li>SQLITE_DEFAULT_FOREIGN_KEYS - <a href="compile.html#default_foreign_keys">compile.html#default_foreign_keys</a></li><li>SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT - <a href="compile.html#default_journal_size_limit">compile.html#default_journal_size_limit</a></li><li>SQLITE_DEFAULT_LOCKING_MODE - <a href="compile.html#default_locking_mode">compile.html#default_locking_mode</a></li><li>SQLITE_DEFAULT_LOOKASIDE - <a href="compile.html#default_lookaside">compile.html#default_lookaside</a></li><li>SQLITE_DEFAULT_MEMSTATUS - <a href="compile.html#default_memstatus">compile.html#default_memstatus</a></li><li>SQLITE_DEFAULT_MMAP_SIZE - <a href="compile.html#default_mmap_size">compile.html#default_mmap_size</a></li><li>SQLITE_DEFAULT_PAGE_SIZE - <a href="compile.html#default_page_size">compile.html#default_page_size</a></li><li>SQLITE_DEFAULT_PCACHE_INITSZ - <a href="compile.html#default_pcache_initsz">compile.html#default_pcache_initsz</a></li><li>SQLITE_DEFAULT_SYNCHRONOUS - <a href="compile.html#default_synchronous">compile.html#default_synchronous</a></li><li>SQLITE_DEFAULT_WAL_AUTOCHECKPOINT - <a href="compile.html#default_wal_autocheckpoint">compile.html#default_wal_autocheckpoint</a></li><li>SQLITE_DEFAULT_WAL_SYNCHRONOUS - <a href="compile.html#default_wal_synchronous">compile.html#default_wal_synchronous</a></li><li>SQLITE_DEFAULT_WORKER_THREADS - <a href="compile.html#default_worker_threads">compile.html#default_worker_threads</a></li><li>SQLITE_DELETE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DENY - <a href="c3ref/c_deny.html">c3ref/c_deny.html</a></li><li>SQLITE_DESERIALIZE_FREEONCLOSE - <a href="c3ref/c_deserialize_freeonclose.html">c3ref/c_deserialize_freeonclose.html</a></li><li>SQLITE_DESERIALIZE_READONLY - <a href="c3ref/c_deserialize_freeonclose.html">c3ref/c_deserialize_freeonclose.html</a></li><li>SQLITE_DESERIALIZE_RESIZEABLE - <a href="c3ref/c_deserialize_freeonclose.html">c3ref/c_deserialize_freeonclose.html</a></li><li>SQLITE_DETACH - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DETERMINISTIC - <a href="c3ref/c_deterministic.html#sqlitedeterministic">c3ref/c_deterministic.html#sqlitedeterministic</a></li><li>SQLITE_DIRECT_OVERFLOW_READ - <a href="compile.html#direct_overflow_read">compile.html#direct_overflow_read</a></li><li>SQLITE_DIRECTONLY - <a href="c3ref/c_deterministic.html#sqlitedirectonly">c3ref/c_deterministic.html#sqlitedirectonly</a></li><li>SQLITE_DISABLE_DIRSYNC - <a href="compile.html#disable_dirsync">compile.html#disable_dirsync</a></li><li>SQLITE_DISABLE_FTS3_UNICODE - <a href="compile.html#disable_fts3_unicode">compile.html#disable_fts3_unicode</a></li><li>SQLITE_DISABLE_FTS4_DEFERRED - <a href="compile.html#disable_fts4_deferred">compile.html#disable_fts4_deferred</a></li><li>SQLITE_DISABLE_INTRINSIC - <a href="compile.html#disable_intrinsic">compile.html#disable_intrinsic</a></li><li>SQLITE_DISABLE_LFS - <a href="compile.html#disable_lfs">compile.html#disable_lfs</a></li><li>SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS - <a href="compile.html#disable_pagecache_overflow_stats">compile.html#disable_pagecache_overflow_stats</a></li><li>SQLITE_DONE - <a href="rescode.html#done">rescode.html#done</a></li><li>SQLITE_DQS - <a href="compile.html#dqs">compile.html#dqs</a></li><li>SQLITE_DROP_INDEX - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_TABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_TEMP_INDEX - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_TEMP_TABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_TEMP_TRIGGER - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_TEMP_VIEW - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_TRIGGER - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_VIEW - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_VTABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_EMPTY - <a href="rescode.html#empty">rescode.html#empty</a></li><li>SQLITE_ENABLE_8_3_NAMES - <a href="compile.html#enable_8_3_names">compile.html#enable_8_3_names</a></li><li>SQLITE_ENABLE_API_ARMOR - <a href="compile.html#enable_api_armor">compile.html#enable_api_armor</a></li><li>SQLITE_ENABLE_ATOMIC_WRITE - <a href="compile.html#enable_atomic_write">compile.html#enable_atomic_write</a></li><li>SQLITE_ENABLE_BATCH_ATOMIC_WRITE - <a href="compile.html#enable_batch_atomic_write">compile.html#enable_batch_atomic_write</a></li><li>SQLITE_ENABLE_BYTECODE_VTAB - <a href="compile.html#enable_bytecode_vtab">compile.html#enable_bytecode_vtab</a></li><li>SQLITE_ENABLE_COLUMN_METADATA - <a href="compile.html#enable_column_metadata">compile.html#enable_column_metadata</a></li><li>SQLITE_ENABLE_DBPAGE_VTAB - <a href="compile.html#enable_dbpage_vtab">compile.html#enable_dbpage_vtab</a></li><li>SQLITE_ENABLE_DBSTAT_VTAB - <a href="compile.html#enable_dbstat_vtab">compile.html#enable_dbstat_vtab</a></li><li>SQLITE_ENABLE_DESERIALIZE - <a href="compile.html#enable_deserialize">compile.html#enable_deserialize</a></li><li>SQLITE_ENABLE_EXPLAIN_COMMENTS - <a href="compile.html#enable_explain_comments">compile.html#enable_explain_comments</a></li><li>SQLITE_ENABLE_FTS3 - <a href="compile.html#enable_fts3">compile.html#enable_fts3</a></li><li>SQLITE_ENABLE_FTS3_PARENTHESIS - <a href="compile.html#enable_fts3_parenthesis">compile.html#enable_fts3_parenthesis</a></li><li>SQLITE_ENABLE_FTS3_TOKENIZER - <a href="compile.html#enable_fts3_tokenizer">compile.html#enable_fts3_tokenizer</a></li><li>SQLITE_ENABLE_FTS4 - <a href="compile.html#enable_fts4">compile.html#enable_fts4</a></li><li>SQLITE_ENABLE_FTS5 - <a href="compile.html#enable_fts5">compile.html#enable_fts5</a></li><li>SQLITE_ENABLE_GEOPOLY - <a href="compile.html#enable_geopoly">compile.html#enable_geopoly</a></li><li>SQLITE_ENABLE_HIDDEN_COLUMNS - <a href="compile.html#enable_hidden_columns">compile.html#enable_hidden_columns</a></li><li>SQLITE_ENABLE_ICU - <a href="compile.html#enable_icu">compile.html#enable_icu</a></li><li>SQLITE_ENABLE_IOTRACE - <a href="compile.html#enable_iotrace">compile.html#enable_iotrace</a></li><li>SQLITE_ENABLE_JSON1 - <a href="compile.html#enable_json1">compile.html#enable_json1</a></li><li>SQLITE_ENABLE_LOCKING_STYLE - <a href="compile.html#enable_locking_style">compile.html#enable_locking_style</a></li><li>SQLITE_ENABLE_MATH_FUNCTIONS - <a href="compile.html#enable_math_functions">compile.html#enable_math_functions</a></li><li>SQLITE_ENABLE_MEMORY_MANAGEMENT - <a href="compile.html#enable_memory_management">compile.html#enable_memory_management</a></li><li>SQLITE_ENABLE_MEMSYS3 - <a href="compile.html#enable_memsys3">compile.html#enable_memsys3</a></li><li>SQLITE_ENABLE_MEMSYS5 - <a href="compile.html#enable_memsys5">compile.html#enable_memsys5</a></li><li>SQLITE_ENABLE_NORMALIZE - <a href="compile.html#enable_normalize">compile.html#enable_normalize</a></li><li>SQLITE_ENABLE_NULL_TRIM - <a href="compile.html#enable_null_trim">compile.html#enable_null_trim</a></li><li>SQLITE_ENABLE_OFFSET_SQL_FUNC - <a href="compile.html#enable_offset_sql_func">compile.html#enable_offset_sql_func</a></li><li>SQLITE_ENABLE_PREUPDATE_HOOK - <a href="compile.html#enable_preupdate_hook">compile.html#enable_preupdate_hook</a></li><li>SQLITE_ENABLE_QPSG - <a href="compile.html#enable_qpsg">compile.html#enable_qpsg</a></li><li>SQLITE_ENABLE_RBU - <a href="compile.html#enable_rbu">compile.html#enable_rbu</a></li><li>SQLITE_ENABLE_RTREE - <a href="compile.html#enable_rtree">compile.html#enable_rtree</a></li><li>SQLITE_ENABLE_SESSION - <a href="compile.html#enable_session">compile.html#enable_session</a></li><li>SQLITE_ENABLE_SNAPSHOT - <a href="compile.html#enable_snapshot">compile.html#enable_snapshot</a></li><li>SQLITE_ENABLE_SORTER_REFERENCES - <a href="compile.html#enable_sorter_references">compile.html#enable_sorter_references</a></li><li>SQLITE_ENABLE_SQLLOG - <a href="compile.html#enable_sqllog">compile.html#enable_sqllog</a></li><li>SQLITE_ENABLE_STAT2 - <a href="compile.html#enable_stat2">compile.html#enable_stat2</a></li><li>SQLITE_ENABLE_STAT3 - <a href="compile.html#enable_stat3">compile.html#enable_stat3</a></li><li>SQLITE_ENABLE_STAT4 - <a href="compile.html#enable_stat4">compile.html#enable_stat4</a></li><li>SQLITE_ENABLE_STMT_SCANSTATUS - <a href="compile.html#enable_stmt_scanstatus">compile.html#enable_stmt_scanstatus</a></li><li>SQLITE_ENABLE_STMTVTAB - <a href="compile.html#enable_stmtvtab">compile.html#enable_stmtvtab</a></li><li>SQLITE_ENABLE_TREE_EXPLAIN - <a href="compile.html#enable_tree_explain">compile.html#enable_tree_explain</a></li><li>SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION - <a href="compile.html#enable_unknown_sql_function">compile.html#enable_unknown_sql_function</a></li><li>SQLITE_ENABLE_UNLOCK_NOTIFY - <a href="compile.html#enable_unlock_notify">compile.html#enable_unlock_notify</a></li><li>SQLITE_ENABLE_UPDATE_DELETE_LIMIT - <a href="compile.html#enable_update_delete_limit">compile.html#enable_update_delete_limit</a></li><li>SQLITE_ERROR - <a href="rescode.html#error">rescode.html#error</a></li><li>SQLITE_ERROR_MISSING_COLLSEQ - <a href="rescode.html#error_missing_collseq">rescode.html#error_missing_collseq</a></li><li>SQLITE_ERROR_RETRY - <a href="rescode.html#error_retry">rescode.html#error_retry</a></li><li>SQLITE_ERROR_SNAPSHOT - <a href="rescode.html#error_snapshot">rescode.html#error_snapshot</a></li><li>SQLITE_EXTERN - <a href="compile.html#extern">compile.html#extern</a></li><li>SQLITE_EXTRA_DURABLE - <a href="compile.html#extra_durable">compile.html#extra_durable</a></li><li>SQLITE_FAIL - <a href="c3ref/c_fail.html">c3ref/c_fail.html</a></li><li>SQLITE_FCNTL_BEGIN_ATOMIC_WRITE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlbeginatomicwrite">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlbeginatomicwrite</a></li><li>SQLITE_FCNTL_BUSYHANDLER - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlbusyhandler">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlbusyhandler</a></li><li>SQLITE_FCNTL_CHUNK_SIZE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlchunksize">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlchunksize</a></li><li>SQLITE_FCNTL_CKPT_DONE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlckptdone">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlckptdone</a></li><li>SQLITE_FCNTL_CKPT_START - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlckptstart">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlckptstart</a></li><li>SQLITE_FCNTL_CKSM_FILE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlcksmfile">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlcksmfile</a></li><li>SQLITE_FCNTL_COMMIT_ATOMIC_WRITE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlcommitatomicwrite">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlcommitatomicwrite</a></li><li>SQLITE_FCNTL_COMMIT_PHASETWO - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlcommitphasetwo">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlcommitphasetwo</a></li><li>SQLITE_FCNTL_DATA_VERSION - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntldataversion">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntldataversion</a></li><li>SQLITE_FCNTL_EXTERNAL_READER - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlexternalreader">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlexternalreader</a></li><li>SQLITE_FCNTL_FILE_POINTER - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlfilepointer">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlfilepointer</a></li><li>SQLITE_FCNTL_GET_LOCKPROXYFILE - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>SQLITE_FCNTL_HAS_MOVED - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlhasmoved">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlhasmoved</a></li><li>SQLITE_FCNTL_JOURNAL_POINTER - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntljournalpointer">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntljournalpointer</a></li><li>SQLITE_FCNTL_LAST_ERRNO - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>SQLITE_FCNTL_LOCK_TIMEOUT - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntllocktimeout">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntllocktimeout</a></li><li>SQLITE_FCNTL_LOCKSTATE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntllockstate">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntllockstate</a></li><li>SQLITE_FCNTL_MMAP_SIZE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlmmapsize">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlmmapsize</a></li><li>SQLITE_FCNTL_OVERWRITE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntloverwrite">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntloverwrite</a></li><li>SQLITE_FCNTL_PDB - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>SQLITE_FCNTL_PERSIST_WAL - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpersistwal">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpersistwal</a></li><li>SQLITE_FCNTL_POWERSAFE_OVERWRITE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpowersafeoverwrite">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpowersafeoverwrite</a></li><li>SQLITE_FCNTL_PRAGMA - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpragma">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpragma</a></li><li>SQLITE_FCNTL_RBU - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlrbu">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlrbu</a></li><li>SQLITE_FCNTL_RESERVE_BYTES - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>SQLITE_FCNTL_RESET_CACHE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlresetcache">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlresetcache</a></li><li>SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlrollbackatomicwrite">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlrollbackatomicwrite</a></li><li>SQLITE_FCNTL_SET_LOCKPROXYFILE - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>SQLITE_FCNTL_SIZE_HINT - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsizehint">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsizehint</a></li><li>SQLITE_FCNTL_SIZE_LIMIT - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsizelimit">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsizelimit</a></li><li>SQLITE_FCNTL_SYNC - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsync">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsync</a></li><li>SQLITE_FCNTL_SYNC_OMITTED - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsyncomitted">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsyncomitted</a></li><li>SQLITE_FCNTL_TEMPFILENAME - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntltempfilename">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntltempfilename</a></li><li>SQLITE_FCNTL_TRACE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntltrace">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntltrace</a></li><li>SQLITE_FCNTL_VFS_POINTER - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlvfspointer">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlvfspointer</a></li><li>SQLITE_FCNTL_VFSNAME - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlvfsname">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlvfsname</a></li><li>SQLITE_FCNTL_WAL_BLOCK - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwalblock">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwalblock</a></li><li>SQLITE_FCNTL_WIN32_AV_RETRY - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwin32avretry">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwin32avretry</a></li><li>SQLITE_FCNTL_WIN32_GET_HANDLE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwin32gethandle">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwin32gethandle</a></li><li>SQLITE_FCNTL_WIN32_SET_HANDLE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwin32sethandle">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwin32sethandle</a></li><li>SQLITE_FCNTL_ZIPVFS - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlzipvfs">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlzipvfs</a></li><li>SQLITE_FLOAT - <a href="c3ref/c_blob.html">c3ref/c_blob.html</a></li><li>SQLITE_FORMAT - <a href="rescode.html#format">rescode.html#format</a></li><li>SQLITE_FTS3_MAX_EXPR_DEPTH - <a href="compile.html#fts3_max_expr_depth">compile.html#fts3_max_expr_depth</a></li><li>SQLITE_FULL - <a href="rescode.html#full">rescode.html#full</a></li><li>SQLITE_FUNCTION - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_HAVE_ISNAN - <a href="compile.html#have_isnan">compile.html#have_isnan</a></li><li>SQLITE_HAVE_ZLIB - <a href="compile.html#have_zlib">compile.html#have_zlib</a></li><li>SQLITE_IGNORE - <a href="c3ref/c_deny.html">c3ref/c_deny.html</a></li><li>SQLITE_INDEX_CONSTRAINT_EQ - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_FUNCTION - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_GE - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_GLOB - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_GT - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_IS - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_ISNOT - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_ISNOTNULL - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_ISNULL - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_LE - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_LIKE - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_LIMIT - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_LT - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_MATCH - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_NE - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_OFFSET - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_REGEXP - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_SCAN_UNIQUE - <a href="c3ref/c_index_scan_unique.html">c3ref/c_index_scan_unique.html</a></li><li>SQLITE_INNOCUOUS - <a href="c3ref/c_deterministic.html#sqliteinnocuous">c3ref/c_deterministic.html#sqliteinnocuous</a></li><li>SQLITE_INSERT - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>sqlite_int64 - <a href="c3ref/int64.html">c3ref/int64.html</a></li><li>SQLITE_INTEGER - <a href="c3ref/c_blob.html">c3ref/c_blob.html</a></li><li>SQLITE_INTERNAL - <a href="rescode.html#internal">rescode.html#internal</a></li><li>SQLITE_INTERRUPT - <a href="rescode.html#interrupt">rescode.html#interrupt</a></li><li>SQLITE_INTROSPECTION_PRAGMAS - <a href="compile.html#introspection_pragmas">compile.html#introspection_pragmas</a></li><li>SQLITE_IOCAP_ATOMIC - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC1K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC2K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC4K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC8K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC16K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC32K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC64K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC512 - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_BATCH_ATOMIC - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_IMMUTABLE - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_POWERSAFE_OVERWRITE - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_SAFE_APPEND - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_SEQUENTIAL - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOERR - <a href="rescode.html#ioerr">rescode.html#ioerr</a></li><li>SQLITE_IOERR_ACCESS - <a href="rescode.html#ioerr_access">rescode.html#ioerr_access</a></li><li>SQLITE_IOERR_AUTH - <a href="rescode.html#ioerr_auth">rescode.html#ioerr_auth</a></li><li>SQLITE_IOERR_BEGIN_ATOMIC - <a href="rescode.html#ioerr_begin_atomic">rescode.html#ioerr_begin_atomic</a></li><li>SQLITE_IOERR_BLOCKED - <a href="rescode.html#ioerr_blocked">rescode.html#ioerr_blocked</a></li><li>SQLITE_IOERR_CHECKRESERVEDLOCK - <a href="rescode.html#ioerr_checkreservedlock">rescode.html#ioerr_checkreservedlock</a></li><li>SQLITE_IOERR_CLOSE - <a href="rescode.html#ioerr_close">rescode.html#ioerr_close</a></li><li>SQLITE_IOERR_COMMIT_ATOMIC - <a href="rescode.html#ioerr_commit_atomic">rescode.html#ioerr_commit_atomic</a></li><li>SQLITE_IOERR_CONVPATH - <a href="rescode.html#ioerr_convpath">rescode.html#ioerr_convpath</a></li><li>SQLITE_IOERR_CORRUPTFS - <a href="rescode.html#ioerr_corruptfs">rescode.html#ioerr_corruptfs</a></li><li>SQLITE_IOERR_DATA - <a href="rescode.html#ioerr_data">rescode.html#ioerr_data</a></li><li>SQLITE_IOERR_DELETE - <a href="rescode.html#ioerr_delete">rescode.html#ioerr_delete</a></li><li>SQLITE_IOERR_DELETE_NOENT - <a href="rescode.html#ioerr_delete_noent">rescode.html#ioerr_delete_noent</a></li><li>SQLITE_IOERR_DIR_CLOSE - <a href="rescode.html#ioerr_dir_close">rescode.html#ioerr_dir_close</a></li><li>SQLITE_IOERR_DIR_FSYNC - <a href="rescode.html#ioerr_dir_fsync">rescode.html#ioerr_dir_fsync</a></li><li>SQLITE_IOERR_FSTAT - <a href="rescode.html#ioerr_fstat">rescode.html#ioerr_fstat</a></li><li>SQLITE_IOERR_FSYNC - <a href="rescode.html#ioerr_fsync">rescode.html#ioerr_fsync</a></li><li>SQLITE_IOERR_GETTEMPPATH - <a href="rescode.html#ioerr_gettemppath">rescode.html#ioerr_gettemppath</a></li><li>SQLITE_IOERR_IN_PAGE - <a href="c3ref/c_abort_rollback.html">c3ref/c_abort_rollback.html</a></li><li>SQLITE_IOERR_LOCK - <a href="rescode.html#ioerr_lock">rescode.html#ioerr_lock</a></li><li>SQLITE_IOERR_MMAP - <a href="rescode.html#ioerr_mmap">rescode.html#ioerr_mmap</a></li><li>SQLITE_IOERR_NOMEM - <a href="rescode.html#ioerr_nomem">rescode.html#ioerr_nomem</a></li><li>SQLITE_IOERR_RDLOCK - <a href="rescode.html#ioerr_rdlock">rescode.html#ioerr_rdlock</a></li><li>SQLITE_IOERR_READ - <a href="rescode.html#ioerr_read">rescode.html#ioerr_read</a></li><li>SQLITE_IOERR_ROLLBACK_ATOMIC - <a href="rescode.html#ioerr_rollback_atomic">rescode.html#ioerr_rollback_atomic</a></li><li>SQLITE_IOERR_SEEK - <a href="rescode.html#ioerr_seek">rescode.html#ioerr_seek</a></li><li>SQLITE_IOERR_SHMLOCK - <a href="rescode.html#ioerr_shmlock">rescode.html#ioerr_shmlock</a></li><li>SQLITE_IOERR_SHMMAP - <a href="rescode.html#ioerr_shmmap">rescode.html#ioerr_shmmap</a></li><li>SQLITE_IOERR_SHMOPEN - <a href="rescode.html#ioerr_shmopen">rescode.html#ioerr_shmopen</a></li><li>SQLITE_IOERR_SHMSIZE - <a href="rescode.html#ioerr_shmsize">rescode.html#ioerr_shmsize</a></li><li>SQLITE_IOERR_SHORT_READ - <a href="rescode.html#ioerr_short_read">rescode.html#ioerr_short_read</a></li><li>SQLITE_IOERR_TRUNCATE - <a href="rescode.html#ioerr_truncate">rescode.html#ioerr_truncate</a></li><li>SQLITE_IOERR_UNLOCK - <a href="rescode.html#ioerr_unlock">rescode.html#ioerr_unlock</a></li><li>SQLITE_IOERR_VNODE - <a href="rescode.html#ioerr_vnode">rescode.html#ioerr_vnode</a></li><li>SQLITE_IOERR_WRITE - <a href="rescode.html#ioerr_write">rescode.html#ioerr_write</a></li><li>SQLITE_JSON_MAX_DEPTH - <a href="compile.html#json_max_depth">compile.html#json_max_depth</a></li><li>SQLITE_LIKE_DOESNT_MATCH_BLOBS - <a href="compile.html#like_doesnt_match_blobs">compile.html#like_doesnt_match_blobs</a></li><li>SQLITE_LIMIT_ATTACHED - <a href="c3ref/c_limit_attached.html#sqlitelimitattached">c3ref/c_limit_attached.html#sqlitelimitattached</a></li><li>SQLITE_LIMIT_COLUMN - <a href="c3ref/c_limit_attached.html#sqlitelimitcolumn">c3ref/c_limit_attached.html#sqlitelimitcolumn</a></li><li>SQLITE_LIMIT_COMPOUND_SELECT - <a href="c3ref/c_limit_attached.html#sqlitelimitcompoundselect">c3ref/c_limit_attached.html#sqlitelimitcompoundselect</a></li><li>SQLITE_LIMIT_EXPR_DEPTH - <a href="c3ref/c_limit_attached.html#sqlitelimitexprdepth">c3ref/c_limit_attached.html#sqlitelimitexprdepth</a></li><li>SQLITE_LIMIT_FUNCTION_ARG - <a href="c3ref/c_limit_attached.html#sqlitelimitfunctionarg">c3ref/c_limit_attached.html#sqlitelimitfunctionarg</a></li><li>SQLITE_LIMIT_LENGTH - <a href="c3ref/c_limit_attached.html#sqlitelimitlength">c3ref/c_limit_attached.html#sqlitelimitlength</a></li><li>SQLITE_LIMIT_LIKE_PATTERN_LENGTH - <a href="c3ref/c_limit_attached.html#sqlitelimitlikepatternlength">c3ref/c_limit_attached.html#sqlitelimitlikepatternlength</a></li><li>SQLITE_LIMIT_SQL_LENGTH - <a href="c3ref/c_limit_attached.html#sqlitelimitsqllength">c3ref/c_limit_attached.html#sqlitelimitsqllength</a></li><li>SQLITE_LIMIT_TRIGGER_DEPTH - <a href="c3ref/c_limit_attached.html#sqlitelimittriggerdepth">c3ref/c_limit_attached.html#sqlitelimittriggerdepth</a></li><li>SQLITE_LIMIT_VARIABLE_NUMBER - <a href="c3ref/c_limit_attached.html#sqlitelimitvariablenumber">c3ref/c_limit_attached.html#sqlitelimitvariablenumber</a></li><li>SQLITE_LIMIT_VDBE_OP - <a href="c3ref/c_limit_attached.html#sqlitelimitvdbeop">c3ref/c_limit_attached.html#sqlitelimitvdbeop</a></li><li>SQLITE_LIMIT_WORKER_THREADS - <a href="c3ref/c_limit_attached.html#sqlitelimitworkerthreads">c3ref/c_limit_attached.html#sqlitelimitworkerthreads</a></li><li>SQLITE_LOCK_EXCLUSIVE - <a href="c3ref/c_lock_exclusive.html">c3ref/c_lock_exclusive.html</a></li><li>SQLITE_LOCK_NONE - <a href="c3ref/c_lock_exclusive.html">c3ref/c_lock_exclusive.html</a></li><li>SQLITE_LOCK_PENDING - <a href="c3ref/c_lock_exclusive.html">c3ref/c_lock_exclusive.html</a></li><li>SQLITE_LOCK_RESERVED - <a href="c3ref/c_lock_exclusive.html">c3ref/c_lock_exclusive.html</a></li><li>SQLITE_LOCK_SHARED - <a href="c3ref/c_lock_exclusive.html">c3ref/c_lock_exclusive.html</a></li><li>SQLITE_LOCKED - <a href="rescode.html#locked">rescode.html#locked</a></li><li>SQLITE_LOCKED_SHAREDCACHE - <a href="rescode.html#locked_sharedcache">rescode.html#locked_sharedcache</a></li><li>SQLITE_LOCKED_VTAB - <a href="rescode.html#locked_vtab">rescode.html#locked_vtab</a></li><li>sqlite_master table - <a href="schematab.html">schematab.html</a></li><li>SQLITE_MAX_ALLOCATION_SIZE - <a href="compile.html#max_allocation_size">compile.html#max_allocation_size</a></li><li>SQLITE_MAX_ATTACHED - <a href="limits.html#max_attached">limits.html#max_attached</a></li><li>SQLITE_MAX_COLUMN - <a href="limits.html#max_column">limits.html#max_column</a></li><li>SQLITE_MAX_COMPOUND_SELECT - <a href="limits.html#max_compound_select">limits.html#max_compound_select</a></li><li>SQLITE_MAX_EXPR_DEPTH - <a href="limits.html#max_expr_depth">limits.html#max_expr_depth</a></li><li>SQLITE_MAX_FUNCTION_ARG - <a href="limits.html#max_function_arg">limits.html#max_function_arg</a></li><li>SQLITE_MAX_LENGTH - <a href="limits.html#max_length">limits.html#max_length</a></li><li>SQLITE_MAX_LIKE_PATTERN_LENGTH - <a href="limits.html#max_like_pattern_length">limits.html#max_like_pattern_length</a></li><li>SQLITE_MAX_MEMORY - <a href="compile.html#max_memory">compile.html#max_memory</a></li><li>SQLITE_MAX_MMAP_SIZE - <a href="compile.html#max_mmap_size">compile.html#max_mmap_size</a></li><li>SQLITE_MAX_PAGE_COUNT - <a href="limits.html#max_page_count">limits.html#max_page_count</a></li><li>SQLITE_MAX_SCHEMA_RETRY - <a href="compile.html#max_schema_retry">compile.html#max_schema_retry</a></li><li>SQLITE_MAX_SQL_LENGTH - <a href="limits.html#max_sql_length">limits.html#max_sql_length</a></li><li>SQLITE_MAX_TRIGGER_DEPTH - <a href="limits.html#max_trigger_depth">limits.html#max_trigger_depth</a></li><li>SQLITE_MAX_VARIABLE_NUMBER - <a href="limits.html#max_variable_number">limits.html#max_variable_number</a></li><li>SQLITE_MAX_WORKER_THREADS - <a href="compile.html#max_worker_threads">compile.html#max_worker_threads</a></li><li>SQLITE_MEMDB_DEFAULT_MAXSIZE - <a href="compile.html#memdb_default_maxsize">compile.html#memdb_default_maxsize</a></li><li>SQLITE_MEMDEBUG - <a href="compile.html#memdebug">compile.html#memdebug</a></li><li>sqlite_memstat - <a href="memstat.html">memstat.html</a></li><li>SQLITE_MEMSTAT virtual table - <a href="memstat.html">memstat.html</a></li><li>SQLITE_MINIMUM_FILE_DESCRIPTOR - <a href="compile.html#minimum_file_descriptor">compile.html#minimum_file_descriptor</a></li><li>SQLITE_MISMATCH - <a href="rescode.html#mismatch">rescode.html#mismatch</a></li><li>SQLITE_MISUSE - <a href="rescode.html#misuse">rescode.html#misuse</a></li><li>SQLITE_MUTEX_FAST - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_RECURSIVE - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_APP1 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_APP2 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_APP3 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_LRU - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_LRU2 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_MAIN - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_MEM - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_MEM2 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_OPEN - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_PMEM - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_PRNG - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_VFS1 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_VFS2 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_VFS3 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_NOLFS - <a href="rescode.html#nolfs">rescode.html#nolfs</a></li><li>SQLITE_NOMEM - <a href="rescode.html#nomem">rescode.html#nomem</a></li><li>SQLITE_NOTADB - <a href="rescode.html#notadb">rescode.html#notadb</a></li><li>SQLITE_NOTFOUND - <a href="rescode.html#notfound">rescode.html#notfound</a></li><li>SQLITE_NOTICE - <a href="rescode.html#notice">rescode.html#notice</a></li><li>SQLITE_NOTICE_RBU - <a href="c3ref/c_abort_rollback.html">c3ref/c_abort_rollback.html</a></li><li>SQLITE_NOTICE_RECOVER_ROLLBACK - <a href="rescode.html#notice_recover_rollback">rescode.html#notice_recover_rollback</a></li><li>SQLITE_NOTICE_RECOVER_WAL - <a href="rescode.html#notice_recover_wal">rescode.html#notice_recover_wal</a></li><li>SQLITE_NULL - <a href="c3ref/c_blob.html">c3ref/c_blob.html</a></li><li>sqlite_offset - <a href="lang_corefunc.html#sqlite_offset">lang_corefunc.html#sqlite_offset</a></li><li>sqlite_offset SQL function - <a href="lang_corefunc.html#sqlite_offset">lang_corefunc.html#sqlite_offset</a></li><li>SQLITE_OK - <a href="rescode.html#ok">rescode.html#ok</a></li><li>SQLITE_OK_LOAD_PERMANENTLY - <a href="rescode.html#ok_load_permanently">rescode.html#ok_load_permanently</a></li><li>SQLITE_OK_SYMLINK - <a href="c3ref/c_abort_rollback.html">c3ref/c_abort_rollback.html</a></li><li>SQLITE_OMIT_ALTERTABLE - <a href="compile.html#omit_altertable">compile.html#omit_altertable</a></li><li>SQLITE_OMIT_ANALYZE - <a href="compile.html#omit_analyze">compile.html#omit_analyze</a></li><li>SQLITE_OMIT_ATTACH - <a href="compile.html#omit_attach">compile.html#omit_attach</a></li><li>SQLITE_OMIT_AUTHORIZATION - <a href="compile.html#omit_authorization">compile.html#omit_authorization</a></li><li>SQLITE_OMIT_AUTOINCREMENT - <a href="compile.html#omit_autoincrement">compile.html#omit_autoincrement</a></li><li>SQLITE_OMIT_AUTOINIT - <a href="compile.html#omit_autoinit">compile.html#omit_autoinit</a></li><li>SQLITE_OMIT_AUTOMATIC_INDEX - <a href="compile.html#omit_automatic_index">compile.html#omit_automatic_index</a></li><li>SQLITE_OMIT_AUTORESET - <a href="compile.html#omit_autoreset">compile.html#omit_autoreset</a></li><li>SQLITE_OMIT_AUTOVACUUM - <a href="compile.html#omit_autovacuum">compile.html#omit_autovacuum</a></li><li>SQLITE_OMIT_BETWEEN_OPTIMIZATION - <a href="compile.html#omit_between_optimization">compile.html#omit_between_optimization</a></li><li>SQLITE_OMIT_BLOB_LITERAL - <a href="compile.html#omit_blob_literal">compile.html#omit_blob_literal</a></li><li>SQLITE_OMIT_BTREECOUNT - <a href="compile.html#omit_btreecount">compile.html#omit_btreecount</a></li><li>SQLITE_OMIT_BUILTIN_TEST - <a href="compile.html#omit_builtin_test">compile.html#omit_builtin_test</a></li><li>SQLITE_OMIT_CASE_SENSITIVE_LIKE_PRAGMA - <a href="compile.html#omit_case_sensitive_like_pragma">compile.html#omit_case_sensitive_like_pragma</a></li><li>SQLITE_OMIT_CAST - <a href="compile.html#omit_cast">compile.html#omit_cast</a></li><li>SQLITE_OMIT_CHECK - <a href="compile.html#omit_check">compile.html#omit_check</a></li><li>SQLITE_OMIT_COMPILEOPTION_DIAGS - <a href="compile.html#omit_compileoption_diags">compile.html#omit_compileoption_diags</a></li><li>SQLITE_OMIT_COMPLETE - <a href="compile.html#omit_complete">compile.html#omit_complete</a></li><li>SQLITE_OMIT_COMPOUND_SELECT - <a href="compile.html#omit_compound_select">compile.html#omit_compound_select</a></li><li>SQLITE_OMIT_CTE - <a href="compile.html#omit_cte">compile.html#omit_cte</a></li><li>SQLITE_OMIT_DATETIME_FUNCS - <a href="compile.html#omit_datetime_funcs">compile.html#omit_datetime_funcs</a></li><li>SQLITE_OMIT_DECLTYPE - <a href="compile.html#omit_decltype">compile.html#omit_decltype</a></li><li>SQLITE_OMIT_DEPRECATED - <a href="compile.html#omit_deprecated">compile.html#omit_deprecated</a></li><li>SQLITE_OMIT_DESERIALIZE - <a href="compile.html#omit_deserialize">compile.html#omit_deserialize</a></li><li>SQLITE_OMIT_DISKIO - <a href="compile.html#omit_diskio">compile.html#omit_diskio</a></li><li>SQLITE_OMIT_EXPLAIN - <a href="compile.html#omit_explain">compile.html#omit_explain</a></li><li>SQLITE_OMIT_FLAG_PRAGMAS - <a href="compile.html#omit_flag_pragmas">compile.html#omit_flag_pragmas</a></li><li>SQLITE_OMIT_FLOATING_POINT - <a href="compile.html#omit_floating_point">compile.html#omit_floating_point</a></li><li>SQLITE_OMIT_FOREIGN_KEY - <a href="compile.html#omit_foreign_key">compile.html#omit_foreign_key</a></li><li>SQLITE_OMIT_GENERATED_COLUMNS - <a href="compile.html#omit_generated_columns">compile.html#omit_generated_columns</a></li><li>SQLITE_OMIT_GET_TABLE - <a href="compile.html#omit_get_table">compile.html#omit_get_table</a></li><li>SQLITE_OMIT_HEX_INTEGER - <a href="compile.html#omit_hex_integer">compile.html#omit_hex_integer</a></li><li>SQLITE_OMIT_INCRBLOB - <a href="compile.html#omit_incrblob">compile.html#omit_incrblob</a></li><li>SQLITE_OMIT_INTEGRITY_CHECK - <a href="compile.html#omit_integrity_check">compile.html#omit_integrity_check</a></li><li>SQLITE_OMIT_INTROSPECTION_PRAGMAS - <a href="compile.html#omit_introspection_pragmas">compile.html#omit_introspection_pragmas</a></li><li>SQLITE_OMIT_JSON - <a href="compile.html#omit_json">compile.html#omit_json</a></li><li>SQLITE_OMIT_LIKE_OPTIMIZATION - <a href="compile.html#omit_like_optimization">compile.html#omit_like_optimization</a></li><li>SQLITE_OMIT_LOAD_EXTENSION - <a href="compile.html#omit_load_extension">compile.html#omit_load_extension</a></li><li>SQLITE_OMIT_LOCALTIME - <a href="compile.html#omit_localtime">compile.html#omit_localtime</a></li><li>SQLITE_OMIT_LOOKASIDE - <a href="compile.html#omit_lookaside">compile.html#omit_lookaside</a></li><li>SQLITE_OMIT_MEMORYDB - <a href="compile.html#omit_memorydb">compile.html#omit_memorydb</a></li><li>SQLITE_OMIT_OR_OPTIMIZATION - <a href="compile.html#omit_or_optimization">compile.html#omit_or_optimization</a></li><li>SQLITE_OMIT_PAGER_PRAGMAS - <a href="compile.html#omit_pager_pragmas">compile.html#omit_pager_pragmas</a></li><li>SQLITE_OMIT_PRAGMA - <a href="compile.html#omit_pragma">compile.html#omit_pragma</a></li><li>SQLITE_OMIT_PROGRESS_CALLBACK - <a href="compile.html#omit_progress_callback">compile.html#omit_progress_callback</a></li><li>SQLITE_OMIT_QUICKBALANCE - <a href="compile.html#omit_quickbalance">compile.html#omit_quickbalance</a></li><li>SQLITE_OMIT_REINDEX - <a href="compile.html#omit_reindex">compile.html#omit_reindex</a></li><li>SQLITE_OMIT_SCHEMA_PRAGMAS - <a href="compile.html#omit_schema_pragmas">compile.html#omit_schema_pragmas</a></li><li>SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS - <a href="compile.html#omit_schema_version_pragmas">compile.html#omit_schema_version_pragmas</a></li><li>SQLITE_OMIT_SHARED_CACHE - <a href="compile.html#omit_shared_cache">compile.html#omit_shared_cache</a></li><li>SQLITE_OMIT_SUBQUERY - <a href="compile.html#omit_subquery">compile.html#omit_subquery</a></li><li>SQLITE_OMIT_TCL_VARIABLE - <a href="compile.html#omit_tcl_variable">compile.html#omit_tcl_variable</a></li><li>SQLITE_OMIT_TEMPDB - <a href="compile.html#omit_tempdb">compile.html#omit_tempdb</a></li><li>SQLITE_OMIT_TRACE - <a href="compile.html#omit_trace">compile.html#omit_trace</a></li><li>SQLITE_OMIT_TRIGGER - <a href="compile.html#omit_trigger">compile.html#omit_trigger</a></li><li>SQLITE_OMIT_TRUNCATE_OPTIMIZATION - <a href="compile.html#omit_truncate_optimization">compile.html#omit_truncate_optimization</a></li><li>SQLITE_OMIT_UTF16 - <a href="compile.html#omit_utf16">compile.html#omit_utf16</a></li><li>SQLITE_OMIT_VACUUM - <a href="compile.html#omit_vacuum">compile.html#omit_vacuum</a></li><li>SQLITE_OMIT_VIEW - <a href="compile.html#omit_view">compile.html#omit_view</a></li><li>SQLITE_OMIT_VIRTUALTABLE - <a href="compile.html#omit_virtualtable">compile.html#omit_virtualtable</a></li><li>SQLITE_OMIT_WAL - <a href="compile.html#omit_wal">compile.html#omit_wal</a></li><li>SQLITE_OMIT_WINDOWFUNC - <a href="compile.html#omit_windowfunc">compile.html#omit_windowfunc</a></li><li>SQLITE_OMIT_WSD - <a href="compile.html#omit_wsd">compile.html#omit_wsd</a></li><li>SQLITE_OMIT_XFER_OPT - <a href="compile.html#omit_xfer_opt">compile.html#omit_xfer_opt</a></li><li>SQLITE_OPEN_AUTOPROXY - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_CREATE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_DELETEONCLOSE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_EXCLUSIVE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_EXRESCODE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_FULLMUTEX - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_MAIN_DB - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_MAIN_JOURNAL - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_MEMORY - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_NOFOLLOW - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_NOMUTEX - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_PRIVATECACHE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_READONLY - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_READWRITE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_SHAREDCACHE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_SUBJOURNAL - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_SUPER_JOURNAL - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_TEMP_DB - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_TEMP_JOURNAL - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_TRANSIENT_DB - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_URI - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_WAL - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OS_OTHER - <a href="compile.html#os_other">compile.html#os_other</a></li><li>SQLITE_PERM - <a href="rescode.html#perm">rescode.html#perm</a></li><li>SQLITE_POWERSAFE_OVERWRITE - <a href="compile.html#powersafe_overwrite">compile.html#powersafe_overwrite</a></li><li>SQLITE_PRAGMA - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_PREPARE_NO_VTAB - <a href="c3ref/c_prepare_normalize.html#sqlitepreparenovtab">c3ref/c_prepare_normalize.html#sqlitepreparenovtab</a></li><li>SQLITE_PREPARE_NORMALIZE - <a href="c3ref/c_prepare_normalize.html#sqlitepreparenormalize">c3ref/c_prepare_normalize.html#sqlitepreparenormalize</a></li><li>SQLITE_PREPARE_PERSISTENT - <a href="c3ref/c_prepare_normalize.html#sqlitepreparepersistent">c3ref/c_prepare_normalize.html#sqlitepreparepersistent</a></li><li>SQLITE_PRINTF_PRECISION_LIMIT - <a href="compile.html#printf_precision_limit">compile.html#printf_precision_limit</a></li><li>SQLITE_PROTOCOL - <a href="rescode.html#protocol">rescode.html#protocol</a></li><li>SQLITE_QUERY_PLANNER_LIMIT - <a href="compile.html#query_planner_limit">compile.html#query_planner_limit</a></li><li>SQLITE_QUERY_PLANNER_LIMIT_INCR - <a href="compile.html#query_planner_limit_incr">compile.html#query_planner_limit_incr</a></li><li>SQLITE_RANGE - <a href="rescode.html#range">rescode.html#range</a></li><li>SQLITE_READ - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_READONLY - <a href="rescode.html#readonly">rescode.html#readonly</a></li><li>SQLITE_READONLY_CANTINIT - <a href="rescode.html#readonly_cantinit">rescode.html#readonly_cantinit</a></li><li>SQLITE_READONLY_CANTLOCK - <a href="rescode.html#readonly_cantlock">rescode.html#readonly_cantlock</a></li><li>SQLITE_READONLY_DBMOVED - <a href="rescode.html#readonly_dbmoved">rescode.html#readonly_dbmoved</a></li><li>SQLITE_READONLY_DIRECTORY - <a href="rescode.html#readonly_directory">rescode.html#readonly_directory</a></li><li>SQLITE_READONLY_RECOVERY - <a href="rescode.html#readonly_recovery">rescode.html#readonly_recovery</a></li><li>SQLITE_READONLY_ROLLBACK - <a href="rescode.html#readonly_rollback">rescode.html#readonly_rollback</a></li><li>SQLITE_RECURSIVE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_REINDEX - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_REPLACE - <a href="c3ref/c_fail.html">c3ref/c_fail.html</a></li><li>SQLITE_RESULT_SUBTYPE - <a href="c3ref/c_deterministic.html#sqliteresultsubtype">c3ref/c_deterministic.html#sqliteresultsubtype</a></li><li>SQLITE_REVERSE_UNORDERED_SELECTS - <a href="compile.html#reverse_unordered_selects">compile.html#reverse_unordered_selects</a></li><li>SQLITE_ROLLBACK - <a href="c3ref/c_fail.html">c3ref/c_fail.html</a></li><li>SQLITE_ROW - <a href="rescode.html#row">rescode.html#row</a></li><li>SQLITE_RTREE_INT_ONLY - <a href="compile.html#rtree_int_only">compile.html#rtree_int_only</a></li><li>SQLITE_SAVEPOINT - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_SCANSTAT_COMPLEX - <a href="c3ref/c_scanstat_complex.html">c3ref/c_scanstat_complex.html</a></li><li>SQLITE_SCANSTAT_EST - <a href="c3ref/c_scanstat_est.html#sqlitescanstatest">c3ref/c_scanstat_est.html#sqlitescanstatest</a></li><li>SQLITE_SCANSTAT_EXPLAIN - <a href="c3ref/c_scanstat_est.html#sqlitescanstatexplain">c3ref/c_scanstat_est.html#sqlitescanstatexplain</a></li><li>SQLITE_SCANSTAT_NAME - <a href="c3ref/c_scanstat_est.html#sqlitescanstatname">c3ref/c_scanstat_est.html#sqlitescanstatname</a></li><li>SQLITE_SCANSTAT_NCYCLE - <a href="c3ref/c_scanstat_est.html#sqlitescanstatncycle">c3ref/c_scanstat_est.html#sqlitescanstatncycle</a></li><li>SQLITE_SCANSTAT_NLOOP - <a href="c3ref/c_scanstat_est.html#sqlitescanstatnloop">c3ref/c_scanstat_est.html#sqlitescanstatnloop</a></li><li>SQLITE_SCANSTAT_NVISIT - <a href="c3ref/c_scanstat_est.html#sqlitescanstatnvisit">c3ref/c_scanstat_est.html#sqlitescanstatnvisit</a></li><li>SQLITE_SCANSTAT_PARENTID - <a href="c3ref/c_scanstat_est.html#sqlitescanstatparentid">c3ref/c_scanstat_est.html#sqlitescanstatparentid</a></li><li>SQLITE_SCANSTAT_SELECTID - <a href="c3ref/c_scanstat_est.html#sqlitescanstatselectid">c3ref/c_scanstat_est.html#sqlitescanstatselectid</a></li><li>SQLITE_SCHEMA - <a href="rescode.html#schema">rescode.html#schema</a></li><li>sqlite_schema - <a href="schematab.html">schematab.html</a></li><li>sqlite_schema table - <a href="schematab.html">schematab.html</a></li><li>SQLITE_SECURE_DELETE - <a href="compile.html#secure_delete">compile.html#secure_delete</a></li><li>SQLITE_SELECT - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>sqlite_sequence - <a href="fileformat2.html#seqtab">fileformat2.html#seqtab</a></li><li>SQLITE_SERIALIZE_NOCOPY - <a href="c3ref/c_serialize_nocopy.html">c3ref/c_serialize_nocopy.html</a></li><li>SQLITE_SESSION_CONFIG_STRMSIZE - <a href="session/c_session_config_strmsize.html">session/c_session_config_strmsize.html</a></li><li>SQLITE_SESSION_OBJCONFIG_ROWID - <a href="session/c_session_objconfig_rowid.html">session/c_session_objconfig_rowid.html</a></li><li>SQLITE_SESSION_OBJCONFIG_SIZE - <a href="session/c_session_objconfig_rowid.html">session/c_session_objconfig_rowid.html</a></li><li>SQLITE_SHM_EXCLUSIVE - <a href="c3ref/c_shm_exclusive.html">c3ref/c_shm_exclusive.html</a></li><li>SQLITE_SHM_LOCK - <a href="c3ref/c_shm_exclusive.html">c3ref/c_shm_exclusive.html</a></li><li>SQLITE_SHM_NLOCK - <a href="c3ref/c_shm_nlock.html">c3ref/c_shm_nlock.html</a></li><li>SQLITE_SHM_SHARED - <a href="c3ref/c_shm_exclusive.html">c3ref/c_shm_exclusive.html</a></li><li>SQLITE_SHM_UNLOCK - <a href="c3ref/c_shm_exclusive.html">c3ref/c_shm_exclusive.html</a></li><li>SQLITE_SORTER_PMASZ - <a href="compile.html#sorter_pmasz">compile.html#sorter_pmasz</a></li><li>SQLITE_SOUNDEX - <a href="compile.html#soundex">compile.html#soundex</a></li><li>SQLITE_SOURCE_ID - <a href="c3ref/c_source_id.html">c3ref/c_source_id.html</a></li><li>sqlite_source_id - <a href="lang_corefunc.html#sqlite_source_id">lang_corefunc.html#sqlite_source_id</a></li><li>sqlite_source_id SQL function - <a href="lang_corefunc.html#sqlite_source_id">lang_corefunc.html#sqlite_source_id</a></li><li>SQLITE_STAT1 - <a href="fileformat2.html#stat1tab">fileformat2.html#stat1tab</a></li><li>sqlite_stat1 - <a href="fileformat2.html#stat1tab">fileformat2.html#stat1tab</a></li><li>sqlite_stat2 - <a href="fileformat2.html#stat2tab">fileformat2.html#stat2tab</a></li><li>SQLITE_STAT3 - <a href="fileformat2.html#stat3tab">fileformat2.html#stat3tab</a></li><li>sqlite_stat3 - <a href="fileformat2.html#stat3tab">fileformat2.html#stat3tab</a></li><li>SQLITE_STAT4 - <a href="fileformat2.html#stat4tab">fileformat2.html#stat4tab</a></li><li>sqlite_stat4 - <a href="fileformat2.html#stat4tab">fileformat2.html#stat4tab</a></li><li>SQLITE_STATIC - <a href="c3ref/c_static.html">c3ref/c_static.html</a></li><li>SQLITE_STATUS_MALLOC_COUNT - <a href="c3ref/c_status_malloc_count.html#sqlitestatusmalloccount">c3ref/c_status_malloc_count.html#sqlitestatusmalloccount</a></li><li>SQLITE_STATUS_MALLOC_SIZE - <a href="c3ref/c_status_malloc_count.html#sqlitestatusmallocsize">c3ref/c_status_malloc_count.html#sqlitestatusmallocsize</a></li><li>SQLITE_STATUS_MEMORY_USED - <a href="c3ref/c_status_malloc_count.html#sqlitestatusmemoryused">c3ref/c_status_malloc_count.html#sqlitestatusmemoryused</a></li><li>SQLITE_STATUS_PAGECACHE_OVERFLOW - <a href="c3ref/c_status_malloc_count.html#sqlitestatuspagecacheoverflow">c3ref/c_status_malloc_count.html#sqlitestatuspagecacheoverflow</a></li><li>SQLITE_STATUS_PAGECACHE_SIZE - <a href="c3ref/c_status_malloc_count.html#sqlitestatuspagecachesize">c3ref/c_status_malloc_count.html#sqlitestatuspagecachesize</a></li><li>SQLITE_STATUS_PAGECACHE_USED - <a href="c3ref/c_status_malloc_count.html#sqlitestatuspagecacheused">c3ref/c_status_malloc_count.html#sqlitestatuspagecacheused</a></li><li>SQLITE_STATUS_PARSER_STACK - <a href="c3ref/c_status_malloc_count.html#sqlitestatusparserstack">c3ref/c_status_malloc_count.html#sqlitestatusparserstack</a></li><li>SQLITE_STATUS_SCRATCH_OVERFLOW - <a href="c3ref/c_status_malloc_count.html#sqlitestatusscratchoverflow">c3ref/c_status_malloc_count.html#sqlitestatusscratchoverflow</a></li><li>SQLITE_STATUS_SCRATCH_SIZE - <a href="c3ref/c_status_malloc_count.html#sqlitestatusscratchsize">c3ref/c_status_malloc_count.html#sqlitestatusscratchsize</a></li><li>SQLITE_STATUS_SCRATCH_USED - <a href="c3ref/c_status_malloc_count.html#sqlitestatusscratchused">c3ref/c_status_malloc_count.html#sqlitestatusscratchused</a></li><li>SQLITE_STDCALL - <a href="compile.html#stdcall">compile.html#stdcall</a></li><li>sqlite_stmt - <a href="stmt.html">stmt.html</a></li><li>SQLITE_STMT virtual table - <a href="stmt.html">stmt.html</a></li><li>SQLITE_STMTJRNL_SPILL - <a href="compile.html#stmtjrnl_spill">compile.html#stmtjrnl_spill</a></li><li>SQLITE_STMTSTATUS counter - <a href="c3ref/c_stmtstatus_counter.html">c3ref/c_stmtstatus_counter.html</a></li><li>SQLITE_STMTSTATUS counters - <a href="c3ref/c_stmtstatus_counter.html">c3ref/c_stmtstatus_counter.html</a></li><li>SQLITE_STMTSTATUS_AUTOINDEX - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusautoindex">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusautoindex</a></li><li>SQLITE_STMTSTATUS_FILTER HIT - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusfilterhit">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusfilterhit</a></li><li>SQLITE_STMTSTATUS_FILTER_HIT - <a href="c3ref/c_stmtstatus_counter.html">c3ref/c_stmtstatus_counter.html</a></li><li>SQLITE_STMTSTATUS_FILTER_MISS - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusfiltermiss">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusfiltermiss</a></li><li>SQLITE_STMTSTATUS_FULLSCAN_STEP - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusfullscanstep">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusfullscanstep</a></li><li>SQLITE_STMTSTATUS_MEMUSED - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusmemused">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusmemused</a></li><li>SQLITE_STMTSTATUS_REPREPARE - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusreprepare">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusreprepare</a></li><li>SQLITE_STMTSTATUS_RUN - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusrun">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusrun</a></li><li>SQLITE_STMTSTATUS_SORT - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatussort">c3ref/c_stmtstatus_counter.html#sqlitestmtstatussort</a></li><li>SQLITE_STMTSTATUS_VM_STEP - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusvmstep">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusvmstep</a></li><li>SQLITE_STRICT_SUBTYPE - <a href="compile.html#strict_subtype">compile.html#strict_subtype</a></li><li>SQLITE_SUBTYPE - <a href="c3ref/c_deterministic.html#sqlitesubtype">c3ref/c_deterministic.html#sqlitesubtype</a></li><li>SQLITE_SYNC_DATAONLY - <a href="c3ref/c_sync_dataonly.html">c3ref/c_sync_dataonly.html</a></li><li>SQLITE_SYNC_FULL - <a href="c3ref/c_sync_dataonly.html">c3ref/c_sync_dataonly.html</a></li><li>SQLITE_SYNC_NORMAL - <a href="c3ref/c_sync_dataonly.html">c3ref/c_sync_dataonly.html</a></li><li>SQLITE_SYSAPI - <a href="compile.html#sysapi">compile.html#sysapi</a></li><li>SQLITE_TCLAPI - <a href="compile.html#tclapi">compile.html#tclapi</a></li><li>sqlite_temp_schema - <a href="schematab.html">schematab.html</a></li><li>SQLITE_TEMP_STORE - <a href="compile.html#temp_store">compile.html#temp_store</a></li><li>SQLITE_TESTCTRL_ALWAYS - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_ASSERT - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_BITVEC_TEST - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_BYTEORDER - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_EXPLAIN_STMT - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_FAULT_INSTALL - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_FIRST - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_FK_NO_ACTION - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_IMPOSTER - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_INTERNAL_FUNCTIONS - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_ISINIT - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_ISKEYWORD - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_JSON_SELFCHECK - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_LAST - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_LOCALTIME_FAULT - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_LOGEST - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_NEVER_CORRUPT - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_OPTIMIZATIONS - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_PARSER_COVERAGE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_PENDING_BYTE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_PRNG_RESET - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_PRNG_RESTORE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_PRNG_SAVE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_PRNG_SEED - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_RESERVE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_RESULT_INTREAL - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_SCRATCHMALLOC - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_SEEK_COUNT - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_SORTER_MMAP - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_TRACEFLAGS - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_TUNE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_USELONGDOUBLE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_VDBE_COVERAGE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TEXT - <a href="c3ref/c_blob.html">c3ref/c_blob.html</a></li><li>SQLITE_THREADSAFE - <a href="compile.html#threadsafe">compile.html#threadsafe</a></li><li>SQLITE_TOOBIG - <a href="rescode.html#toobig">rescode.html#toobig</a></li><li>SQLITE_TRACE - <a href="c3ref/c_trace.html">c3ref/c_trace.html</a></li><li>SQLITE_TRACE_CLOSE - <a href="c3ref/c_trace.html#sqlitetraceclose">c3ref/c_trace.html#sqlitetraceclose</a></li><li>SQLITE_TRACE_PROFILE - <a href="c3ref/c_trace.html#sqlitetraceprofile">c3ref/c_trace.html#sqlitetraceprofile</a></li><li>SQLITE_TRACE_ROW - <a href="c3ref/c_trace.html#sqlitetracerow">c3ref/c_trace.html#sqlitetracerow</a></li><li>SQLITE_TRACE_SIZE_LIMIT - <a href="compile.html#trace_size_limit">compile.html#trace_size_limit</a></li><li>SQLITE_TRACE_STMT - <a href="c3ref/c_trace.html#sqlitetracestmt">c3ref/c_trace.html#sqlitetracestmt</a></li><li>SQLITE_TRANSACTION - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_TRANSIENT - <a href="c3ref/c_static.html">c3ref/c_static.html</a></li><li>SQLITE_TRUSTED_SCHEMA - <a href="compile.html#trusted_schema">compile.html#trusted_schema</a></li><li>SQLITE_TXN_NONE - <a href="c3ref/c_txn_none.html#sqlitetxnnone">c3ref/c_txn_none.html#sqlitetxnnone</a></li><li>SQLITE_TXN_READ - <a href="c3ref/c_txn_none.html#sqlitetxnread">c3ref/c_txn_none.html#sqlitetxnread</a></li><li>SQLITE_TXN_WRITE - <a href="c3ref/c_txn_none.html#sqlitetxnwrite">c3ref/c_txn_none.html#sqlitetxnwrite</a></li><li>sqlite_uint64 - <a href="c3ref/int64.html">c3ref/int64.html</a></li><li>SQLITE_UNTESTABLE - <a href="compile.html#untestable">compile.html#untestable</a></li><li>SQLITE_UPDATE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_USE_ALLOCA - <a href="compile.html#use_alloca">compile.html#use_alloca</a></li><li>SQLITE_USE_FCNTL_TRACE - <a href="compile.html#use_fcntl_trace">compile.html#use_fcntl_trace</a></li><li>SQLITE_USE_SEH - <a href="compile.html#use_seh">compile.html#use_seh</a></li><li>SQLITE_USE_URI - <a href="compile.html#use_uri">compile.html#use_uri</a></li><li>SQLITE_UTF8 - <a href="c3ref/c_any.html">c3ref/c_any.html</a></li><li>SQLITE_UTF16 - <a href="c3ref/c_any.html">c3ref/c_any.html</a></li><li>SQLITE_UTF16_ALIGNED - <a href="c3ref/c_any.html">c3ref/c_any.html</a></li><li>SQLITE_UTF16BE - <a href="c3ref/c_any.html">c3ref/c_any.html</a></li><li>SQLITE_UTF16LE - <a href="c3ref/c_any.html">c3ref/c_any.html</a></li><li>SQLITE_VERSION - <a href="c3ref/c_source_id.html">c3ref/c_source_id.html</a></li><li>sqlite_version - <a href="lang_corefunc.html#sqlite_version">lang_corefunc.html#sqlite_version</a></li><li>sqlite_version SQL function - <a href="lang_corefunc.html#sqlite_version">lang_corefunc.html#sqlite_version</a></li><li>SQLITE_VERSION_NUMBER - <a href="c3ref/c_source_id.html">c3ref/c_source_id.html</a></li><li>SQLITE_VTAB_CONSTRAINT_SUPPORT - <a href="c3ref/c_vtab_constraint_support.html#sqlitevtabconstraintsupport">c3ref/c_vtab_constraint_support.html#sqlitevtabconstraintsupport</a></li><li>SQLITE_VTAB_DIRECTONLY - <a href="c3ref/c_vtab_constraint_support.html#sqlitevtabdirectonly">c3ref/c_vtab_constraint_support.html#sqlitevtabdirectonly</a></li><li>SQLITE_VTAB_INNOCUOUS - <a href="c3ref/c_vtab_constraint_support.html#sqlitevtabinnocuous">c3ref/c_vtab_constraint_support.html#sqlitevtabinnocuous</a></li><li>SQLITE_VTAB_USES_ALL_SCHEMAS - <a href="c3ref/c_vtab_constraint_support.html#sqlitevtabusesallschemas">c3ref/c_vtab_constraint_support.html#sqlitevtabusesallschemas</a></li><li>SQLITE_WARNING - <a href="rescode.html#warning">rescode.html#warning</a></li><li>SQLITE_WARNING_AUTOINDEX - <a href="rescode.html#warning_autoindex">rescode.html#warning_autoindex</a></li><li>SQLITE_WIN32_DATA_DIRECTORY_TYPE - <a href="c3ref/c_win32_data_directory_type.html">c3ref/c_win32_data_directory_type.html</a></li><li>SQLITE_WIN32_HEAP_CREATE - <a href="compile.html#win32_heap_create">compile.html#win32_heap_create</a></li><li>SQLITE_WIN32_MALLOC - <a href="compile.html#win32_malloc">compile.html#win32_malloc</a></li><li>SQLITE_WIN32_MALLOC_VALIDATE - <a href="compile.html#win32_malloc_validate">compile.html#win32_malloc_validate</a></li><li>SQLITE_WIN32_TEMP_DIRECTORY_TYPE - <a href="c3ref/c_win32_data_directory_type.html">c3ref/c_win32_data_directory_type.html</a></li><li>SQLITE_ZERO_MALLOC - <a href="compile.html#zero_malloc">compile.html#zero_malloc</a></li><li>sqrt - <a href="lang_mathfunc.html#sqrt">lang_mathfunc.html#sqrt</a></li><li>sqrt SQL function - <a href="lang_mathfunc.html#sqrt">lang_mathfunc.html#sqrt</a></li><li>stale file descriptor - <a href="howtocorrupt.html#stalefd">howtocorrupt.html#stalefd</a></li><li>standard query parameters - <a href="uri.html#coreqp">uri.html#coreqp</a></li><li>statement journal - <a href="tempfiles.html#stmtjrnl">tempfiles.html#stmtjrnl</a></li><li>Statement journals - <a href="tempfiles.html#stmtjrnl">tempfiles.html#stmtjrnl</a></li><li>statement journals - <a href="tempfiles.html#stmtjrnl">tempfiles.html#stmtjrnl</a></li><li>statically linked extensions - <a href="loadext.html#statext">loadext.html#statext</a></li><li>stats - <a href="pragma.html#pragma_stats">pragma.html#pragma_stats</a></li><li>stats pragma - <a href="pragma.html#pragma_stats">pragma.html#pragma_stats</a></li><li>status method - <a href="tclsqlite.html#status">tclsqlite.html#status</a></li><li>status parameters - <a href="c3ref/c_status_malloc_count.html">c3ref/c_status_malloc_count.html</a></li><li>storage class - <a href="datatype3.html#storageclasses">datatype3.html#storageclasses</a></li><li>strategies - <a href="queryplanner.html#searching">queryplanner.html#searching</a></li><li>strftime - <a href="lang_datefunc.html#strftm">lang_datefunc.html#strftm</a></li><li>strftime SQL function - <a href="lang_datefunc.html#strftm">lang_datefunc.html#strftm</a></li><li>STRICT - <a href="stricttables.html">stricttables.html</a></li><li>STRICT table - <a href="stricttables.html">stricttables.html</a></li><li>STRICT tables - <a href="stricttables.html">stricttables.html</a></li><li>strict type checking - <a href="stricttables.html">stricttables.html</a></li><li>string_agg - <a href="lang_aggfunc.html#group_concat">lang_aggfunc.html#group_concat</a></li><li>string_agg aggregate function - <a href="lang_aggfunc.html#group_concat">lang_aggfunc.html#group_concat</a></li><li>subprograms - <a href="opcode.html#subprog">opcode.html#subprog</a></li><li>Subqueries - <a href="lang_expr.html#subq">lang_expr.html#subq</a></li><li>subquery co-routines - <a href="optoverview.html#coroutines">optoverview.html#coroutines</a></li><li>subsec modifier - <a href="lang_datefunc.html#subsec">lang_datefunc.html#subsec</a></li><li>subsecond modifier - <a href="lang_datefunc.html#subsec">lang_datefunc.html#subsec</a></li><li>substr - <a href="lang_corefunc.html#substr">lang_corefunc.html#substr</a></li><li>substr SQL function - <a href="lang_corefunc.html#substr">lang_corefunc.html#substr</a></li><li>sum - <a href="lang_aggfunc.html#sumunc">lang_aggfunc.html#sumunc</a></li><li>sum aggregate function - <a href="lang_aggfunc.html#sumunc">lang_aggfunc.html#sumunc</a></li><li>sumFunc - <a href="lang_aggfunc.html#sumunc">lang_aggfunc.html#sumunc</a></li><li>super-journal - <a href="tempfiles.html#superjrnl">tempfiles.html#superjrnl</a></li><li>swarmvtab - <a href="swarmvtab.html#overview">swarmvtab.html#overview</a></li><li>swarmvtab context - <a href="swarmvtab.html#component_table_context_values">swarmvtab.html#component_table_context_values</a></li><li>synchronous - <a href="pragma.html#pragma_synchronous">pragma.html#pragma_synchronous</a></li><li>synchronous pragma - <a href="pragma.html#pragma_synchronous">pragma.html#pragma_synchronous</a></li><li>syntax diagrams - <a href="syntaxdiagrams.html">syntaxdiagrams.html</a></li><li>table b-tree - <a href="fileformat2.html#btypes">fileformat2.html#btypes</a></li><li>table data format - <a href="fileformat2.html##sqltab">fileformat2.html##sqltab</a></li><li>table-constraint - <a href="syntax/table-constraint.html">syntax/table-constraint.html</a></li><li>table-constraint syntax diagram - <a href="syntax/table-constraint.html">syntax/table-constraint.html</a></li><li>table-options - <a href="syntax/table-options.html">syntax/table-options.html</a></li><li>table-options syntax diagram - <a href="syntax/table-options.html">syntax/table-options.html</a></li><li>table-or-subquery - <a href="syntax/table-or-subquery.html">syntax/table-or-subquery.html</a></li><li>table-or-subquery syntax diagram - <a href="syntax/table-or-subquery.html">syntax/table-or-subquery.html</a></li><li>table-valued function - <a href="vtab.html#tabfunc2">vtab.html#tabfunc2</a></li><li>table-valued functions - <a href="vtab.html#tabfunc2">vtab.html#tabfunc2</a></li><li>table-valued functions in the FROM clause - <a href="lang_select.html#tabfunc1">lang_select.html#tabfunc1</a></li><li>table_info - <a href="pragma.html#pragma_table_info">pragma.html#pragma_table_info</a></li><li>table_info pragma - <a href="pragma.html#pragma_table_info">pragma.html#pragma_table_info</a></li><li>table_list - <a href="pragma.html#pragma_table_list">pragma.html#pragma_table_list</a></li><li>table_list pragma - <a href="pragma.html#pragma_table_list">pragma.html#pragma_table_list</a></li><li>table_xinfo - <a href="pragma.html#pragma_table_xinfo">pragma.html#pragma_table_xinfo</a></li><li>table_xinfo pragma - <a href="pragma.html#pragma_table_xinfo">pragma.html#pragma_table_xinfo</a></li><li>tables_used virtual table - <a href="bytecodevtab.html">bytecodevtab.html</a></li><li>tan - <a href="lang_mathfunc.html#tan">lang_mathfunc.html#tan</a></li><li>tan SQL function - <a href="lang_mathfunc.html#tan">lang_mathfunc.html#tan</a></li><li>tanh - <a href="lang_mathfunc.html#tanh">lang_mathfunc.html#tanh</a></li><li>tanh SQL function - <a href="lang_mathfunc.html#tanh">lang_mathfunc.html#tanh</a></li><li>Tcl extension - <a href="tclsqlite.html">tclsqlite.html</a></li><li>TCL Interface - <a href="tclsqlite.html">tclsqlite.html</a></li><li>TCL interface authorizer method - <a href="tclsqlite.html#authorizer">tclsqlite.html#authorizer</a></li><li>TCL interface backup method - <a href="tclsqlite.html#backup">tclsqlite.html#backup</a></li><li>TCL interface bind_fallback method - <a href="tclsqlite.html#bind_fallback">tclsqlite.html#bind_fallback</a></li><li>TCL interface busy method - <a href="tclsqlite.html#busy">tclsqlite.html#busy</a></li><li>TCL interface cache method - <a href="tclsqlite.html#cache">tclsqlite.html#cache</a></li><li>TCL interface changes method - <a href="tclsqlite.html#changes">tclsqlite.html#changes</a></li><li>TCL interface close method - <a href="tclsqlite.html#close">tclsqlite.html#close</a></li><li>TCL interface collate method - <a href="tclsqlite.html#collate">tclsqlite.html#collate</a></li><li>TCL interface collation_needed method - <a href="tclsqlite.html#collation_needed">tclsqlite.html#collation_needed</a></li><li>TCL interface commit_hook method - <a href="tclsqlite.html#commit_hook">tclsqlite.html#commit_hook</a></li><li>TCL interface complete method - <a href="tclsqlite.html#complete">tclsqlite.html#complete</a></li><li>TCL interface config method - <a href="tclsqlite.html#config">tclsqlite.html#config</a></li><li>TCL interface copy method - <a href="tclsqlite.html#copy">tclsqlite.html#copy</a></li><li>TCL interface deserialize method - <a href="tclsqlite.html#deserialize">tclsqlite.html#deserialize</a></li><li>TCL interface enable_load_extension method - <a href="tclsqlite.html#enable_load_extension">tclsqlite.html#enable_load_extension</a></li><li>TCL interface errorcode method - <a href="tclsqlite.html#errorcode">tclsqlite.html#errorcode</a></li><li>TCL interface eval method - <a href="tclsqlite.html#eval">tclsqlite.html#eval</a></li><li>TCL interface exists method - <a href="tclsqlite.html#exists">tclsqlite.html#exists</a></li><li>TCL interface function method - <a href="tclsqlite.html#function">tclsqlite.html#function</a></li><li>TCL interface incrblob method - <a href="tclsqlite.html#incrblob">tclsqlite.html#incrblob</a></li><li>TCL interface interrupt method - <a href="tclsqlite.html#interrupt">tclsqlite.html#interrupt</a></li><li>TCL interface last_insert_rowid method - <a href="tclsqlite.html#last_insert_rowid">tclsqlite.html#last_insert_rowid</a></li><li>TCL interface nullvalue method - <a href="tclsqlite.html#nullvalue">tclsqlite.html#nullvalue</a></li><li>TCL interface onecolumn method - <a href="tclsqlite.html#onecolumn">tclsqlite.html#onecolumn</a></li><li>TCL interface preupdate method - <a href="tclsqlite.html#preupdate">tclsqlite.html#preupdate</a></li><li>TCL interface profile method - <a href="tclsqlite.html#profile">tclsqlite.html#profile</a></li><li>TCL interface progress method - <a href="tclsqlite.html#progress">tclsqlite.html#progress</a></li><li>TCL interface restore method - <a href="tclsqlite.html#restore">tclsqlite.html#restore</a></li><li>TCL interface rollback_hook method - <a href="tclsqlite.html#rollback_hook">tclsqlite.html#rollback_hook</a></li><li>TCL interface serialize method - <a href="tclsqlite.html#serialize">tclsqlite.html#serialize</a></li><li>TCL interface status method - <a href="tclsqlite.html#status">tclsqlite.html#status</a></li><li>TCL interface timeout method - <a href="tclsqlite.html#timeout">tclsqlite.html#timeout</a></li><li>TCL interface total_changes method - <a href="tclsqlite.html#total_changes">tclsqlite.html#total_changes</a></li><li>TCL interface trace method - <a href="tclsqlite.html#trace">tclsqlite.html#trace</a></li><li>TCL interface trace_v2 method - <a href="tclsqlite.html#trace_v2">tclsqlite.html#trace_v2</a></li><li>TCL interface transaction method - <a href="tclsqlite.html#transaction">tclsqlite.html#transaction</a></li><li>TCL interface unlock_notify method - <a href="tclsqlite.html#unlock_notify">tclsqlite.html#unlock_notify</a></li><li>TCL interface update_hook method - <a href="tclsqlite.html#update_hook">tclsqlite.html#update_hook</a></li><li>TCL interface version method - <a href="tclsqlite.html#version">tclsqlite.html#version</a></li><li>TCL interface wal_hook method - <a href="tclsqlite.html#wal_hook">tclsqlite.html#wal_hook</a></li><li>TCL test suite - <a href="testing.html#tcl">testing.html#tcl</a></li><li>TCL variable substitution - <a href="tclsqlite.html#varsubst">tclsqlite.html#varsubst</a></li><li>TEA tarball - <a href="download.html">download.html</a></li><li>TEMP triggers on non-TEMP tables - <a href="lang_createtrigger.html#temptrig">lang_createtrigger.html#temptrig</a></li><li>temp_store - <a href="pragma.html#pragma_temp_store">pragma.html#pragma_temp_store</a></li><li>temp_store pragma - <a href="pragma.html#pragma_temp_store">pragma.html#pragma_temp_store</a></li><li>temp_store_directory - <a href="pragma.html#pragma_temp_store_directory">pragma.html#pragma_temp_store_directory</a></li><li>temp_store_directory pragma - <a href="pragma.html#pragma_temp_store_directory">pragma.html#pragma_temp_store_directory</a></li><li>temporary databases - <a href="inmemorydb.html#temp_db">inmemorydb.html#temp_db</a></li><li>temporary directory search algorithm - <a href="tempfiles.html#tempdir">tempfiles.html#tempdir</a></li><li>temporary disk files - <a href="tempfiles.html">tempfiles.html</a></li><li>temporary tables - <a href="inmemorydb.html#temp_db">inmemorydb.html#temp_db</a></li><li>tempstore - <a href="tempfiles.html#tempstore">tempfiles.html#tempstore</a></li><li>test coverage - <a href="testing.html#coverage">testing.html#coverage</a></li><li>test harness - <a href="testing.html#harnesses">testing.html#harnesses</a></li><li>test suite - <a href="testing.html">testing.html</a></li><li>testcase macros - <a href="testing.html#testcase">testing.html#testcase</a></li><li>tested - <a href="testing.html">testing.html</a></li><li>testing - <a href="testing.html">testing.html</a></li><li>text encoding - <a href="fileformat2.html#enc">fileformat2.html#enc</a></li><li>TH3 - <a href="th3.html">th3.html</a></li><li>the - and - operators - <a href="json1.html#jptr">json1.html#jptr</a></li><li>the - operator - <a href="json1.html#jptr">json1.html#jptr</a></li><li>the .fullschema dot-command - <a href="cli.html#fullschema">cli.html#fullschema</a></li><li>the amalgamation - <a href="amalgamation.html">amalgamation.html</a></li><li>the ext3 barrier problem - <a href="lockingv3.html#ext3-barrier-problem">lockingv3.html#ext3-barrier-problem</a></li><li>The Fossil NGQP Upgrade Case Study - <a href="queryplanner-ng.html#fossilcasestudy">queryplanner-ng.html#fossilcasestudy</a></li><li>the json1 extension - <a href="json1.html">json1.html</a></li><li>the SQLITE_DBPAGE extension - <a href="dbpage.html">dbpage.html</a></li><li>the SQLITE_MEMSTAT extension - <a href="memstat.html">memstat.html</a></li><li>the SQLITE_STMT extension - <a href="stmt.html">stmt.html</a></li><li>The Use Of assert In SQLite - <a href="assert.html">assert.html</a></li><li>the xCachesize page cache method - <a href="c3ref/pcache_methods2.html#thexcachesizepagecachemethod">c3ref/pcache_methods2.html#thexcachesizepagecachemethod</a></li><li>the xCreate page cache methods - <a href="c3ref/pcache_methods2.html#thexcreatepagecachemethods">c3ref/pcache_methods2.html#thexcreatepagecachemethods</a></li><li>the xDestroy page cache method - <a href="c3ref/pcache_methods2.html#thexdestroypagecachemethod">c3ref/pcache_methods2.html#thexdestroypagecachemethod</a></li><li>the xFetch page cache methods - <a href="c3ref/pcache_methods2.html#thexfetchpagecachemethods">c3ref/pcache_methods2.html#thexfetchpagecachemethods</a></li><li>the xInit page cache method - <a href="c3ref/pcache_methods2.html#thexinitpagecachemethod">c3ref/pcache_methods2.html#thexinitpagecachemethod</a></li><li>the xPagecount page cache methods - <a href="c3ref/pcache_methods2.html#thexpagecountpagecachemethods">c3ref/pcache_methods2.html#thexpagecountpagecachemethods</a></li><li>the xRekey page cache methods - <a href="c3ref/pcache_methods2.html#thexrekeypagecachemethods">c3ref/pcache_methods2.html#thexrekeypagecachemethods</a></li><li>the xShrink page cache method - <a href="c3ref/pcache_methods2.html#thexshrinkpagecachemethod">c3ref/pcache_methods2.html#thexshrinkpagecachemethod</a></li><li>the xShutdown page cache method - <a href="c3ref/pcache_methods2.html#thexshutdownpagecachemethod">c3ref/pcache_methods2.html#thexshutdownpagecachemethod</a></li><li>the xUnpin page cache method - <a href="c3ref/pcache_methods2.html#thexunpinpagecachemethod">c3ref/pcache_methods2.html#thexunpinpagecachemethod</a></li><li>Things That Can Go Wrong - <a href="atomiccommit.html#sect_9_0">atomiccommit.html#sect_9_0</a></li><li>threading mode - <a href="threadsafe.html">threadsafe.html</a></li><li>threads - <a href="pragma.html#pragma_threads">pragma.html#pragma_threads</a></li><li>threads pragma - <a href="pragma.html#pragma_threads">pragma.html#pragma_threads</a></li><li>three test harnesses - <a href="testing.html#harnesses">testing.html#harnesses</a></li><li>time - <a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a></li><li>time shift modifiers - <a href="lang_datefunc.html#tmshf">lang_datefunc.html#tmshf</a></li><li>time SQL function - <a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a></li><li>timediff - <a href="lang_datefunc.html#tmdif">lang_datefunc.html#tmdif</a></li><li>timediff SQL function - <a href="lang_datefunc.html#tmdif">lang_datefunc.html#tmdif</a></li><li>timeout method - <a href="tclsqlite.html#timeout">tclsqlite.html#timeout</a></li><li>tokenizer - <a href="fts3.html#tokenizer">fts3.html#tokenizer</a></li><li>torn page - <a href="psow.html#tornpage">psow.html#tornpage</a></li><li>total - <a href="lang_aggfunc.html#sumunc">lang_aggfunc.html#sumunc</a></li><li>total aggregate function - <a href="lang_aggfunc.html#sumunc">lang_aggfunc.html#sumunc</a></li><li>total_changes - <a href="lang_corefunc.html#total_changes">lang_corefunc.html#total_changes</a></li><li>total_changes method - <a href="tclsqlite.html#total_changes">tclsqlite.html#total_changes</a></li><li>total_changes SQL function - <a href="lang_corefunc.html#total_changes">lang_corefunc.html#total_changes</a></li><li>trace method - <a href="tclsqlite.html#trace">tclsqlite.html#trace</a></li><li>trace_v2 method - <a href="tclsqlite.html#trace_v2">tclsqlite.html#trace_v2</a></li><li>transaction - <a href="lang_transaction.html">lang_transaction.html</a></li><li>transaction method - <a href="tclsqlite.html#transaction">tclsqlite.html#transaction</a></li><li>transaction state - <a href="c3ref/c_txn_none.html">c3ref/c_txn_none.html</a></li><li>transactional - <a href="transactional.html">transactional.html</a></li><li>treats the CROSS JOIN operator specially - <a href="lang_select.html#crossjoin">lang_select.html#crossjoin</a></li><li>trigger - <a href="lang_createtrigger.html">lang_createtrigger.html</a></li><li>triggers - <a href="lang_createtrigger.html">lang_createtrigger.html</a></li><li>trigram indexes - <a href="fts5.html#trigramidx">fts5.html#trigramidx</a></li><li>trigram tokenizer - <a href="fts5.html#trigramidx">fts5.html#trigramidx</a></li><li>trim - <a href="lang_corefunc.html#trim">lang_corefunc.html#trim</a></li><li>trim SQL function - <a href="lang_corefunc.html#trim">lang_corefunc.html#trim</a></li><li>trunc - <a href="lang_mathfunc.html#trunc">lang_mathfunc.html#trunc</a></li><li>trunc SQL function - <a href="lang_mathfunc.html#trunc">lang_mathfunc.html#trunc</a></li><li>truncate optimization - <a href="lang_delete.html#truncateopt">lang_delete.html#truncateopt</a></li><li>trusted_schema - <a href="pragma.html#pragma_trusted_schema">pragma.html#pragma_trusted_schema</a></li><li>trusted_schema pragma - <a href="pragma.html#pragma_trusted_schema">pragma.html#pragma_trusted_schema</a></li><li>type affinity - <a href="datatype3.html#affinity">datatype3.html#affinity</a></li><li>type-name - <a href="syntax/type-name.html">syntax/type-name.html</a></li><li>type-name syntax diagram - <a href="syntax/type-name.html">syntax/type-name.html</a></li><li>typeof - <a href="lang_corefunc.html#typeof">lang_corefunc.html#typeof</a></li><li>typeof SQL function - <a href="lang_corefunc.html#typeof">lang_corefunc.html#typeof</a></li><li>UINT - <a href="uintcseq.html">uintcseq.html</a></li><li>UINT collating sequence - <a href="uintcseq.html">uintcseq.html</a></li><li>undefined BEFORE trigger behavior - <a href="lang_createtrigger.html#undef_before">lang_createtrigger.html#undef_before</a></li><li>undo/redo - <a href="undoredo.html">undoredo.html</a></li><li>undoredo - <a href="undoredo.html">undoredo.html</a></li><li>unhex - <a href="lang_corefunc.html#unhex">lang_corefunc.html#unhex</a></li><li>unhex SQL function - <a href="lang_corefunc.html#unhex">lang_corefunc.html#unhex</a></li><li>unicode - <a href="lang_corefunc.html#unicode">lang_corefunc.html#unicode</a></li><li>unicode SQL function - <a href="lang_corefunc.html#unicode">lang_corefunc.html#unicode</a></li><li>unicode61 - <a href="fts3.html#unicode61">fts3.html#unicode61</a></li><li>Uniform Resource Identifier - <a href="uri.html">uri.html</a></li><li>unindexed - <a href="fts5.html#the_unindexed_column_option">fts5.html#the_unindexed_column_option</a></li><li>UNION virtual table - <a href="unionvtab.html">unionvtab.html</a></li><li>union-vtab - <a href="unionvtab.html">unionvtab.html</a></li><li>unionvtab - <a href="unionvtab.html">unionvtab.html</a></li><li>UNIQUE - <a href="lang_createtable.html#uniqueconst">lang_createtable.html#uniqueconst</a></li><li>UNIQUE constraint - <a href="lang_createtable.html#uniqueconst">lang_createtable.html#uniqueconst</a></li><li>unique constraint - <a href="lang_createtable.html#uniqueconst">lang_createtable.html#uniqueconst</a></li><li>UNIQUE constraints - <a href="lang_createtable.html#uniqueconst">lang_createtable.html#uniqueconst</a></li><li>unique index - <a href="lang_createindex.html#uniqueidx">lang_createindex.html#uniqueidx</a></li><li>unixepoch - <a href="lang_datefunc.html#uepch">lang_datefunc.html#uepch</a></li><li>unixepoch function - <a href="lang_datefunc.html#uepch">lang_datefunc.html#uepch</a></li><li>unixepoch SQL function - <a href="lang_datefunc.html#uepch">lang_datefunc.html#uepch</a></li><li>unlikely - <a href="lang_corefunc.html#unlikely">lang_corefunc.html#unlikely</a></li><li>unlikely SQL function - <a href="lang_corefunc.html#unlikely">lang_corefunc.html#unlikely</a></li><li>unlink corruption - <a href="howtocorrupt.html#unlink">howtocorrupt.html#unlink</a></li><li>unlinked database files - <a href="howtocorrupt.html#unlink">howtocorrupt.html#unlink</a></li><li>unlock_notify method - <a href="tclsqlite.html#unlock_notify">tclsqlite.html#unlock_notify</a></li><li>unprotected sqlite3_value - <a href="c3ref/value.html">c3ref/value.html</a></li><li>unsafe-testing command-line option - <a href="cli.html#testing_mode">cli.html#testing_mode</a></li><li>untrusted database files - <a href="security.html#baddb">security.html#baddb</a></li><li>UPDATE - <a href="lang_update.html">lang_update.html</a></li><li>UPDATE FROM - <a href="lang_update.html#upfrom">lang_update.html#upfrom</a></li><li>UPDATE trigger - <a href="lang_createtrigger.html">lang_createtrigger.html</a></li><li>update-stmt - <a href="syntax/update-stmt.html">syntax/update-stmt.html</a></li><li>update-stmt syntax diagram - <a href="syntax/update-stmt.html">syntax/update-stmt.html</a></li><li>update-stmt-limited - <a href="syntax/update-stmt-limited.html">syntax/update-stmt-limited.html</a></li><li>update-stmt-limited syntax diagram - <a href="syntax/update-stmt-limited.html">syntax/update-stmt-limited.html</a></li><li>update_hook method - <a href="tclsqlite.html#update_hook">tclsqlite.html#update_hook</a></li><li>UPDATEs - <a href="lang_update.html">lang_update.html</a></li><li>upluscontrol - <a href="optoverview.html#uplus">optoverview.html#uplus</a></li><li>upper - <a href="lang_corefunc.html#upper">lang_corefunc.html#upper</a></li><li>upper SQL function - <a href="lang_corefunc.html#upper">lang_corefunc.html#upper</a></li><li>UPSERT - <a href="lang_upsert.html">lang_upsert.html</a></li><li>upsert - <a href="lang_upsert.html">lang_upsert.html</a></li><li>upsert clause - <a href="lang_upsert.html">lang_upsert.html</a></li><li>UPSERT parsing ambiguity - <a href="lang_upsert.html#parseambig">lang_upsert.html#parseambig</a></li><li>upsert-clause - <a href="syntax/upsert-clause.html">syntax/upsert-clause.html</a></li><li>upsert-clause syntax diagram - <a href="syntax/upsert-clause.html">syntax/upsert-clause.html</a></li><li>URI - <a href="uri.html">uri.html</a></li><li>URI filename - <a href="uri.html">uri.html</a></li><li>URI filename examples - <a href="c3ref/open.html#urifilenameexamples">c3ref/open.html#urifilenameexamples</a></li><li>URI filenames - <a href="uri.html">uri.html</a></li><li>URI filenames in sqlite3_open - <a href="c3ref/open.html#urifilenamesinsqlite3open">c3ref/open.html#urifilenamesinsqlite3open</a></li><li>URI query parameters - <a href="uri.html#coreqp">uri.html#coreqp</a></li><li>usable size - <a href="fileformat2.html#usable_size">fileformat2.html#usable_size</a></li><li>use of shared cache mode is discouraged - <a href="sharedcache.html#dontuse">sharedcache.html#dontuse</a></li><li>user-defined window functions - <a href="windowfunctions.html#udfwinfunc">windowfunctions.html#udfwinfunc</a></li><li>user_version - <a href="pragma.html#pragma_user_version">pragma.html#pragma_user_version</a></li><li>user_version pragma - <a href="pragma.html#pragma_user_version">pragma.html#pragma_user_version</a></li><li>using SQLite for websites - <a href="whentouse.html#website">whentouse.html#website</a></li><li>Using the SQLite Online Backup API - <a href="backup.html">backup.html</a></li><li>Using the SQLite Unlock Notification Feature - <a href="unlock_notify.html">unlock_notify.html</a></li><li>utc modifier - <a href="lang_datefunc.html#localtime">lang_datefunc.html#localtime</a></li><li>VACUUM - <a href="lang_vacuum.html">lang_vacuum.html</a></li><li>vacuum - <a href="lang_vacuum.html">lang_vacuum.html</a></li><li>VACUUM INTO - <a href="lang_vacuum.html#vacuuminto">lang_vacuum.html#vacuuminto</a></li><li>vacuum-stmt - <a href="syntax/vacuum-stmt.html">syntax/vacuum-stmt.html</a></li><li>vacuum-stmt syntax diagram - <a href="syntax/vacuum-stmt.html">syntax/vacuum-stmt.html</a></li><li>value argument - <a href="json1.html#varg">json1.html#varg</a></li><li>VALUES - <a href="lang_select.html#values">lang_select.html#values</a></li><li>VALUES clause - <a href="lang_select.html#values">lang_select.html#values</a></li><li>variable-length integer - <a href="fileformat2.html#varint">fileformat2.html#varint</a></li><li>varint - <a href="fileformat2.html#varint">fileformat2.html#varint</a></li><li>VDBE - <a href="opcode.html">opcode.html</a></li><li>vdbe_addoptrace - <a href="pragma.html#pragma_vdbe_addoptrace">pragma.html#pragma_vdbe_addoptrace</a></li><li>vdbe_addoptrace pragma - <a href="pragma.html#pragma_vdbe_addoptrace">pragma.html#pragma_vdbe_addoptrace</a></li><li>vdbe_debug - <a href="pragma.html#pragma_vdbe_debug">pragma.html#pragma_vdbe_debug</a></li><li>vdbe_debug pragma - <a href="pragma.html#pragma_vdbe_debug">pragma.html#pragma_vdbe_debug</a></li><li>vdbe_listing - <a href="pragma.html#pragma_vdbe_listing">pragma.html#pragma_vdbe_listing</a></li><li>vdbe_listing pragma - <a href="pragma.html#pragma_vdbe_listing">pragma.html#pragma_vdbe_listing</a></li><li>vdbe_trace - <a href="pragma.html#pragma_vdbe_trace">pragma.html#pragma_vdbe_trace</a></li><li>vdbe_trace pragma - <a href="pragma.html#pragma_vdbe_trace">pragma.html#pragma_vdbe_trace</a></li><li>vectors - <a href="rowvalue.html">rowvalue.html</a></li><li>Version 3.0.0 - <a href="releaselog/3_0_0.html">releaselog/3_0_0.html</a></li><li>version 3.0.0 - <a href="releaselog/3_0_0.html">releaselog/3_0_0.html</a></li><li>Version 3.0.1 - <a href="releaselog/3_0_1.html">releaselog/3_0_1.html</a></li><li>version 3.0.1 - <a href="releaselog/3_0_1.html">releaselog/3_0_1.html</a></li><li>Version 3.0.2 - <a href="releaselog/3_0_2.html">releaselog/3_0_2.html</a></li><li>version 3.0.2 - <a href="releaselog/3_0_2.html">releaselog/3_0_2.html</a></li><li>Version 3.0.3 - <a href="releaselog/3_0_3.html">releaselog/3_0_3.html</a></li><li>version 3.0.3 - <a href="releaselog/3_0_3.html">releaselog/3_0_3.html</a></li><li>Version 3.0.4 - <a href="releaselog/3_0_4.html">releaselog/3_0_4.html</a></li><li>version 3.0.4 - <a href="releaselog/3_0_4.html">releaselog/3_0_4.html</a></li><li>Version 3.0.5 - <a href="releaselog/3_0_5.html">releaselog/3_0_5.html</a></li><li>version 3.0.5 - <a href="releaselog/3_0_5.html">releaselog/3_0_5.html</a></li><li>Version 3.0.6 - <a href="releaselog/3_0_6.html">releaselog/3_0_6.html</a></li><li>version 3.0.6 - <a href="releaselog/3_0_6.html">releaselog/3_0_6.html</a></li><li>Version 3.0.7 - <a href="releaselog/3_0_7.html">releaselog/3_0_7.html</a></li><li>version 3.0.7 - <a href="releaselog/3_0_7.html">releaselog/3_0_7.html</a></li><li>Version 3.0.8 - <a href="releaselog/3_0_8.html">releaselog/3_0_8.html</a></li><li>version 3.0.8 - <a href="releaselog/3_0_8.html">releaselog/3_0_8.html</a></li><li>Version 3.1.0 - <a href="releaselog/3_1_0.html">releaselog/3_1_0.html</a></li><li>version 3.1.0 - <a href="releaselog/3_1_0.html">releaselog/3_1_0.html</a></li><li>Version 3.1.1 - <a href="releaselog/3_1_1.html">releaselog/3_1_1.html</a></li><li>version 3.1.1 - <a href="releaselog/3_1_1.html">releaselog/3_1_1.html</a></li><li>Version 3.1.2 - <a href="releaselog/3_1_2.html">releaselog/3_1_2.html</a></li><li>version 3.1.2 - <a href="releaselog/3_1_2.html">releaselog/3_1_2.html</a></li><li>Version 3.1.3 - <a href="releaselog/3_1_3.html">releaselog/3_1_3.html</a></li><li>version 3.1.3 - <a href="releaselog/3_1_3.html">releaselog/3_1_3.html</a></li><li>Version 3.1.4 - <a href="releaselog/3_1_4.html">releaselog/3_1_4.html</a></li><li>version 3.1.4 - <a href="releaselog/3_1_4.html">releaselog/3_1_4.html</a></li><li>Version 3.1.5 - <a href="releaselog/3_1_5.html">releaselog/3_1_5.html</a></li><li>version 3.1.5 - <a href="releaselog/3_1_5.html">releaselog/3_1_5.html</a></li><li>Version 3.1.6 - <a href="releaselog/3_1_6.html">releaselog/3_1_6.html</a></li><li>version 3.1.6 - <a href="releaselog/3_1_6.html">releaselog/3_1_6.html</a></li><li>Version 3.2.0 - <a href="releaselog/3_2_0.html">releaselog/3_2_0.html</a></li><li>version 3.2.0 - <a href="releaselog/3_2_0.html">releaselog/3_2_0.html</a></li><li>Version 3.2.1 - <a href="releaselog/3_2_1.html">releaselog/3_2_1.html</a></li><li>version 3.2.1 - <a href="releaselog/3_2_1.html">releaselog/3_2_1.html</a></li><li>Version 3.2.2 - <a href="releaselog/3_2_2.html">releaselog/3_2_2.html</a></li><li>version 3.2.2 - <a href="releaselog/3_2_2.html">releaselog/3_2_2.html</a></li><li>Version 3.2.3 - <a href="releaselog/3_2_3.html">releaselog/3_2_3.html</a></li><li>version 3.2.3 - <a href="releaselog/3_2_3.html">releaselog/3_2_3.html</a></li><li>Version 3.2.4 - <a href="releaselog/3_2_4.html">releaselog/3_2_4.html</a></li><li>version 3.2.4 - <a href="releaselog/3_2_4.html">releaselog/3_2_4.html</a></li><li>Version 3.2.5 - <a href="releaselog/3_2_5.html">releaselog/3_2_5.html</a></li><li>version 3.2.5 - <a href="releaselog/3_2_5.html">releaselog/3_2_5.html</a></li><li>Version 3.2.6 - <a href="releaselog/3_2_6.html">releaselog/3_2_6.html</a></li><li>version 3.2.6 - <a href="releaselog/3_2_6.html">releaselog/3_2_6.html</a></li><li>Version 3.2.7 - <a href="releaselog/3_2_7.html">releaselog/3_2_7.html</a></li><li>version 3.2.7 - <a href="releaselog/3_2_7.html">releaselog/3_2_7.html</a></li><li>Version 3.2.8 - <a href="releaselog/3_2_8.html">releaselog/3_2_8.html</a></li><li>version 3.2.8 - <a href="releaselog/3_2_8.html">releaselog/3_2_8.html</a></li><li>Version 3.3.0 - <a href="releaselog/3_3_0.html">releaselog/3_3_0.html</a></li><li>version 3.3.0 - <a href="releaselog/3_3_0.html">releaselog/3_3_0.html</a></li><li>Version 3.3.0.0 - <a href="releaselog/3_3_0.html">releaselog/3_3_0.html</a></li><li>version 3.3.0.0 - <a href="releaselog/3_3_0.html">releaselog/3_3_0.html</a></li><li>Version 3.3.1 - <a href="releaselog/3_3_1.html">releaselog/3_3_1.html</a></li><li>version 3.3.1 - <a href="releaselog/3_3_1.html">releaselog/3_3_1.html</a></li><li>Version 3.3.1.0 - <a href="releaselog/3_3_1.html">releaselog/3_3_1.html</a></li><li>version 3.3.1.0 - <a href="releaselog/3_3_1.html">releaselog/3_3_1.html</a></li><li>Version 3.3.2 - <a href="releaselog/3_3_2.html">releaselog/3_3_2.html</a></li><li>version 3.3.2 - <a href="releaselog/3_3_2.html">releaselog/3_3_2.html</a></li><li>Version 3.3.2.0 - <a href="releaselog/3_3_2.html">releaselog/3_3_2.html</a></li><li>version 3.3.2.0 - <a href="releaselog/3_3_2.html">releaselog/3_3_2.html</a></li><li>Version 3.3.3 - <a href="releaselog/3_3_3.html">releaselog/3_3_3.html</a></li><li>version 3.3.3 - <a href="releaselog/3_3_3.html">releaselog/3_3_3.html</a></li><li>Version 3.3.3.0 - <a href="releaselog/3_3_3.html">releaselog/3_3_3.html</a></li><li>version 3.3.3.0 - <a href="releaselog/3_3_3.html">releaselog/3_3_3.html</a></li><li>Version 3.3.4 - <a href="releaselog/3_3_4.html">releaselog/3_3_4.html</a></li><li>version 3.3.4 - <a href="releaselog/3_3_4.html">releaselog/3_3_4.html</a></li><li>Version 3.3.4.0 - <a href="releaselog/3_3_4.html">releaselog/3_3_4.html</a></li><li>version 3.3.4.0 - <a href="releaselog/3_3_4.html">releaselog/3_3_4.html</a></li><li>Version 3.3.5 - <a href="releaselog/3_3_5.html">releaselog/3_3_5.html</a></li><li>version 3.3.5 - <a href="releaselog/3_3_5.html">releaselog/3_3_5.html</a></li><li>Version 3.3.5.0 - <a href="releaselog/3_3_5.html">releaselog/3_3_5.html</a></li><li>version 3.3.5.0 - <a href="releaselog/3_3_5.html">releaselog/3_3_5.html</a></li><li>Version 3.3.6 - <a href="releaselog/3_3_6.html">releaselog/3_3_6.html</a></li><li>version 3.3.6 - <a href="releaselog/3_3_6.html">releaselog/3_3_6.html</a></li><li>Version 3.3.6.0 - <a href="releaselog/3_3_6.html">releaselog/3_3_6.html</a></li><li>version 3.3.6.0 - <a href="releaselog/3_3_6.html">releaselog/3_3_6.html</a></li><li>Version 3.3.7 - <a href="releaselog/3_3_7.html">releaselog/3_3_7.html</a></li><li>version 3.3.7 - <a href="releaselog/3_3_7.html">releaselog/3_3_7.html</a></li><li>Version 3.3.7.0 - <a href="releaselog/3_3_7.html">releaselog/3_3_7.html</a></li><li>version 3.3.7.0 - <a href="releaselog/3_3_7.html">releaselog/3_3_7.html</a></li><li>Version 3.3.8 - <a href="releaselog/3_3_8.html">releaselog/3_3_8.html</a></li><li>version 3.3.8 - <a href="releaselog/3_3_8.html">releaselog/3_3_8.html</a></li><li>Version 3.3.8.0 - <a href="releaselog/3_3_8.html">releaselog/3_3_8.html</a></li><li>version 3.3.8.0 - <a href="releaselog/3_3_8.html">releaselog/3_3_8.html</a></li><li>Version 3.3.9 - <a href="releaselog/3_3_9.html">releaselog/3_3_9.html</a></li><li>version 3.3.9 - <a href="releaselog/3_3_9.html">releaselog/3_3_9.html</a></li><li>Version 3.3.9.0 - <a href="releaselog/3_3_9.html">releaselog/3_3_9.html</a></li><li>version 3.3.9.0 - <a href="releaselog/3_3_9.html">releaselog/3_3_9.html</a></li><li>Version 3.3.10 - <a href="releaselog/3_3_10.html">releaselog/3_3_10.html</a></li><li>version 3.3.10 - <a href="releaselog/3_3_10.html">releaselog/3_3_10.html</a></li><li>Version 3.3.10.0 - <a href="releaselog/3_3_10.html">releaselog/3_3_10.html</a></li><li>version 3.3.10.0 - <a href="releaselog/3_3_10.html">releaselog/3_3_10.html</a></li><li>Version 3.3.11 - <a href="releaselog/3_3_11.html">releaselog/3_3_11.html</a></li><li>version 3.3.11 - <a href="releaselog/3_3_11.html">releaselog/3_3_11.html</a></li><li>Version 3.3.11.0 - <a href="releaselog/3_3_11.html">releaselog/3_3_11.html</a></li><li>version 3.3.11.0 - <a href="releaselog/3_3_11.html">releaselog/3_3_11.html</a></li><li>Version 3.3.12 - <a href="releaselog/3_3_12.html">releaselog/3_3_12.html</a></li><li>version 3.3.12 - <a href="releaselog/3_3_12.html">releaselog/3_3_12.html</a></li><li>Version 3.3.12.0 - <a href="releaselog/3_3_12.html">releaselog/3_3_12.html</a></li><li>version 3.3.12.0 - <a href="releaselog/3_3_12.html">releaselog/3_3_12.html</a></li><li>Version 3.3.13 - <a href="releaselog/3_3_13.html">releaselog/3_3_13.html</a></li><li>version 3.3.13 - <a href="releaselog/3_3_13.html">releaselog/3_3_13.html</a></li><li>Version 3.3.13.0 - <a href="releaselog/3_3_13.html">releaselog/3_3_13.html</a></li><li>version 3.3.13.0 - <a href="releaselog/3_3_13.html">releaselog/3_3_13.html</a></li><li>Version 3.3.14 - <a href="releaselog/3_3_14.html">releaselog/3_3_14.html</a></li><li>version 3.3.14 - <a href="releaselog/3_3_14.html">releaselog/3_3_14.html</a></li><li>Version 3.3.14.0 - <a href="releaselog/3_3_14.html">releaselog/3_3_14.html</a></li><li>version 3.3.14.0 - <a href="releaselog/3_3_14.html">releaselog/3_3_14.html</a></li><li>Version 3.3.15 - <a href="releaselog/3_3_15.html">releaselog/3_3_15.html</a></li><li>version 3.3.15 - <a href="releaselog/3_3_15.html">releaselog/3_3_15.html</a></li><li>Version 3.3.15.0 - <a href="releaselog/3_3_15.html">releaselog/3_3_15.html</a></li><li>version 3.3.15.0 - <a href="releaselog/3_3_15.html">releaselog/3_3_15.html</a></li><li>Version 3.3.16 - <a href="releaselog/3_3_16.html">releaselog/3_3_16.html</a></li><li>version 3.3.16 - <a href="releaselog/3_3_16.html">releaselog/3_3_16.html</a></li><li>Version 3.3.16.0 - <a href="releaselog/3_3_16.html">releaselog/3_3_16.html</a></li><li>version 3.3.16.0 - <a href="releaselog/3_3_16.html">releaselog/3_3_16.html</a></li><li>Version 3.3.17 - <a href="releaselog/3_3_17.html">releaselog/3_3_17.html</a></li><li>version 3.3.17 - <a href="releaselog/3_3_17.html">releaselog/3_3_17.html</a></li><li>Version 3.3.17.0 - <a href="releaselog/3_3_17.html">releaselog/3_3_17.html</a></li><li>version 3.3.17.0 - <a href="releaselog/3_3_17.html">releaselog/3_3_17.html</a></li><li>Version 3.4.0 - <a href="releaselog/3_4_0.html">releaselog/3_4_0.html</a></li><li>version 3.4.0 - <a href="releaselog/3_4_0.html">releaselog/3_4_0.html</a></li><li>Version 3.4.1 - <a href="releaselog/3_4_1.html">releaselog/3_4_1.html</a></li><li>version 3.4.1 - <a href="releaselog/3_4_1.html">releaselog/3_4_1.html</a></li><li>Version 3.4.2 - <a href="releaselog/3_4_2.html">releaselog/3_4_2.html</a></li><li>version 3.4.2 - <a href="releaselog/3_4_2.html">releaselog/3_4_2.html</a></li><li>Version 3.5.0 - <a href="releaselog/3_5_0.html">releaselog/3_5_0.html</a></li><li>version 3.5.0 - <a href="releaselog/3_5_0.html">releaselog/3_5_0.html</a></li><li>Version 3.5.1 - <a href="releaselog/3_5_1.html">releaselog/3_5_1.html</a></li><li>version 3.5.1 - <a href="releaselog/3_5_1.html">releaselog/3_5_1.html</a></li><li>Version 3.5.2 - <a href="releaselog/3_5_2.html">releaselog/3_5_2.html</a></li><li>version 3.5.2 - <a href="releaselog/3_5_2.html">releaselog/3_5_2.html</a></li><li>Version 3.5.3 - <a href="releaselog/3_5_3.html">releaselog/3_5_3.html</a></li><li>version 3.5.3 - <a href="releaselog/3_5_3.html">releaselog/3_5_3.html</a></li><li>Version 3.5.4 - <a href="releaselog/3_5_4.html">releaselog/3_5_4.html</a></li><li>version 3.5.4 - <a href="releaselog/3_5_4.html">releaselog/3_5_4.html</a></li><li>Version 3.5.5 - <a href="releaselog/3_5_5.html">releaselog/3_5_5.html</a></li><li>version 3.5.5 - <a href="releaselog/3_5_5.html">releaselog/3_5_5.html</a></li><li>Version 3.5.6 - <a href="releaselog/3_5_6.html">releaselog/3_5_6.html</a></li><li>version 3.5.6 - <a href="releaselog/3_5_6.html">releaselog/3_5_6.html</a></li><li>Version 3.5.7 - <a href="releaselog/3_5_7.html">releaselog/3_5_7.html</a></li><li>version 3.5.7 - <a href="releaselog/3_5_7.html">releaselog/3_5_7.html</a></li><li>Version 3.5.8 - <a href="releaselog/3_5_8.html">releaselog/3_5_8.html</a></li><li>version 3.5.8 - <a href="releaselog/3_5_8.html">releaselog/3_5_8.html</a></li><li>Version 3.5.9 - <a href="releaselog/3_5_9.html">releaselog/3_5_9.html</a></li><li>version 3.5.9 - <a href="releaselog/3_5_9.html">releaselog/3_5_9.html</a></li><li>Version 3.6.0 - <a href="releaselog/3_6_0.html">releaselog/3_6_0.html</a></li><li>version 3.6.0 - <a href="releaselog/3_6_0.html">releaselog/3_6_0.html</a></li><li>Version 3.6.1 - <a href="releaselog/3_6_1.html">releaselog/3_6_1.html</a></li><li>version 3.6.1 - <a href="releaselog/3_6_1.html">releaselog/3_6_1.html</a></li><li>Version 3.6.2 - <a href="releaselog/3_6_2.html">releaselog/3_6_2.html</a></li><li>version 3.6.2 - <a href="releaselog/3_6_2.html">releaselog/3_6_2.html</a></li><li>Version 3.6.3 - <a href="releaselog/3_6_3.html">releaselog/3_6_3.html</a></li><li>version 3.6.3 - <a href="releaselog/3_6_3.html">releaselog/3_6_3.html</a></li><li>Version 3.6.4 - <a href="releaselog/3_6_4.html">releaselog/3_6_4.html</a></li><li>version 3.6.4 - <a href="releaselog/3_6_4.html">releaselog/3_6_4.html</a></li><li>Version 3.6.5 - <a href="releaselog/3_6_5.html">releaselog/3_6_5.html</a></li><li>version 3.6.5 - <a href="releaselog/3_6_5.html">releaselog/3_6_5.html</a></li><li>Version 3.6.6 - <a href="releaselog/3_6_6.html">releaselog/3_6_6.html</a></li><li>version 3.6.6 - <a href="releaselog/3_6_6.html">releaselog/3_6_6.html</a></li><li>Version 3.6.6.1 - <a href="releaselog/3_6_6_1.html">releaselog/3_6_6_1.html</a></li><li>version 3.6.6.1 - <a href="releaselog/3_6_6_1.html">releaselog/3_6_6_1.html</a></li><li>Version 3.6.6.2 - <a href="releaselog/3_6_6_2.html">releaselog/3_6_6_2.html</a></li><li>version 3.6.6.2 - <a href="releaselog/3_6_6_2.html">releaselog/3_6_6_2.html</a></li><li>Version 3.6.7 - <a href="releaselog/3_6_7.html">releaselog/3_6_7.html</a></li><li>version 3.6.7 - <a href="releaselog/3_6_7.html">releaselog/3_6_7.html</a></li><li>Version 3.6.8 - <a href="releaselog/3_6_8.html">releaselog/3_6_8.html</a></li><li>version 3.6.8 - <a href="releaselog/3_6_8.html">releaselog/3_6_8.html</a></li><li>Version 3.6.9 - <a href="releaselog/3_6_9.html">releaselog/3_6_9.html</a></li><li>version 3.6.9 - <a href="releaselog/3_6_9.html">releaselog/3_6_9.html</a></li><li>Version 3.6.10 - <a href="releaselog/3_6_10.html">releaselog/3_6_10.html</a></li><li>version 3.6.10 - <a href="releaselog/3_6_10.html">releaselog/3_6_10.html</a></li><li>Version 3.6.11 - <a href="releaselog/3_6_11.html">releaselog/3_6_11.html</a></li><li>version 3.6.11 - <a href="releaselog/3_6_11.html">releaselog/3_6_11.html</a></li><li>Version 3.6.12 - <a href="releaselog/3_6_12.html">releaselog/3_6_12.html</a></li><li>version 3.6.12 - <a href="releaselog/3_6_12.html">releaselog/3_6_12.html</a></li><li>Version 3.6.13 - <a href="releaselog/3_6_13.html">releaselog/3_6_13.html</a></li><li>version 3.6.13 - <a href="releaselog/3_6_13.html">releaselog/3_6_13.html</a></li><li>Version 3.6.14 - <a href="releaselog/3_6_14.html">releaselog/3_6_14.html</a></li><li>version 3.6.14 - <a href="releaselog/3_6_14.html">releaselog/3_6_14.html</a></li><li>Version 3.6.14.1 - <a href="releaselog/3_6_14_1.html">releaselog/3_6_14_1.html</a></li><li>version 3.6.14.1 - <a href="releaselog/3_6_14_1.html">releaselog/3_6_14_1.html</a></li><li>Version 3.6.14.2 - <a href="releaselog/3_6_14_2.html">releaselog/3_6_14_2.html</a></li><li>version 3.6.14.2 - <a href="releaselog/3_6_14_2.html">releaselog/3_6_14_2.html</a></li><li>Version 3.6.15 - <a href="releaselog/3_6_15.html">releaselog/3_6_15.html</a></li><li>version 3.6.15 - <a href="releaselog/3_6_15.html">releaselog/3_6_15.html</a></li><li>Version 3.6.16 - <a href="releaselog/3_6_16.html">releaselog/3_6_16.html</a></li><li>version 3.6.16 - <a href="releaselog/3_6_16.html">releaselog/3_6_16.html</a></li><li>Version 3.6.16.1 - <a href="releaselog/3_6_16_1.html">releaselog/3_6_16_1.html</a></li><li>version 3.6.16.1 - <a href="releaselog/3_6_16_1.html">releaselog/3_6_16_1.html</a></li><li>Version 3.6.17 - <a href="releaselog/3_6_17.html">releaselog/3_6_17.html</a></li><li>version 3.6.17 - <a href="releaselog/3_6_17.html">releaselog/3_6_17.html</a></li><li>Version 3.6.18 - <a href="releaselog/3_6_18.html">releaselog/3_6_18.html</a></li><li>version 3.6.18 - <a href="releaselog/3_6_18.html">releaselog/3_6_18.html</a></li><li>Version 3.6.19 - <a href="releaselog/3_6_19.html">releaselog/3_6_19.html</a></li><li>version 3.6.19 - <a href="releaselog/3_6_19.html">releaselog/3_6_19.html</a></li><li>Version 3.6.20 - <a href="releaselog/3_6_20.html">releaselog/3_6_20.html</a></li><li>version 3.6.20 - <a href="releaselog/3_6_20.html">releaselog/3_6_20.html</a></li><li>Version 3.6.21 - <a href="releaselog/3_6_21.html">releaselog/3_6_21.html</a></li><li>version 3.6.21 - <a href="releaselog/3_6_21.html">releaselog/3_6_21.html</a></li><li>Version 3.6.22 - <a href="releaselog/3_6_22.html">releaselog/3_6_22.html</a></li><li>version 3.6.22 - <a href="releaselog/3_6_22.html">releaselog/3_6_22.html</a></li><li>Version 3.6.23 - <a href="releaselog/3_6_23.html">releaselog/3_6_23.html</a></li><li>version 3.6.23 - <a href="releaselog/3_6_23.html">releaselog/3_6_23.html</a></li><li>Version 3.6.23.1 - <a href="releaselog/3_6_23_1.html">releaselog/3_6_23_1.html</a></li><li>version 3.6.23.1 - <a href="releaselog/3_6_23_1.html">releaselog/3_6_23_1.html</a></li><li>Version 3.6.23.1.0 - <a href="releaselog/3_6_23_1.html">releaselog/3_6_23_1.html</a></li><li>version 3.6.23.1.0 - <a href="releaselog/3_6_23_1.html">releaselog/3_6_23_1.html</a></li><li>Version 3.7.0 - <a href="releaselog/3_7_0.html">releaselog/3_7_0.html</a></li><li>version 3.7.0 - <a href="releaselog/3_7_0.html">releaselog/3_7_0.html</a></li><li>Version 3.7.0.1 - <a href="releaselog/3_7_0_1.html">releaselog/3_7_0_1.html</a></li><li>version 3.7.0.1 - <a href="releaselog/3_7_0_1.html">releaselog/3_7_0_1.html</a></li><li>Version 3.7.1 - <a href="releaselog/3_7_1.html">releaselog/3_7_1.html</a></li><li>version 3.7.1 - <a href="releaselog/3_7_1.html">releaselog/3_7_1.html</a></li><li>Version 3.7.2 - <a href="releaselog/3_7_2.html">releaselog/3_7_2.html</a></li><li>version 3.7.2 - <a href="releaselog/3_7_2.html">releaselog/3_7_2.html</a></li><li>Version 3.7.3 - <a href="releaselog/3_7_3.html">releaselog/3_7_3.html</a></li><li>version 3.7.3 - <a href="releaselog/3_7_3.html">releaselog/3_7_3.html</a></li><li>Version 3.7.4 - <a href="releaselog/3_7_4.html">releaselog/3_7_4.html</a></li><li>version 3.7.4 - <a href="releaselog/3_7_4.html">releaselog/3_7_4.html</a></li><li>Version 3.7.5 - <a href="releaselog/3_7_5.html">releaselog/3_7_5.html</a></li><li>version 3.7.5 - <a href="releaselog/3_7_5.html">releaselog/3_7_5.html</a></li><li>Version 3.7.6 - <a href="releaselog/3_7_6.html">releaselog/3_7_6.html</a></li><li>version 3.7.6 - <a href="releaselog/3_7_6.html">releaselog/3_7_6.html</a></li><li>Version 3.7.6.1 - <a href="releaselog/3_7_6_1.html">releaselog/3_7_6_1.html</a></li><li>version 3.7.6.1 - <a href="releaselog/3_7_6_1.html">releaselog/3_7_6_1.html</a></li><li>Version 3.7.6.2 - <a href="releaselog/3_7_6_2.html">releaselog/3_7_6_2.html</a></li><li>version 3.7.6.2 - <a href="releaselog/3_7_6_2.html">releaselog/3_7_6_2.html</a></li><li>Version 3.7.6.3 - <a href="releaselog/3_7_6_3.html">releaselog/3_7_6_3.html</a></li><li>version 3.7.6.3 - <a href="releaselog/3_7_6_3.html">releaselog/3_7_6_3.html</a></li><li>Version 3.7.7 - <a href="releaselog/3_7_7.html">releaselog/3_7_7.html</a></li><li>version 3.7.7 - <a href="releaselog/3_7_7.html">releaselog/3_7_7.html</a></li><li>Version 3.7.7.1 - <a href="releaselog/3_7_7_1.html">releaselog/3_7_7_1.html</a></li><li>version 3.7.7.1 - <a href="releaselog/3_7_7_1.html">releaselog/3_7_7_1.html</a></li><li>Version 3.7.8 - <a href="releaselog/3_7_8.html">releaselog/3_7_8.html</a></li><li>version 3.7.8 - <a href="releaselog/3_7_8.html">releaselog/3_7_8.html</a></li><li>Version 3.7.9 - <a href="releaselog/3_7_9.html">releaselog/3_7_9.html</a></li><li>version 3.7.9 - <a href="releaselog/3_7_9.html">releaselog/3_7_9.html</a></li><li>Version 3.7.10 - <a href="releaselog/3_7_10.html">releaselog/3_7_10.html</a></li><li>version 3.7.10 - <a href="releaselog/3_7_10.html">releaselog/3_7_10.html</a></li><li>Version 3.7.11 - <a href="releaselog/3_7_11.html">releaselog/3_7_11.html</a></li><li>version 3.7.11 - <a href="releaselog/3_7_11.html">releaselog/3_7_11.html</a></li><li>Version 3.7.12 - <a href="releaselog/3_7_12.html">releaselog/3_7_12.html</a></li><li>version 3.7.12 - <a href="releaselog/3_7_12.html">releaselog/3_7_12.html</a></li><li>Version 3.7.12.1 - <a href="releaselog/3_7_12_1.html">releaselog/3_7_12_1.html</a></li><li>version 3.7.12.1 - <a href="releaselog/3_7_12_1.html">releaselog/3_7_12_1.html</a></li><li>Version 3.7.13 - <a href="releaselog/3_7_13.html">releaselog/3_7_13.html</a></li><li>version 3.7.13 - <a href="releaselog/3_7_13.html">releaselog/3_7_13.html</a></li><li>Version 3.7.14 - <a href="releaselog/3_7_14.html">releaselog/3_7_14.html</a></li><li>version 3.7.14 - <a href="releaselog/3_7_14.html">releaselog/3_7_14.html</a></li><li>Version 3.7.14.1 - <a href="releaselog/3_7_14_1.html">releaselog/3_7_14_1.html</a></li><li>version 3.7.14.1 - <a href="releaselog/3_7_14_1.html">releaselog/3_7_14_1.html</a></li><li>Version 3.7.15 - <a href="releaselog/3_7_15.html">releaselog/3_7_15.html</a></li><li>version 3.7.15 - <a href="releaselog/3_7_15.html">releaselog/3_7_15.html</a></li><li>Version 3.7.15.1 - <a href="releaselog/3_7_15_1.html">releaselog/3_7_15_1.html</a></li><li>version 3.7.15.1 - <a href="releaselog/3_7_15_1.html">releaselog/3_7_15_1.html</a></li><li>Version 3.7.15.2 - <a href="releaselog/3_7_15_2.html">releaselog/3_7_15_2.html</a></li><li>version 3.7.15.2 - <a href="releaselog/3_7_15_2.html">releaselog/3_7_15_2.html</a></li><li>Version 3.7.16 - <a href="releaselog/3_7_16.html">releaselog/3_7_16.html</a></li><li>version 3.7.16 - <a href="releaselog/3_7_16.html">releaselog/3_7_16.html</a></li><li>Version 3.7.16.1 - <a href="releaselog/3_7_16_1.html">releaselog/3_7_16_1.html</a></li><li>version 3.7.16.1 - <a href="releaselog/3_7_16_1.html">releaselog/3_7_16_1.html</a></li><li>Version 3.7.16.2 - <a href="releaselog/3_7_16_2.html">releaselog/3_7_16_2.html</a></li><li>version 3.7.16.2 - <a href="releaselog/3_7_16_2.html">releaselog/3_7_16_2.html</a></li><li>Version 3.7.17 - <a href="releaselog/3_7_17.html">releaselog/3_7_17.html</a></li><li>version 3.7.17 - <a href="releaselog/3_7_17.html">releaselog/3_7_17.html</a></li><li>Version 3.8.0 - <a href="releaselog/3_8_0.html">releaselog/3_8_0.html</a></li><li>version 3.8.0 - <a href="releaselog/3_8_0.html">releaselog/3_8_0.html</a></li><li>Version 3.8.0.1 - <a href="releaselog/3_8_0_1.html">releaselog/3_8_0_1.html</a></li><li>version 3.8.0.1 - <a href="releaselog/3_8_0_1.html">releaselog/3_8_0_1.html</a></li><li>Version 3.8.0.2 - <a href="releaselog/3_8_0_2.html">releaselog/3_8_0_2.html</a></li><li>version 3.8.0.2 - <a href="releaselog/3_8_0_2.html">releaselog/3_8_0_2.html</a></li><li>Version 3.8.1 - <a href="releaselog/3_8_1.html">releaselog/3_8_1.html</a></li><li>version 3.8.1 - <a href="releaselog/3_8_1.html">releaselog/3_8_1.html</a></li><li>Version 3.8.2 - <a href="releaselog/3_8_2.html">releaselog/3_8_2.html</a></li><li>version 3.8.2 - <a href="releaselog/3_8_2.html">releaselog/3_8_2.html</a></li><li>Version 3.8.3 - <a href="releaselog/3_8_3.html">releaselog/3_8_3.html</a></li><li>version 3.8.3 - <a href="releaselog/3_8_3.html">releaselog/3_8_3.html</a></li><li>Version 3.8.3.1 - <a href="releaselog/3_8_3_1.html">releaselog/3_8_3_1.html</a></li><li>version 3.8.3.1 - <a href="releaselog/3_8_3_1.html">releaselog/3_8_3_1.html</a></li><li>Version 3.8.3.1.0 - <a href="releaselog/3_8_3_1.html">releaselog/3_8_3_1.html</a></li><li>version 3.8.3.1.0 - <a href="releaselog/3_8_3_1.html">releaselog/3_8_3_1.html</a></li><li>Version 3.8.4 - <a href="releaselog/3_8_4.html">releaselog/3_8_4.html</a></li><li>version 3.8.4 - <a href="releaselog/3_8_4.html">releaselog/3_8_4.html</a></li><li>Version 3.8.4.1 - <a href="releaselog/3_8_4_1.html">releaselog/3_8_4_1.html</a></li><li>version 3.8.4.1 - <a href="releaselog/3_8_4_1.html">releaselog/3_8_4_1.html</a></li><li>Version 3.8.4.2 - <a href="releaselog/3_8_4_2.html">releaselog/3_8_4_2.html</a></li><li>version 3.8.4.2 - <a href="releaselog/3_8_4_2.html">releaselog/3_8_4_2.html</a></li><li>Version 3.8.4.3 - <a href="releaselog/3_8_4_3.html">releaselog/3_8_4_3.html</a></li><li>version 3.8.4.3 - <a href="releaselog/3_8_4_3.html">releaselog/3_8_4_3.html</a></li><li>Version 3.8.5 - <a href="releaselog/3_8_5.html">releaselog/3_8_5.html</a></li><li>version 3.8.5 - <a href="releaselog/3_8_5.html">releaselog/3_8_5.html</a></li><li>Version 3.8.6 - <a href="releaselog/3_8_6.html">releaselog/3_8_6.html</a></li><li>version 3.8.6 - <a href="releaselog/3_8_6.html">releaselog/3_8_6.html</a></li><li>Version 3.8.7 - <a href="releaselog/3_8_7.html">releaselog/3_8_7.html</a></li><li>version 3.8.7 - <a href="releaselog/3_8_7.html">releaselog/3_8_7.html</a></li><li>Version 3.8.7.1 - <a href="releaselog/3_8_7_1.html">releaselog/3_8_7_1.html</a></li><li>version 3.8.7.1 - <a href="releaselog/3_8_7_1.html">releaselog/3_8_7_1.html</a></li><li>Version 3.8.7.2 - <a href="releaselog/3_8_7_2.html">releaselog/3_8_7_2.html</a></li><li>version 3.8.7.2 - <a href="releaselog/3_8_7_2.html">releaselog/3_8_7_2.html</a></li><li>Version 3.8.7.3 - <a href="releaselog/3_8_7_3.html">releaselog/3_8_7_3.html</a></li><li>version 3.8.7.3 - <a href="releaselog/3_8_7_3.html">releaselog/3_8_7_3.html</a></li><li>Version 3.8.7.4 - <a href="releaselog/3_8_7_4.html">releaselog/3_8_7_4.html</a></li><li>version 3.8.7.4 - <a href="releaselog/3_8_7_4.html">releaselog/3_8_7_4.html</a></li><li>Version 3.8.8 - <a href="releaselog/3_8_8.html">releaselog/3_8_8.html</a></li><li>version 3.8.8 - <a href="releaselog/3_8_8.html">releaselog/3_8_8.html</a></li><li>Version 3.8.8.1 - <a href="releaselog/3_8_8_1.html">releaselog/3_8_8_1.html</a></li><li>version 3.8.8.1 - <a href="releaselog/3_8_8_1.html">releaselog/3_8_8_1.html</a></li><li>Version 3.8.8.2 - <a href="releaselog/3_8_8_2.html">releaselog/3_8_8_2.html</a></li><li>version 3.8.8.2 - <a href="releaselog/3_8_8_2.html">releaselog/3_8_8_2.html</a></li><li>Version 3.8.8.3 - <a href="releaselog/3_8_8_3.html">releaselog/3_8_8_3.html</a></li><li>version 3.8.8.3 - <a href="releaselog/3_8_8_3.html">releaselog/3_8_8_3.html</a></li><li>Version 3.8.9 - <a href="releaselog/3_8_9.html">releaselog/3_8_9.html</a></li><li>version 3.8.9 - <a href="releaselog/3_8_9.html">releaselog/3_8_9.html</a></li><li>Version 3.8.10 - <a href="releaselog/3_8_10.html">releaselog/3_8_10.html</a></li><li>version 3.8.10 - <a href="releaselog/3_8_10.html">releaselog/3_8_10.html</a></li><li>Version 3.8.10.1 - <a href="releaselog/3_8_10_1.html">releaselog/3_8_10_1.html</a></li><li>version 3.8.10.1 - <a href="releaselog/3_8_10_1.html">releaselog/3_8_10_1.html</a></li><li>Version 3.8.10.2 - <a href="releaselog/3_8_10_2.html">releaselog/3_8_10_2.html</a></li><li>version 3.8.10.2 - <a href="releaselog/3_8_10_2.html">releaselog/3_8_10_2.html</a></li><li>Version 3.8.11 - <a href="releaselog/3_8_11.html">releaselog/3_8_11.html</a></li><li>version 3.8.11 - <a href="releaselog/3_8_11.html">releaselog/3_8_11.html</a></li><li>Version 3.8.11.1 - <a href="releaselog/3_8_11_1.html">releaselog/3_8_11_1.html</a></li><li>version 3.8.11.1 - <a href="releaselog/3_8_11_1.html">releaselog/3_8_11_1.html</a></li><li>Version 3.9.0 - <a href="releaselog/3_9_0.html">releaselog/3_9_0.html</a></li><li>version 3.9.0 - <a href="releaselog/3_9_0.html">releaselog/3_9_0.html</a></li><li>Version 3.9.1 - <a href="releaselog/3_9_1.html">releaselog/3_9_1.html</a></li><li>version 3.9.1 - <a href="releaselog/3_9_1.html">releaselog/3_9_1.html</a></li><li>Version 3.9.2 - <a href="releaselog/3_9_2.html">releaselog/3_9_2.html</a></li><li>version 3.9.2 - <a href="releaselog/3_9_2.html">releaselog/3_9_2.html</a></li><li>Version 3.9.3 - <a href="releaselog/3_9_3.html">releaselog/3_9_3.html</a></li><li>version 3.9.3 - <a href="releaselog/3_9_3.html">releaselog/3_9_3.html</a></li><li>Version 3.10.0 - <a href="releaselog/3_10_0.html">releaselog/3_10_0.html</a></li><li>version 3.10.0 - <a href="releaselog/3_10_0.html">releaselog/3_10_0.html</a></li><li>Version 3.10.1 - <a href="releaselog/3_10_1.html">releaselog/3_10_1.html</a></li><li>version 3.10.1 - <a href="releaselog/3_10_1.html">releaselog/3_10_1.html</a></li><li>Version 3.10.2 - <a href="releaselog/3_10_2.html">releaselog/3_10_2.html</a></li><li>version 3.10.2 - <a href="releaselog/3_10_2.html">releaselog/3_10_2.html</a></li><li>Version 3.11.0 - <a href="releaselog/3_11_0.html">releaselog/3_11_0.html</a></li><li>version 3.11.0 - <a href="releaselog/3_11_0.html">releaselog/3_11_0.html</a></li><li>Version 3.11.1 - <a href="releaselog/3_11_1.html">releaselog/3_11_1.html</a></li><li>version 3.11.1 - <a href="releaselog/3_11_1.html">releaselog/3_11_1.html</a></li><li>Version 3.12.0 - <a href="releaselog/3_12_0.html">releaselog/3_12_0.html</a></li><li>version 3.12.0 - <a href="releaselog/3_12_0.html">releaselog/3_12_0.html</a></li><li>version 3.12.0 page size change - <a href="pgszchng2016.html">pgszchng2016.html</a></li><li>Version 3.12.1 - <a href="releaselog/3_12_1.html">releaselog/3_12_1.html</a></li><li>version 3.12.1 - <a href="releaselog/3_12_1.html">releaselog/3_12_1.html</a></li><li>Version 3.12.2 - <a href="releaselog/3_12_2.html">releaselog/3_12_2.html</a></li><li>version 3.12.2 - <a href="releaselog/3_12_2.html">releaselog/3_12_2.html</a></li><li>Version 3.13.0 - <a href="releaselog/3_13_0.html">releaselog/3_13_0.html</a></li><li>version 3.13.0 - <a href="releaselog/3_13_0.html">releaselog/3_13_0.html</a></li><li>Version 3.13.0.0 - <a href="releaselog/3_13_0.html">releaselog/3_13_0.html</a></li><li>version 3.13.0.0 - <a href="releaselog/3_13_0.html">releaselog/3_13_0.html</a></li><li>Version 3.14 - <a href="releaselog/3_14.html">releaselog/3_14.html</a></li><li>version 3.14 - <a href="releaselog/3_14.html">releaselog/3_14.html</a></li><li>Version 3.14.0 - <a href="releaselog/3_14.html">releaselog/3_14.html</a></li><li>version 3.14.0 - <a href="releaselog/3_14.html">releaselog/3_14.html</a></li><li>Version 3.14.1 - <a href="releaselog/3_14_1.html">releaselog/3_14_1.html</a></li><li>version 3.14.1 - <a href="releaselog/3_14_1.html">releaselog/3_14_1.html</a></li><li>Version 3.14.2 - <a href="releaselog/3_14_2.html">releaselog/3_14_2.html</a></li><li>version 3.14.2 - <a href="releaselog/3_14_2.html">releaselog/3_14_2.html</a></li><li>Version 3.15.0 - <a href="releaselog/3_15_0.html">releaselog/3_15_0.html</a></li><li>version 3.15.0 - <a href="releaselog/3_15_0.html">releaselog/3_15_0.html</a></li><li>Version 3.15.1 - <a href="releaselog/3_15_1.html">releaselog/3_15_1.html</a></li><li>version 3.15.1 - <a href="releaselog/3_15_1.html">releaselog/3_15_1.html</a></li><li>Version 3.15.2 - <a href="releaselog/3_15_2.html">releaselog/3_15_2.html</a></li><li>version 3.15.2 - <a href="releaselog/3_15_2.html">releaselog/3_15_2.html</a></li><li>Version 3.16.0 - <a href="releaselog/3_16_0.html">releaselog/3_16_0.html</a></li><li>version 3.16.0 - <a href="releaselog/3_16_0.html">releaselog/3_16_0.html</a></li><li>Version 3.16.1 - <a href="releaselog/3_16_1.html">releaselog/3_16_1.html</a></li><li>version 3.16.1 - <a href="releaselog/3_16_1.html">releaselog/3_16_1.html</a></li><li>Version 3.16.2 - <a href="releaselog/3_16_2.html">releaselog/3_16_2.html</a></li><li>version 3.16.2 - <a href="releaselog/3_16_2.html">releaselog/3_16_2.html</a></li><li>Version 3.17.0 - <a href="releaselog/3_17_0.html">releaselog/3_17_0.html</a></li><li>version 3.17.0 - <a href="releaselog/3_17_0.html">releaselog/3_17_0.html</a></li><li>Version 3.18.0 - <a href="releaselog/3_18_0.html">releaselog/3_18_0.html</a></li><li>version 3.18.0 - <a href="releaselog/3_18_0.html">releaselog/3_18_0.html</a></li><li>Version 3.18.1 - <a href="releaselog/3_18_1.html">releaselog/3_18_1.html</a></li><li>version 3.18.1 - <a href="releaselog/3_18_1.html">releaselog/3_18_1.html</a></li><li>Version 3.18.2 - <a href="releaselog/3_18_2.html">releaselog/3_18_2.html</a></li><li>version 3.18.2 - <a href="releaselog/3_18_2.html">releaselog/3_18_2.html</a></li><li>Version 3.19.0 - <a href="releaselog/3_19_0.html">releaselog/3_19_0.html</a></li><li>version 3.19.0 - <a href="releaselog/3_19_0.html">releaselog/3_19_0.html</a></li><li>Version 3.19.1 - <a href="releaselog/3_19_1.html">releaselog/3_19_1.html</a></li><li>version 3.19.1 - <a href="releaselog/3_19_1.html">releaselog/3_19_1.html</a></li><li>Version 3.19.2 - <a href="releaselog/3_19_2.html">releaselog/3_19_2.html</a></li><li>version 3.19.2 - <a href="releaselog/3_19_2.html">releaselog/3_19_2.html</a></li><li>Version 3.19.3 - <a href="releaselog/3_19_3.html">releaselog/3_19_3.html</a></li><li>version 3.19.3 - <a href="releaselog/3_19_3.html">releaselog/3_19_3.html</a></li><li>Version 3.20.0 - <a href="releaselog/3_20_0.html">releaselog/3_20_0.html</a></li><li>version 3.20.0 - <a href="releaselog/3_20_0.html">releaselog/3_20_0.html</a></li><li>Version 3.20.1 - <a href="releaselog/3_20_1.html">releaselog/3_20_1.html</a></li><li>version 3.20.1 - <a href="releaselog/3_20_1.html">releaselog/3_20_1.html</a></li><li>Version 3.21.0 - <a href="releaselog/3_21_0.html">releaselog/3_21_0.html</a></li><li>version 3.21.0 - <a href="releaselog/3_21_0.html">releaselog/3_21_0.html</a></li><li>Version 3.22.0 - <a href="releaselog/3_22_0.html">releaselog/3_22_0.html</a></li><li>version 3.22.0 - <a href="releaselog/3_22_0.html">releaselog/3_22_0.html</a></li><li>Version 3.23.0 - <a href="releaselog/3_23_0.html">releaselog/3_23_0.html</a></li><li>version 3.23.0 - <a href="releaselog/3_23_0.html">releaselog/3_23_0.html</a></li><li>Version 3.23.0.0 - <a href="releaselog/3_23_0.html">releaselog/3_23_0.html</a></li><li>version 3.23.0.0 - <a href="releaselog/3_23_0.html">releaselog/3_23_0.html</a></li><li>Version 3.23.1 - <a href="releaselog/3_23_1.html">releaselog/3_23_1.html</a></li><li>version 3.23.1 - <a href="releaselog/3_23_1.html">releaselog/3_23_1.html</a></li><li>Version 3.23.1.0 - <a href="releaselog/3_23_1.html">releaselog/3_23_1.html</a></li><li>version 3.23.1.0 - <a href="releaselog/3_23_1.html">releaselog/3_23_1.html</a></li><li>Version 3.24.0 - <a href="releaselog/3_24_0.html">releaselog/3_24_0.html</a></li><li>version 3.24.0 - <a href="releaselog/3_24_0.html">releaselog/3_24_0.html</a></li><li>Version 3.25.0 - <a href="releaselog/3_25_0.html">releaselog/3_25_0.html</a></li><li>version 3.25.0 - <a href="releaselog/3_25_0.html">releaselog/3_25_0.html</a></li><li>Version 3.25.1 - <a href="releaselog/3_25_1.html">releaselog/3_25_1.html</a></li><li>version 3.25.1 - <a href="releaselog/3_25_1.html">releaselog/3_25_1.html</a></li><li>Version 3.25.2 - <a href="releaselog/3_25_2.html">releaselog/3_25_2.html</a></li><li>version 3.25.2 - <a href="releaselog/3_25_2.html">releaselog/3_25_2.html</a></li><li>Version 3.25.3 - <a href="releaselog/3_25_3.html">releaselog/3_25_3.html</a></li><li>version 3.25.3 - <a href="releaselog/3_25_3.html">releaselog/3_25_3.html</a></li><li>Version 3.26.0 - <a href="releaselog/3_26_0.html">releaselog/3_26_0.html</a></li><li>version 3.26.0 - <a href="releaselog/3_26_0.html">releaselog/3_26_0.html</a></li><li>Version 3.27.0 - <a href="releaselog/3_27_0.html">releaselog/3_27_0.html</a></li><li>version 3.27.0 - <a href="releaselog/3_27_0.html">releaselog/3_27_0.html</a></li><li>Version 3.27.1 - <a href="releaselog/3_27_1.html">releaselog/3_27_1.html</a></li><li>version 3.27.1 - <a href="releaselog/3_27_1.html">releaselog/3_27_1.html</a></li><li>Version 3.27.2 - <a href="releaselog/3_27_2.html">releaselog/3_27_2.html</a></li><li>version 3.27.2 - <a href="releaselog/3_27_2.html">releaselog/3_27_2.html</a></li><li>Version 3.28.0 - <a href="releaselog/3_28_0.html">releaselog/3_28_0.html</a></li><li>version 3.28.0 - <a href="releaselog/3_28_0.html">releaselog/3_28_0.html</a></li><li>Version 3.29.0 - <a href="releaselog/3_29_0.html">releaselog/3_29_0.html</a></li><li>version 3.29.0 - <a href="releaselog/3_29_0.html">releaselog/3_29_0.html</a></li><li>Version 3.30.0 - <a href="releaselog/3_30_0.html">releaselog/3_30_0.html</a></li><li>version 3.30.0 - <a href="releaselog/3_30_0.html">releaselog/3_30_0.html</a></li><li>Version 3.30.1 - <a href="releaselog/3_30_1.html">releaselog/3_30_1.html</a></li><li>version 3.30.1 - <a href="releaselog/3_30_1.html">releaselog/3_30_1.html</a></li><li>Version 3.31.0 - <a href="releaselog/3_31_0.html">releaselog/3_31_0.html</a></li><li>version 3.31.0 - <a href="releaselog/3_31_0.html">releaselog/3_31_0.html</a></li><li>Version 3.31.1 - <a href="releaselog/3_31_1.html">releaselog/3_31_1.html</a></li><li>version 3.31.1 - <a href="releaselog/3_31_1.html">releaselog/3_31_1.html</a></li><li>Version 3.32.0 - <a href="releaselog/3_32_0.html">releaselog/3_32_0.html</a></li><li>version 3.32.0 - <a href="releaselog/3_32_0.html">releaselog/3_32_0.html</a></li><li>Version 3.32.1 - <a href="releaselog/3_32_1.html">releaselog/3_32_1.html</a></li><li>version 3.32.1 - <a href="releaselog/3_32_1.html">releaselog/3_32_1.html</a></li><li>Version 3.32.2 - <a href="releaselog/3_32_2.html">releaselog/3_32_2.html</a></li><li>version 3.32.2 - <a href="releaselog/3_32_2.html">releaselog/3_32_2.html</a></li><li>Version 3.32.3 - <a href="releaselog/3_32_3.html">releaselog/3_32_3.html</a></li><li>version 3.32.3 - <a href="releaselog/3_32_3.html">releaselog/3_32_3.html</a></li><li>Version 3.33.0 - <a href="releaselog/3_33_0.html">releaselog/3_33_0.html</a></li><li>version 3.33.0 - <a href="releaselog/3_33_0.html">releaselog/3_33_0.html</a></li><li>Version 3.33.0.0 - <a href="releaselog/3_33_0.html">releaselog/3_33_0.html</a></li><li>version 3.33.0.0 - <a href="releaselog/3_33_0.html">releaselog/3_33_0.html</a></li><li>Version 3.34.0 - <a href="releaselog/3_34_0.html">releaselog/3_34_0.html</a></li><li>version 3.34.0 - <a href="releaselog/3_34_0.html">releaselog/3_34_0.html</a></li><li>Version 3.34.1 - <a href="releaselog/3_34_1.html">releaselog/3_34_1.html</a></li><li>version 3.34.1 - <a href="releaselog/3_34_1.html">releaselog/3_34_1.html</a></li><li>Version 3.35.0 - <a href="releaselog/3_35_0.html">releaselog/3_35_0.html</a></li><li>version 3.35.0 - <a href="releaselog/3_35_0.html">releaselog/3_35_0.html</a></li><li>Version 3.35.1 - <a href="releaselog/3_35_1.html">releaselog/3_35_1.html</a></li><li>version 3.35.1 - <a href="releaselog/3_35_1.html">releaselog/3_35_1.html</a></li><li>Version 3.35.2 - <a href="releaselog/3_35_2.html">releaselog/3_35_2.html</a></li><li>version 3.35.2 - <a href="releaselog/3_35_2.html">releaselog/3_35_2.html</a></li><li>Version 3.35.3 - <a href="releaselog/3_35_3.html">releaselog/3_35_3.html</a></li><li>version 3.35.3 - <a href="releaselog/3_35_3.html">releaselog/3_35_3.html</a></li><li>Version 3.35.4 - <a href="releaselog/3_35_4.html">releaselog/3_35_4.html</a></li><li>version 3.35.4 - <a href="releaselog/3_35_4.html">releaselog/3_35_4.html</a></li><li>Version 3.35.5 - <a href="releaselog/3_35_5.html">releaselog/3_35_5.html</a></li><li>version 3.35.5 - <a href="releaselog/3_35_5.html">releaselog/3_35_5.html</a></li><li>Version 3.36.0 - <a href="releaselog/3_36_0.html">releaselog/3_36_0.html</a></li><li>version 3.36.0 - <a href="releaselog/3_36_0.html">releaselog/3_36_0.html</a></li><li>Version 3.37.0 - <a href="releaselog/3_37_0.html">releaselog/3_37_0.html</a></li><li>version 3.37.0 - <a href="releaselog/3_37_0.html">releaselog/3_37_0.html</a></li><li>Version 3.37.1 - <a href="releaselog/3_37_1.html">releaselog/3_37_1.html</a></li><li>version 3.37.1 - <a href="releaselog/3_37_1.html">releaselog/3_37_1.html</a></li><li>Version 3.37.2 - <a href="releaselog/3_37_2.html">releaselog/3_37_2.html</a></li><li>version 3.37.2 - <a href="releaselog/3_37_2.html">releaselog/3_37_2.html</a></li><li>Version 3.38.0 - <a href="releaselog/3_38_0.html">releaselog/3_38_0.html</a></li><li>version 3.38.0 - <a href="releaselog/3_38_0.html">releaselog/3_38_0.html</a></li><li>Version 3.38.1 - <a href="releaselog/3_38_1.html">releaselog/3_38_1.html</a></li><li>version 3.38.1 - <a href="releaselog/3_38_1.html">releaselog/3_38_1.html</a></li><li>Version 3.38.2 - <a href="releaselog/3_38_2.html">releaselog/3_38_2.html</a></li><li>version 3.38.2 - <a href="releaselog/3_38_2.html">releaselog/3_38_2.html</a></li><li>Version 3.38.3 - <a href="releaselog/3_38_3.html">releaselog/3_38_3.html</a></li><li>version 3.38.3 - <a href="releaselog/3_38_3.html">releaselog/3_38_3.html</a></li><li>Version 3.38.4 - <a href="releaselog/3_38_4.html">releaselog/3_38_4.html</a></li><li>version 3.38.4 - <a href="releaselog/3_38_4.html">releaselog/3_38_4.html</a></li><li>Version 3.38.5 - <a href="releaselog/3_38_5.html">releaselog/3_38_5.html</a></li><li>version 3.38.5 - <a href="releaselog/3_38_5.html">releaselog/3_38_5.html</a></li><li>Version 3.39.0 - <a href="releaselog/3_39_0.html">releaselog/3_39_0.html</a></li><li>version 3.39.0 - <a href="releaselog/3_39_0.html">releaselog/3_39_0.html</a></li><li>Version 3.39.1 - <a href="releaselog/3_39_1.html">releaselog/3_39_1.html</a></li><li>version 3.39.1 - <a href="releaselog/3_39_1.html">releaselog/3_39_1.html</a></li><li>Version 3.39.2 - <a href="releaselog/3_39_2.html">releaselog/3_39_2.html</a></li><li>version 3.39.2 - <a href="releaselog/3_39_2.html">releaselog/3_39_2.html</a></li><li>Version 3.39.3 - <a href="releaselog/3_39_3.html">releaselog/3_39_3.html</a></li><li>version 3.39.3 - <a href="releaselog/3_39_3.html">releaselog/3_39_3.html</a></li><li>Version 3.39.4 - <a href="releaselog/3_39_4.html">releaselog/3_39_4.html</a></li><li>version 3.39.4 - <a href="releaselog/3_39_4.html">releaselog/3_39_4.html</a></li><li>Version 3.40.0 - <a href="releaselog/3_40_0.html">releaselog/3_40_0.html</a></li><li>version 3.40.0 - <a href="releaselog/3_40_0.html">releaselog/3_40_0.html</a></li><li>Version 3.40.1 - <a href="releaselog/3_40_1.html">releaselog/3_40_1.html</a></li><li>version 3.40.1 - <a href="releaselog/3_40_1.html">releaselog/3_40_1.html</a></li><li>Version 3.41.0 - <a href="releaselog/3_41_0.html">releaselog/3_41_0.html</a></li><li>version 3.41.0 - <a href="releaselog/3_41_0.html">releaselog/3_41_0.html</a></li><li>Version 3.41.1 - <a href="releaselog/3_41_1.html">releaselog/3_41_1.html</a></li><li>version 3.41.1 - <a href="releaselog/3_41_1.html">releaselog/3_41_1.html</a></li><li>Version 3.41.2 - <a href="releaselog/3_41_2.html">releaselog/3_41_2.html</a></li><li>version 3.41.2 - <a href="releaselog/3_41_2.html">releaselog/3_41_2.html</a></li><li>Version 3.42.0 - <a href="releaselog/3_42_0.html">releaselog/3_42_0.html</a></li><li>version 3.42.0 - <a href="releaselog/3_42_0.html">releaselog/3_42_0.html</a></li><li>Version 3.43.0 - <a href="releaselog/3_43_0.html">releaselog/3_43_0.html</a></li><li>version 3.43.0 - <a href="releaselog/3_43_0.html">releaselog/3_43_0.html</a></li><li>Version 3.43.0.0 - <a href="releaselog/3_43_0.html">releaselog/3_43_0.html</a></li><li>version 3.43.0.0 - <a href="releaselog/3_43_0.html">releaselog/3_43_0.html</a></li><li>Version 3.43.1 - <a href="releaselog/3_43_1.html">releaselog/3_43_1.html</a></li><li>version 3.43.1 - <a href="releaselog/3_43_1.html">releaselog/3_43_1.html</a></li><li>Version 3.43.1.0 - <a href="releaselog/3_43_1.html">releaselog/3_43_1.html</a></li><li>version 3.43.1.0 - <a href="releaselog/3_43_1.html">releaselog/3_43_1.html</a></li><li>Version 3.43.2 - <a href="releaselog/3_43_2.html">releaselog/3_43_2.html</a></li><li>version 3.43.2 - <a href="releaselog/3_43_2.html">releaselog/3_43_2.html</a></li><li>Version 3.43.2.0 - <a href="releaselog/3_43_2.html">releaselog/3_43_2.html</a></li><li>version 3.43.2.0 - <a href="releaselog/3_43_2.html">releaselog/3_43_2.html</a></li><li>Version 3.44.0 - <a href="releaselog/3_44_0.html">releaselog/3_44_0.html</a></li><li>version 3.44.0 - <a href="releaselog/3_44_0.html">releaselog/3_44_0.html</a></li><li>Version 3.44.1 - <a href="releaselog/3_44_1.html">releaselog/3_44_1.html</a></li><li>version 3.44.1 - <a href="releaselog/3_44_1.html">releaselog/3_44_1.html</a></li><li>Version 3.44.2 - <a href="releaselog/3_44_2.html">releaselog/3_44_2.html</a></li><li>version 3.44.2 - <a href="releaselog/3_44_2.html">releaselog/3_44_2.html</a></li><li>Version 3.45.0 - <a href="releaselog/3_45_0.html">releaselog/3_45_0.html</a></li><li>version 3.45.0 - <a href="releaselog/3_45_0.html">releaselog/3_45_0.html</a></li><li>Version 3.45.1 - <a href="releaselog/3_45_1.html">releaselog/3_45_1.html</a></li><li>version 3.45.1 - <a href="releaselog/3_45_1.html">releaselog/3_45_1.html</a></li><li>Version 3.45.2 - <a href="releaselog/3_45_2.html">releaselog/3_45_2.html</a></li><li>version 3.45.2 - <a href="releaselog/3_45_2.html">releaselog/3_45_2.html</a></li><li>Version 3.45.3 - <a href="releaselog/3_45_3.html">releaselog/3_45_3.html</a></li><li>version 3.45.3 - <a href="releaselog/3_45_3.html">releaselog/3_45_3.html</a></li><li>version method - <a href="tclsqlite.html#version">tclsqlite.html#version</a></li><li>version numbering conventions - <a href="versionnumbers.html">versionnumbers.html</a></li><li>version-valid-for number - <a href="fileformat2.html#validfor">fileformat2.html#validfor</a></li><li>VFS - <a href="vfs.html">vfs.html</a></li><li>vfs query parameter - <a href="uri.html#urivfs">uri.html#urivfs</a></li><li>VFS shim - <a href="vfs.html#shim">vfs.html#shim</a></li><li>VFS shims - <a href="vfs.html#shim">vfs.html#shim</a></li><li>VFSes - <a href="vfs.html">vfs.html</a></li><li>VIEW - <a href="lang_createview.html">lang_createview.html</a></li><li>view - <a href="lang_createview.html">lang_createview.html</a></li><li>views - <a href="lang_createview.html">lang_createview.html</a></li><li>virtual machine - <a href="opcode.html">opcode.html</a></li><li>virtual machine instructions - <a href="opcode.html">opcode.html</a></li><li>virtual table - <a href="vtab.html">vtab.html</a></li><li>virtual table configuration option - <a href="c3ref/c_vtab_constraint_support.html">c3ref/c_vtab_constraint_support.html</a></li><li>virtual table configuration options - <a href="c3ref/c_vtab_constraint_support.html">c3ref/c_vtab_constraint_support.html</a></li><li>virtual table cursor - <a href="c3ref/vtab_cursor.html">c3ref/vtab_cursor.html</a></li><li>virtual table list - <a href="vtablist.html">vtablist.html</a></li><li>virtual table module - <a href="c3ref/module.html">c3ref/module.html</a></li><li>virtual tables - <a href="vtab.html">vtab.html</a></li><li>vulnerabilities - <a href="cves.html">cves.html</a></li><li>w - <a href="printf.html#percentw">printf.html#percentw</a></li><li>WAL - <a href="wal.html">wal.html</a></li><li>WAL backwards compatibility - <a href="wal.html#bkwrds">wal.html#bkwrds</a></li><li>WAL checksum algorithm - <a href="fileformat2.html#walcksm">fileformat2.html#walcksm</a></li><li>WAL concurrency - <a href="wal.html#concurrency">wal.html#concurrency</a></li><li>WAL file - <a href="wal.html#walfile">wal.html#walfile</a></li><li>WAL file format - <a href="fileformat2.html#walformat">fileformat2.html#walformat</a></li><li>WAL format - <a href="fileformat2.html#walformat">fileformat2.html#walformat</a></li><li>WAL mode - <a href="wal.html">wal.html</a></li><li>WAL read algorithm - <a href="fileformat2.html#walread">fileformat2.html#walread</a></li><li>WAL reset - <a href="fileformat2.html#walreset">fileformat2.html#walreset</a></li><li>WAL without shared memory - <a href="wal.html#noshm">wal.html#noshm</a></li><li>wal-index - <a href="walformat.html#shm">walformat.html#shm</a></li><li>WAL-index File Format - <a href="walformat.html#walidxfmt">walformat.html#walidxfmt</a></li><li>WAL-index format - <a href="walformat.html#walidxfmt">walformat.html#walidxfmt</a></li><li>WAL-mode crash recovery - <a href="walformat.html#recovery">walformat.html#recovery</a></li><li>WAL-mode File Format - <a href="walformat.html">walformat.html</a></li><li>WAL-mode locks - <a href="walformat.html#locks">walformat.html#locks</a></li><li>WAL-mode read blocking - <a href="wal.html#busy">wal.html#busy</a></li><li>wal_autocheckpoint - <a href="pragma.html#pragma_wal_autocheckpoint">pragma.html#pragma_wal_autocheckpoint</a></li><li>wal_autocheckpoint pragma - <a href="pragma.html#pragma_wal_autocheckpoint">pragma.html#pragma_wal_autocheckpoint</a></li><li>wal_checkpoint - <a href="pragma.html#pragma_wal_checkpoint">pragma.html#pragma_wal_checkpoint</a></li><li>wal_checkpoint pragma - <a href="pragma.html#pragma_wal_checkpoint">pragma.html#pragma_wal_checkpoint</a></li><li>wal_hook method - <a href="tclsqlite.html#wal_hook">tclsqlite.html#wal_hook</a></li><li>Warranty of Title - <a href="copyright.html#warrantyoftitle">copyright.html#warrantyoftitle</a></li><li>What If OpenOffice Used SQLite - <a href="affcase1.html">affcase1.html</a></li><li>when to use WITHOUT ROWID - <a href="withoutrowid.html#wtu">withoutrowid.html#wtu</a></li><li>WHERE clause - <a href="lang_select.html#whereclause">lang_select.html#whereclause</a></li><li>why ALTER TABLE is so difficult - <a href="lang_altertable.html#altertableishard">lang_altertable.html#altertableishard</a></li><li>Win32 native memory allocator - <a href="malloc.html#win32heap">malloc.html#win32heap</a></li><li>window chaining - <a href="windowfunctions.html#wchaining">windowfunctions.html#wchaining</a></li><li>window function - <a href="windowfunctions.html">windowfunctions.html</a></li><li>Window functions - <a href="windowfunctions.html">windowfunctions.html</a></li><li>window functions - <a href="windowfunctions.html">windowfunctions.html</a></li><li>window-defn - <a href="syntax/window-defn.html">syntax/window-defn.html</a></li><li>window-defn syntax diagram - <a href="syntax/window-defn.html">syntax/window-defn.html</a></li><li>window-function-invocation - <a href="syntax/window-function-invocation.html">syntax/window-function-invocation.html</a></li><li>window-function-invocation syntax diagram - <a href="syntax/window-function-invocation.html">syntax/window-function-invocation.html</a></li><li>WITH - <a href="lang_with.html">lang_with.html</a></li><li>with - <a href="lang_with.html">lang_with.html</a></li><li>WITH clause - <a href="lang_with.html">lang_with.html</a></li><li>with-clause - <a href="syntax/with-clause.html">syntax/with-clause.html</a></li><li>with-clause syntax diagram - <a href="syntax/with-clause.html">syntax/with-clause.html</a></li><li>WITHOUT ROWID - <a href="withoutrowid.html">withoutrowid.html</a></li><li>WITHOUT rowid - <a href="withoutrowid.html">withoutrowid.html</a></li><li>WITHOUT ROWID virtual table - <a href="vtab.html#worid">vtab.html#worid</a></li><li>WITHOUT ROWID virtual tables - <a href="vtab.html#worid">vtab.html#worid</a></li><li>wrapping text - <a href="cli.html#wrap1">cli.html#wrap1</a></li><li>writable_schema - <a href="pragma.html#pragma_writable_schema">pragma.html#pragma_writable_schema</a></li><li>writable_schema pragma - <a href="pragma.html#pragma_writable_schema">pragma.html#pragma_writable_schema</a></li><li>write-ahead log - <a href="wal.html">wal.html</a></li><li>writer starvation - <a href="lockingv3.html#writer_starvation">lockingv3.html#writer_starvation</a></li><li>xBegin - <a href="vtab.html#xBegin">vtab.html#xBegin</a></li><li>xBestIndex - <a href="vtab.html#xbestindex">vtab.html#xbestindex</a></li><li>xColumn - <a href="vtab.html#xcolumn">vtab.html#xcolumn</a></li><li>xCommit - <a href="vtab.html#xcommit">vtab.html#xcommit</a></li><li>xConnect - <a href="vtab.html#xconnect">vtab.html#xconnect</a></li><li>xCreate - <a href="vtab.html#xcreate">vtab.html#xcreate</a></li><li>xDestroy - <a href="vtab.html#sqlite3_module.xDestroy">vtab.html#sqlite3_module.xDestroy</a></li><li>xDisconnect - <a href="vtab.html#xdisconnect">vtab.html#xdisconnect</a></li><li>xEof - <a href="vtab.html#xeof">vtab.html#xeof</a></li><li>xFilter - <a href="vtab.html#xfilter">vtab.html#xfilter</a></li><li>xFindFunction - <a href="vtab.html#xfindfunction">vtab.html#xfindfunction</a></li><li>xIntegrity - <a href="vtab.html#xintegrity">vtab.html#xintegrity</a></li><li>xIntegrity method - <a href="vtab.html#xintegrity">vtab.html#xintegrity</a></li><li>xNext - <a href="vtab.html#xnext">vtab.html#xnext</a></li><li>xQueryFunc RTree callback - <a href="rtree.html#xquery">rtree.html#xquery</a></li><li>xRelease - <a href="vtab.html#xsavepoint">vtab.html#xsavepoint</a></li><li>xRename - <a href="vtab.html#xrename">vtab.html#xrename</a></li><li>xRollback - <a href="vtab.html#xrollback">vtab.html#xrollback</a></li><li>xRollbackTo - <a href="vtab.html#xsavepoint">vtab.html#xsavepoint</a></li><li>xRowid - <a href="vtab.html#xrowid">vtab.html#xrowid</a></li><li>xSavepoint - <a href="vtab.html#xsavepoint">vtab.html#xsavepoint</a></li><li>xShadowName - <a href="vtab.html#xshadowname">vtab.html#xshadowname</a></li><li>xUpdate - <a href="vtab.html#xupdate">vtab.html#xupdate</a></li><li>YYSTACKDEPTH - <a href="compile.html#yystackdepth">compile.html#yystackdepth</a></li><li>YYTRACKMAXSTACKDEPTH - <a href="compile.html#yytrackmaxstackdepth">compile.html#yytrackmaxstackdepth</a></li><li>z - <a href="printf.html#percentz">printf.html#percentz</a></li><li>zero-configuration - <a href="zeroconf.html">zeroconf.html</a></li><li>zero-malloc memory allocator - <a href="malloc.html#memsys5">malloc.html#memsys5</a></li><li>zeroblob - <a href="lang_corefunc.html#zeroblob">lang_corefunc.html#zeroblob</a></li><li>zeroblob SQL function - <a href="lang_corefunc.html#zeroblob">lang_corefunc.html#zeroblob</a></li><li>ZIP file as database - <a href="cli.html#zipdb">cli.html#zipdb</a></li><li>zipfile - <a href="zipfile.html">zipfile.html</a></li><li>Zipfile virtual table - <a href="zipfile.html">zipfile.html</a></li></ul><p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/wrap.tcl?m=08af34fe24">2023-03-31 19:57:15</a> UTC </small></i></p> +<ul><li>--insert option - <a href="cli.html#arinsup">cli.html#arinsup</a></li><li>--safe command-line option - <a href="cli.html#safemode">cli.html#safemode</a></li><li>--unsafe-testing command-line option - <a href="cli.html#testing_mode">cli.html#testing_mode</a></li><li>--update option - <a href="cli.html#arinsup">cli.html#arinsup</a></li><li>-DHAVE_FDATASYNC - <a href="compile.html#fdatasync">compile.html#fdatasync</a></li><li>-DHAVE_GMTIME_R - <a href="compile.html#gmtime_r">compile.html#gmtime_r</a></li><li>-DHAVE_ISNAN - <a href="compile.html#isnan">compile.html#isnan</a></li><li>-DHAVE_LOCALTIME_R - <a href="compile.html#localtime_r">compile.html#localtime_r</a></li><li>-DHAVE_LOCALTIME_S - <a href="compile.html#localtime_s">compile.html#localtime_s</a></li><li>-DHAVE_MALLOC_USABLE_SIZE - <a href="compile.html#malloc_usable_size">compile.html#malloc_usable_size</a></li><li>-DHAVE_SQLITE_CONFIG_H - <a href="compile.html#sqlite_config_h">compile.html#sqlite_config_h</a></li><li>-DHAVE_STRCHRNUL - <a href="compile.html#strchrnul">compile.html#strchrnul</a></li><li>-DHAVE_UTIME - <a href="compile.html#utime">compile.html#utime</a></li><li>-DSQLITE_4_BYTE_ALIGNED_MALLOC - <a href="compile.html#4_byte_aligned_malloc">compile.html#4_byte_aligned_malloc</a></li><li>-DSQLITE_ALLOW_COVERING_INDEX_SCAN - <a href="compile.html#allow_covering_index_scan">compile.html#allow_covering_index_scan</a></li><li>-DSQLITE_ALLOW_URI_AUTHORITY - <a href="compile.html#allow_uri_authority">compile.html#allow_uri_authority</a></li><li>-DSQLITE_API - <a href="compile.html#api">compile.html#api</a></li><li>-DSQLITE_APICALL - <a href="compile.html#apicall">compile.html#apicall</a></li><li>-DSQLITE_BYTEORDER - <a href="compile.html#byteorder">compile.html#byteorder</a></li><li>-DSQLITE_CALLBACK - <a href="compile.html#callback">compile.html#callback</a></li><li>-DSQLITE_CASE_SENSITIVE_LIKE - <a href="compile.html#case_sensitive_like">compile.html#case_sensitive_like</a></li><li>-DSQLITE_CDECL - <a href="compile.html#cdecl">compile.html#cdecl</a></li><li>-DSQLITE_DEBUG - <a href="compile.html#debug">compile.html#debug</a></li><li>-DSQLITE_DEFAULT_AUTOMATIC_INDEX - <a href="compile.html#default_automatic_index">compile.html#default_automatic_index</a></li><li>-DSQLITE_DEFAULT_AUTOVACUUM - <a href="compile.html#default_autovacuum">compile.html#default_autovacuum</a></li><li>-DSQLITE_DEFAULT_CACHE_SIZE - <a href="compile.html#default_cache_size">compile.html#default_cache_size</a></li><li>-DSQLITE_DEFAULT_FILE_FORMAT - <a href="compile.html#default_file_format">compile.html#default_file_format</a></li><li>-DSQLITE_DEFAULT_FILE_PERMISSIONS - <a href="compile.html#default_file_permissions">compile.html#default_file_permissions</a></li><li>-DSQLITE_DEFAULT_FOREIGN_KEYS - <a href="compile.html#default_foreign_keys">compile.html#default_foreign_keys</a></li><li>-DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT - <a href="compile.html#default_journal_size_limit">compile.html#default_journal_size_limit</a></li><li>-DSQLITE_DEFAULT_LOCKING_MODE - <a href="compile.html#default_locking_mode">compile.html#default_locking_mode</a></li><li>-DSQLITE_DEFAULT_LOOKASIDE - <a href="compile.html#default_lookaside">compile.html#default_lookaside</a></li><li>-DSQLITE_DEFAULT_MEMSTATUS - <a href="compile.html#default_memstatus">compile.html#default_memstatus</a></li><li>-DSQLITE_DEFAULT_MMAP_SIZE - <a href="compile.html#default_mmap_size">compile.html#default_mmap_size</a></li><li>-DSQLITE_DEFAULT_PAGE_SIZE - <a href="compile.html#default_page_size">compile.html#default_page_size</a></li><li>-DSQLITE_DEFAULT_PCACHE_INITSZ - <a href="compile.html#default_pcache_initsz">compile.html#default_pcache_initsz</a></li><li>-DSQLITE_DEFAULT_SYNCHRONOUS - <a href="compile.html#default_synchronous">compile.html#default_synchronous</a></li><li>-DSQLITE_DEFAULT_WAL_AUTOCHECKPOINT - <a href="compile.html#default_wal_autocheckpoint">compile.html#default_wal_autocheckpoint</a></li><li>-DSQLITE_DEFAULT_WAL_SYNCHRONOUS - <a href="compile.html#default_wal_synchronous">compile.html#default_wal_synchronous</a></li><li>-DSQLITE_DEFAULT_WORKER_THREADS - <a href="compile.html#default_worker_threads">compile.html#default_worker_threads</a></li><li>-DSQLITE_DIRECT_OVERFLOW_READ - <a href="compile.html#direct_overflow_read">compile.html#direct_overflow_read</a></li><li>-DSQLITE_DISABLE_DIRSYNC - <a href="compile.html#disable_dirsync">compile.html#disable_dirsync</a></li><li>-DSQLITE_DISABLE_FTS3_UNICODE - <a href="compile.html#disable_fts3_unicode">compile.html#disable_fts3_unicode</a></li><li>-DSQLITE_DISABLE_FTS4_DEFERRED - <a href="compile.html#disable_fts4_deferred">compile.html#disable_fts4_deferred</a></li><li>-DSQLITE_DISABLE_INTRINSIC - <a href="compile.html#disable_intrinsic">compile.html#disable_intrinsic</a></li><li>-DSQLITE_DISABLE_LFS - <a href="compile.html#disable_lfs">compile.html#disable_lfs</a></li><li>-DSQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS - <a href="compile.html#disable_pagecache_overflow_stats">compile.html#disable_pagecache_overflow_stats</a></li><li>-DSQLITE_DQS - <a href="compile.html#dqs">compile.html#dqs</a></li><li>-DSQLITE_ENABLE_8_3_NAMES - <a href="compile.html#enable_8_3_names">compile.html#enable_8_3_names</a></li><li>-DSQLITE_ENABLE_API_ARMOR - <a href="compile.html#enable_api_armor">compile.html#enable_api_armor</a></li><li>-DSQLITE_ENABLE_ATOMIC_WRITE - <a href="compile.html#enable_atomic_write">compile.html#enable_atomic_write</a></li><li>-DSQLITE_ENABLE_BATCH_ATOMIC_WRITE - <a href="compile.html#enable_batch_atomic_write">compile.html#enable_batch_atomic_write</a></li><li>-DSQLITE_ENABLE_BYTECODE_VTAB - <a href="compile.html#enable_bytecode_vtab">compile.html#enable_bytecode_vtab</a></li><li>-DSQLITE_ENABLE_COLUMN_METADATA - <a href="compile.html#enable_column_metadata">compile.html#enable_column_metadata</a></li><li>-DSQLITE_ENABLE_DBPAGE_VTAB - <a href="compile.html#enable_dbpage_vtab">compile.html#enable_dbpage_vtab</a></li><li>-DSQLITE_ENABLE_DBSTAT_VTAB - <a href="compile.html#enable_dbstat_vtab">compile.html#enable_dbstat_vtab</a></li><li>-DSQLITE_ENABLE_DESERIALIZE - <a href="compile.html#enable_deserialize">compile.html#enable_deserialize</a></li><li>-DSQLITE_ENABLE_EXPLAIN_COMMENTS - <a href="compile.html#enable_explain_comments">compile.html#enable_explain_comments</a></li><li>-DSQLITE_ENABLE_FTS3 - <a href="compile.html#enable_fts3">compile.html#enable_fts3</a></li><li>-DSQLITE_ENABLE_FTS3_PARENTHESIS - <a href="compile.html#enable_fts3_parenthesis">compile.html#enable_fts3_parenthesis</a></li><li>-DSQLITE_ENABLE_FTS3_TOKENIZER - <a href="compile.html#enable_fts3_tokenizer">compile.html#enable_fts3_tokenizer</a></li><li>-DSQLITE_ENABLE_FTS4 - <a href="compile.html#enable_fts4">compile.html#enable_fts4</a></li><li>-DSQLITE_ENABLE_FTS5 - <a href="compile.html#enable_fts5">compile.html#enable_fts5</a></li><li>-DSQLITE_ENABLE_GEOPOLY - <a href="compile.html#enable_geopoly">compile.html#enable_geopoly</a></li><li>-DSQLITE_ENABLE_HIDDEN_COLUMNS - <a href="compile.html#enable_hidden_columns">compile.html#enable_hidden_columns</a></li><li>-DSQLITE_ENABLE_ICU - <a href="compile.html#enable_icu">compile.html#enable_icu</a></li><li>-DSQLITE_ENABLE_IOTRACE - <a href="compile.html#enable_iotrace">compile.html#enable_iotrace</a></li><li>-DSQLITE_ENABLE_JSON1 - <a href="compile.html#enable_json1">compile.html#enable_json1</a></li><li>-DSQLITE_ENABLE_LOCKING_STYLE - <a href="compile.html#enable_locking_style">compile.html#enable_locking_style</a></li><li>-DSQLITE_ENABLE_MATH_FUNCTIONS - <a href="compile.html#enable_math_functions">compile.html#enable_math_functions</a></li><li>-DSQLITE_ENABLE_MEMORY_MANAGEMENT - <a href="compile.html#enable_memory_management">compile.html#enable_memory_management</a></li><li>-DSQLITE_ENABLE_MEMSYS3 - <a href="compile.html#enable_memsys3">compile.html#enable_memsys3</a></li><li>-DSQLITE_ENABLE_MEMSYS5 - <a href="compile.html#enable_memsys5">compile.html#enable_memsys5</a></li><li>-DSQLITE_ENABLE_NORMALIZE - <a href="compile.html#enable_normalize">compile.html#enable_normalize</a></li><li>-DSQLITE_ENABLE_NULL_TRIM - <a href="compile.html#enable_null_trim">compile.html#enable_null_trim</a></li><li>-DSQLITE_ENABLE_OFFSET_SQL_FUNC - <a href="compile.html#enable_offset_sql_func">compile.html#enable_offset_sql_func</a></li><li>-DSQLITE_ENABLE_PREUPDATE_HOOK - <a href="compile.html#enable_preupdate_hook">compile.html#enable_preupdate_hook</a></li><li>-DSQLITE_ENABLE_QPSG - <a href="compile.html#enable_qpsg">compile.html#enable_qpsg</a></li><li>-DSQLITE_ENABLE_RBU - <a href="compile.html#enable_rbu">compile.html#enable_rbu</a></li><li>-DSQLITE_ENABLE_RTREE - <a href="compile.html#enable_rtree">compile.html#enable_rtree</a></li><li>-DSQLITE_ENABLE_SESSION - <a href="compile.html#enable_session">compile.html#enable_session</a></li><li>-DSQLITE_ENABLE_SNAPSHOT - <a href="compile.html#enable_snapshot">compile.html#enable_snapshot</a></li><li>-DSQLITE_ENABLE_SORTER_REFERENCES - <a href="compile.html#enable_sorter_references">compile.html#enable_sorter_references</a></li><li>-DSQLITE_ENABLE_SQLLOG - <a href="compile.html#enable_sqllog">compile.html#enable_sqllog</a></li><li>-DSQLITE_ENABLE_STAT2 - <a href="compile.html#enable_stat2">compile.html#enable_stat2</a></li><li>-DSQLITE_ENABLE_STAT3 - <a href="compile.html#enable_stat3">compile.html#enable_stat3</a></li><li>-DSQLITE_ENABLE_STAT4 - <a href="compile.html#enable_stat4">compile.html#enable_stat4</a></li><li>-DSQLITE_ENABLE_STMT_SCANSTATUS - <a href="compile.html#enable_stmt_scanstatus">compile.html#enable_stmt_scanstatus</a></li><li>-DSQLITE_ENABLE_STMTVTAB - <a href="compile.html#enable_stmtvtab">compile.html#enable_stmtvtab</a></li><li>-DSQLITE_ENABLE_TREE_EXPLAIN - <a href="compile.html#enable_tree_explain">compile.html#enable_tree_explain</a></li><li>-DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION - <a href="compile.html#enable_unknown_sql_function">compile.html#enable_unknown_sql_function</a></li><li>-DSQLITE_ENABLE_UNLOCK_NOTIFY - <a href="compile.html#enable_unlock_notify">compile.html#enable_unlock_notify</a></li><li>-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT - <a href="compile.html#enable_update_delete_limit">compile.html#enable_update_delete_limit</a></li><li>-DSQLITE_EXTERN - <a href="compile.html#extern">compile.html#extern</a></li><li>-DSQLITE_EXTRA_DURABLE - <a href="compile.html#extra_durable">compile.html#extra_durable</a></li><li>-DSQLITE_FTS3_MAX_EXPR_DEPTH - <a href="compile.html#fts3_max_expr_depth">compile.html#fts3_max_expr_depth</a></li><li>-DSQLITE_HAVE_ISNAN - <a href="compile.html#have_isnan">compile.html#have_isnan</a></li><li>-DSQLITE_HAVE_ZLIB - <a href="compile.html#have_zlib">compile.html#have_zlib</a></li><li>-DSQLITE_INTROSPECTION_PRAGMAS - <a href="compile.html#introspection_pragmas">compile.html#introspection_pragmas</a></li><li>-DSQLITE_JSON_MAX_DEPTH - <a href="compile.html#json_max_depth">compile.html#json_max_depth</a></li><li>-DSQLITE_LIKE_DOESNT_MATCH_BLOBS - <a href="compile.html#like_doesnt_match_blobs">compile.html#like_doesnt_match_blobs</a></li><li>-DSQLITE_MAX_ALLOCATION_SIZE - <a href="compile.html#max_allocation_size">compile.html#max_allocation_size</a></li><li>-DSQLITE_MAX_MEMORY - <a href="compile.html#max_memory">compile.html#max_memory</a></li><li>-DSQLITE_MAX_MMAP_SIZE - <a href="compile.html#max_mmap_size">compile.html#max_mmap_size</a></li><li>-DSQLITE_MAX_SCHEMA_RETRY - <a href="compile.html#max_schema_retry">compile.html#max_schema_retry</a></li><li>-DSQLITE_MAX_WORKER_THREADS - <a href="compile.html#max_worker_threads">compile.html#max_worker_threads</a></li><li>-DSQLITE_MEMDB_DEFAULT_MAXSIZE - <a href="compile.html#memdb_default_maxsize">compile.html#memdb_default_maxsize</a></li><li>-DSQLITE_MEMDEBUG - <a href="compile.html#memdebug">compile.html#memdebug</a></li><li>-DSQLITE_MINIMUM_FILE_DESCRIPTOR - <a href="compile.html#minimum_file_descriptor">compile.html#minimum_file_descriptor</a></li><li>-DSQLITE_OMIT_ALTERTABLE - <a href="compile.html#omit_altertable">compile.html#omit_altertable</a></li><li>-DSQLITE_OMIT_ANALYZE - <a href="compile.html#omit_analyze">compile.html#omit_analyze</a></li><li>-DSQLITE_OMIT_ATTACH - <a href="compile.html#omit_attach">compile.html#omit_attach</a></li><li>-DSQLITE_OMIT_AUTHORIZATION - <a href="compile.html#omit_authorization">compile.html#omit_authorization</a></li><li>-DSQLITE_OMIT_AUTOINCREMENT - <a href="compile.html#omit_autoincrement">compile.html#omit_autoincrement</a></li><li>-DSQLITE_OMIT_AUTOINIT - <a href="compile.html#omit_autoinit">compile.html#omit_autoinit</a></li><li>-DSQLITE_OMIT_AUTOMATIC_INDEX - <a href="compile.html#omit_automatic_index">compile.html#omit_automatic_index</a></li><li>-DSQLITE_OMIT_AUTORESET - <a href="compile.html#omit_autoreset">compile.html#omit_autoreset</a></li><li>-DSQLITE_OMIT_AUTOVACUUM - <a href="compile.html#omit_autovacuum">compile.html#omit_autovacuum</a></li><li>-DSQLITE_OMIT_BETWEEN_OPTIMIZATION - <a href="compile.html#omit_between_optimization">compile.html#omit_between_optimization</a></li><li>-DSQLITE_OMIT_BLOB_LITERAL - <a href="compile.html#omit_blob_literal">compile.html#omit_blob_literal</a></li><li>-DSQLITE_OMIT_BTREECOUNT - <a href="compile.html#omit_btreecount">compile.html#omit_btreecount</a></li><li>-DSQLITE_OMIT_BUILTIN_TEST - <a href="compile.html#omit_builtin_test">compile.html#omit_builtin_test</a></li><li>-DSQLITE_OMIT_CASE_SENSITIVE_LIKE_PRAGMA - <a href="compile.html#omit_case_sensitive_like_pragma">compile.html#omit_case_sensitive_like_pragma</a></li><li>-DSQLITE_OMIT_CAST - <a href="compile.html#omit_cast">compile.html#omit_cast</a></li><li>-DSQLITE_OMIT_CHECK - <a href="compile.html#omit_check">compile.html#omit_check</a></li><li>-DSQLITE_OMIT_COMPILEOPTION_DIAGS - <a href="compile.html#omit_compileoption_diags">compile.html#omit_compileoption_diags</a></li><li>-DSQLITE_OMIT_COMPLETE - <a href="compile.html#omit_complete">compile.html#omit_complete</a></li><li>-DSQLITE_OMIT_COMPOUND_SELECT - <a href="compile.html#omit_compound_select">compile.html#omit_compound_select</a></li><li>-DSQLITE_OMIT_CTE - <a href="compile.html#omit_cte">compile.html#omit_cte</a></li><li>-DSQLITE_OMIT_DATETIME_FUNCS - <a href="compile.html#omit_datetime_funcs">compile.html#omit_datetime_funcs</a></li><li>-DSQLITE_OMIT_DECLTYPE - <a href="compile.html#omit_decltype">compile.html#omit_decltype</a></li><li>-DSQLITE_OMIT_DEPRECATED - <a href="compile.html#omit_deprecated">compile.html#omit_deprecated</a></li><li>-DSQLITE_OMIT_DESERIALIZE - <a href="compile.html#omit_deserialize">compile.html#omit_deserialize</a></li><li>-DSQLITE_OMIT_DISKIO - <a href="compile.html#omit_diskio">compile.html#omit_diskio</a></li><li>-DSQLITE_OMIT_EXPLAIN - <a href="compile.html#omit_explain">compile.html#omit_explain</a></li><li>-DSQLITE_OMIT_FLAG_PRAGMAS - <a href="compile.html#omit_flag_pragmas">compile.html#omit_flag_pragmas</a></li><li>-DSQLITE_OMIT_FLOATING_POINT - <a href="compile.html#omit_floating_point">compile.html#omit_floating_point</a></li><li>-DSQLITE_OMIT_FOREIGN_KEY - <a href="compile.html#omit_foreign_key">compile.html#omit_foreign_key</a></li><li>-DSQLITE_OMIT_GENERATED_COLUMNS - <a href="compile.html#omit_generated_columns">compile.html#omit_generated_columns</a></li><li>-DSQLITE_OMIT_GET_TABLE - <a href="compile.html#omit_get_table">compile.html#omit_get_table</a></li><li>-DSQLITE_OMIT_HEX_INTEGER - <a href="compile.html#omit_hex_integer">compile.html#omit_hex_integer</a></li><li>-DSQLITE_OMIT_INCRBLOB - <a href="compile.html#omit_incrblob">compile.html#omit_incrblob</a></li><li>-DSQLITE_OMIT_INTEGRITY_CHECK - <a href="compile.html#omit_integrity_check">compile.html#omit_integrity_check</a></li><li>-DSQLITE_OMIT_INTROSPECTION_PRAGMAS - <a href="compile.html#omit_introspection_pragmas">compile.html#omit_introspection_pragmas</a></li><li>-DSQLITE_OMIT_JSON - <a href="compile.html#omit_json">compile.html#omit_json</a></li><li>-DSQLITE_OMIT_LIKE_OPTIMIZATION - <a href="compile.html#omit_like_optimization">compile.html#omit_like_optimization</a></li><li>-DSQLITE_OMIT_LOAD_EXTENSION - <a href="compile.html#omit_load_extension">compile.html#omit_load_extension</a></li><li>-DSQLITE_OMIT_LOCALTIME - <a href="compile.html#omit_localtime">compile.html#omit_localtime</a></li><li>-DSQLITE_OMIT_LOOKASIDE - <a href="compile.html#omit_lookaside">compile.html#omit_lookaside</a></li><li>-DSQLITE_OMIT_MEMORYDB - <a href="compile.html#omit_memorydb">compile.html#omit_memorydb</a></li><li>-DSQLITE_OMIT_OR_OPTIMIZATION - <a href="compile.html#omit_or_optimization">compile.html#omit_or_optimization</a></li><li>-DSQLITE_OMIT_PAGER_PRAGMAS - <a href="compile.html#omit_pager_pragmas">compile.html#omit_pager_pragmas</a></li><li>-DSQLITE_OMIT_PRAGMA - <a href="compile.html#omit_pragma">compile.html#omit_pragma</a></li><li>-DSQLITE_OMIT_PROGRESS_CALLBACK - <a href="compile.html#omit_progress_callback">compile.html#omit_progress_callback</a></li><li>-DSQLITE_OMIT_QUICKBALANCE - <a href="compile.html#omit_quickbalance">compile.html#omit_quickbalance</a></li><li>-DSQLITE_OMIT_REINDEX - <a href="compile.html#omit_reindex">compile.html#omit_reindex</a></li><li>-DSQLITE_OMIT_SCHEMA_PRAGMAS - <a href="compile.html#omit_schema_pragmas">compile.html#omit_schema_pragmas</a></li><li>-DSQLITE_OMIT_SCHEMA_VERSION_PRAGMAS - <a href="compile.html#omit_schema_version_pragmas">compile.html#omit_schema_version_pragmas</a></li><li>-DSQLITE_OMIT_SHARED_CACHE - <a href="compile.html#omit_shared_cache">compile.html#omit_shared_cache</a></li><li>-DSQLITE_OMIT_SUBQUERY - <a href="compile.html#omit_subquery">compile.html#omit_subquery</a></li><li>-DSQLITE_OMIT_TCL_VARIABLE - <a href="compile.html#omit_tcl_variable">compile.html#omit_tcl_variable</a></li><li>-DSQLITE_OMIT_TEMPDB - <a href="compile.html#omit_tempdb">compile.html#omit_tempdb</a></li><li>-DSQLITE_OMIT_TRACE - <a href="compile.html#omit_trace">compile.html#omit_trace</a></li><li>-DSQLITE_OMIT_TRIGGER - <a href="compile.html#omit_trigger">compile.html#omit_trigger</a></li><li>-DSQLITE_OMIT_TRUNCATE_OPTIMIZATION - <a href="compile.html#omit_truncate_optimization">compile.html#omit_truncate_optimization</a></li><li>-DSQLITE_OMIT_UTF16 - <a href="compile.html#omit_utf16">compile.html#omit_utf16</a></li><li>-DSQLITE_OMIT_VACUUM - <a href="compile.html#omit_vacuum">compile.html#omit_vacuum</a></li><li>-DSQLITE_OMIT_VIEW - <a href="compile.html#omit_view">compile.html#omit_view</a></li><li>-DSQLITE_OMIT_VIRTUALTABLE - <a href="compile.html#omit_virtualtable">compile.html#omit_virtualtable</a></li><li>-DSQLITE_OMIT_WAL - <a href="compile.html#omit_wal">compile.html#omit_wal</a></li><li>-DSQLITE_OMIT_WINDOWFUNC - <a href="compile.html#omit_windowfunc">compile.html#omit_windowfunc</a></li><li>-DSQLITE_OMIT_WSD - <a href="compile.html#omit_wsd">compile.html#omit_wsd</a></li><li>-DSQLITE_OMIT_XFER_OPT - <a href="compile.html#omit_xfer_opt">compile.html#omit_xfer_opt</a></li><li>-DSQLITE_OS_OTHER - <a href="compile.html#os_other">compile.html#os_other</a></li><li>-DSQLITE_POWERSAFE_OVERWRITE - <a href="compile.html#powersafe_overwrite">compile.html#powersafe_overwrite</a></li><li>-DSQLITE_PRINTF_PRECISION_LIMIT - <a href="compile.html#printf_precision_limit">compile.html#printf_precision_limit</a></li><li>-DSQLITE_QUERY_PLANNER_LIMIT - <a href="compile.html#query_planner_limit">compile.html#query_planner_limit</a></li><li>-DSQLITE_QUERY_PLANNER_LIMIT_INCR - <a href="compile.html#query_planner_limit_incr">compile.html#query_planner_limit_incr</a></li><li>-DSQLITE_REVERSE_UNORDERED_SELECTS - <a href="compile.html#reverse_unordered_selects">compile.html#reverse_unordered_selects</a></li><li>-DSQLITE_RTREE_INT_ONLY - <a href="compile.html#rtree_int_only">compile.html#rtree_int_only</a></li><li>-DSQLITE_SECURE_DELETE - <a href="compile.html#secure_delete">compile.html#secure_delete</a></li><li>-DSQLITE_SORTER_PMASZ - <a href="compile.html#sorter_pmasz">compile.html#sorter_pmasz</a></li><li>-DSQLITE_SOUNDEX - <a href="compile.html#soundex">compile.html#soundex</a></li><li>-DSQLITE_STDCALL - <a href="compile.html#stdcall">compile.html#stdcall</a></li><li>-DSQLITE_STMTJRNL_SPILL - <a href="compile.html#stmtjrnl_spill">compile.html#stmtjrnl_spill</a></li><li>-DSQLITE_STRICT_SUBTYPE - <a href="compile.html#strict_subtype">compile.html#strict_subtype</a></li><li>-DSQLITE_SYSAPI - <a href="compile.html#sysapi">compile.html#sysapi</a></li><li>-DSQLITE_TCLAPI - <a href="compile.html#tclapi">compile.html#tclapi</a></li><li>-DSQLITE_TEMP_STORE - <a href="compile.html#temp_store">compile.html#temp_store</a></li><li>-DSQLITE_THREADSAFE - <a href="compile.html#threadsafe">compile.html#threadsafe</a></li><li>-DSQLITE_TRACE_SIZE_LIMIT - <a href="compile.html#trace_size_limit">compile.html#trace_size_limit</a></li><li>-DSQLITE_TRUSTED_SCHEMA - <a href="compile.html#trusted_schema">compile.html#trusted_schema</a></li><li>-DSQLITE_UNTESTABLE - <a href="compile.html#untestable">compile.html#untestable</a></li><li>-DSQLITE_USE_ALLOCA - <a href="compile.html#use_alloca">compile.html#use_alloca</a></li><li>-DSQLITE_USE_FCNTL_TRACE - <a href="compile.html#use_fcntl_trace">compile.html#use_fcntl_trace</a></li><li>-DSQLITE_USE_SEH - <a href="compile.html#use_seh">compile.html#use_seh</a></li><li>-DSQLITE_USE_URI - <a href="compile.html#use_uri">compile.html#use_uri</a></li><li>-DSQLITE_WIN32_HEAP_CREATE - <a href="compile.html#win32_heap_create">compile.html#win32_heap_create</a></li><li>-DSQLITE_WIN32_MALLOC - <a href="compile.html#win32_malloc">compile.html#win32_malloc</a></li><li>-DSQLITE_WIN32_MALLOC_VALIDATE - <a href="compile.html#win32_malloc_validate">compile.html#win32_malloc_validate</a></li><li>-DSQLITE_ZERO_MALLOC - <a href="compile.html#zero_malloc">compile.html#zero_malloc</a></li><li>.archive command - <a href="cli.html#sqlar">cli.html#sqlar</a></li><li>.connection - <a href="cli.html#dotconn">cli.html#dotconn</a></li><li>.databases - <a href="cli.html#dotdatabases">cli.html#dotdatabases</a></li><li>.databases command - <a href="cli.html#dotdatabases">cli.html#dotdatabases</a></li><li>.dump - <a href="cli.html#dump">cli.html#dump</a></li><li>.excel - <a href="cli.html#dotexcel">cli.html#dotexcel</a></li><li>.expert command - <a href="cli.html#expert">cli.html#expert</a></li><li>.fullschema - <a href="cli.html#fullschema">cli.html#fullschema</a></li><li>.import - <a href="cli.html#csv">cli.html#csv</a></li><li>.import command - <a href="cli.html#csv">cli.html#csv</a></li><li>.imposter dot-command - <a href="imposter.html#dotimposter">imposter.html#dotimposter</a></li><li>.load command - <a href="cli.html#dotload">cli.html#dotload</a></li><li>.mode - <a href="cli.html#dotmode">cli.html#dotmode</a></li><li>.mode quote - <a href="cli.html#dotmodequote">cli.html#dotmodequote</a></li><li>.once - <a href="cli.html#dotoutput">cli.html#dotoutput</a></li><li>.open - <a href="cli.html#dotopen">cli.html#dotopen</a></li><li>.open command - <a href="cli.html#dotopen">cli.html#dotopen</a></li><li>.output - <a href="cli.html#dotoutput">cli.html#dotoutput</a></li><li>.parameter command - <a href="cli.html#param">cli.html#param</a></li><li>.read - <a href="cli.html#dotread">cli.html#dotread</a></li><li>.recover dot-command - <a href="cli.html#recover">cli.html#recover</a></li><li>.schema - <a href="cli.html#dschema">cli.html#dschema</a></li><li>.selftest dot-command - <a href="cli.html#selftest">cli.html#selftest</a></li><li>.sha3sum dot-command - <a href="cli.html#sha3sum">cli.html#sha3sum</a></li><li>.tables - <a href="cli.html#dtables">cli.html#dtables</a></li><li>3rd-party fuzzers - <a href="testing.html#3pfuzz">testing.html#3pfuzz</a></li><li>34to35 - <a href="34to35.html">34to35.html</a></li><li>35 Faster Than The Filesystem - <a href="fasterthanfs.html">fasterthanfs.html</a></li><li>35to36 - <a href="35to36.html">35to36.html</a></li><li>about 200 SQL statements per webpage - <a href="np1queryprob.html">np1queryprob.html</a></li><li>abs - <a href="lang_corefunc.html#abs">lang_corefunc.html#abs</a></li><li>abs SQL function - <a href="lang_corefunc.html#abs">lang_corefunc.html#abs</a></li><li>ACID - <a href="transactional.html">transactional.html</a></li><li>acos - <a href="lang_mathfunc.html#acos">lang_mathfunc.html#acos</a></li><li>acos SQL function - <a href="lang_mathfunc.html#acos">lang_mathfunc.html#acos</a></li><li>acosh - <a href="lang_mathfunc.html#acosh">lang_mathfunc.html#acosh</a></li><li>acosh SQL function - <a href="lang_mathfunc.html#acosh">lang_mathfunc.html#acosh</a></li><li>add column - <a href="lang_altertable.html#altertabaddcol">lang_altertable.html#altertabaddcol</a></li><li>Adding to Zip - <a href="zipfile.html#adding_entries_to_a_zip_archive">zipfile.html#adding_entries_to_a_zip_archive</a></li><li>advanced - <a href="swarmvtab.html#advanced_usage">swarmvtab.html#advanced_usage</a></li><li>advantages of WAL-mode - <a href="wal.html#advantages">wal.html#advantages</a></li><li>affinities - <a href="datatype3.html#affinity">datatype3.html#affinity</a></li><li>affinity - <a href="datatype3.html#affinity">datatype3.html#affinity</a></li><li>affinity in compound VIEWs - <a href="datatype3.html#affcompoundview">datatype3.html#affcompoundview</a></li><li>Affinity Of Expressions - <a href="datatype3.html#expraff">datatype3.html#expraff</a></li><li>affshort - <a href="aff_short.html">aff_short.html</a></li><li>AFL - <a href="testing.html#aflfuzz">testing.html#aflfuzz</a></li><li>aggfunc - <a href="lang_aggfunc.html">lang_aggfunc.html</a></li><li>Aggregate Functions - <a href="lang_aggfunc.html">lang_aggfunc.html</a></li><li>Aggregate functions - <a href="lang_aggfunc.html">lang_aggfunc.html</a></li><li>aggregate functions - <a href="lang_aggfunc.html">lang_aggfunc.html</a></li><li>aggregate JSON SQL functions - <a href="json1.html#jgroupobjectb">json1.html#jgroupobjectb</a></li><li>aggregate SQL functions - <a href="lang_aggfunc.html">lang_aggfunc.html</a></li><li>aggregate window functions - <a href="windowfunctions.html#aggwinfunc">windowfunctions.html#aggwinfunc</a></li><li>aggregate-function-invocation - <a href="syntax/aggregate-function-invocation.html">syntax/aggregate-function-invocation.html</a></li><li>aggregate-function-invocation syntax diagram - <a href="syntax/aggregate-function-invocation.html">syntax/aggregate-function-invocation.html</a></li><li>alphabetical listing of documents - <a href="doclist.html">doclist.html</a></li><li>ALTER - <a href="lang_altertable.html">lang_altertable.html</a></li><li>ALTER TABLE - <a href="lang_altertable.html">lang_altertable.html</a></li><li>ALTER TABLE ADD COLUMN - <a href="lang_altertable.html#altertabaddcol">lang_altertable.html#altertabaddcol</a></li><li>ALTER TABLE DROP COLUMN - <a href="lang_altertable.html#altertabdropcol">lang_altertable.html#altertabdropcol</a></li><li>ALTER TABLE RENAME - <a href="lang_altertable.html#altertabrename">lang_altertable.html#altertabrename</a></li><li>ALTER TABLE RENAME COLUMN - <a href="lang_altertable.html#altertabmvcol">lang_altertable.html#altertabmvcol</a></li><li>ALTER TABLE RENAME documentation - <a href="lang_altertable.html#altertabrename">lang_altertable.html#altertabrename</a></li><li>alter-table-stmt - <a href="syntax/alter-table-stmt.html">syntax/alter-table-stmt.html</a></li><li>alter-table-stmt syntax diagram - <a href="syntax/alter-table-stmt.html">syntax/alter-table-stmt.html</a></li><li>altertable - <a href="lang_altertable.html">lang_altertable.html</a></li><li>amalgamation - <a href="amalgamation.html">amalgamation.html</a></li><li>amalgamation tarball - <a href="download.html">download.html</a></li><li>ambiguous dates - <a href="lang_datefunc.html#dtambg">lang_datefunc.html#dtambg</a></li><li>American Fuzzy Lop fuzzer - <a href="testing.html#aflfuzz">testing.html#aflfuzz</a></li><li>analysis_limit - <a href="pragma.html#pragma_analysis_limit">pragma.html#pragma_analysis_limit</a></li><li>analysis_limit pragma - <a href="pragma.html#pragma_analysis_limit">pragma.html#pragma_analysis_limit</a></li><li>ANALYZE - <a href="lang_analyze.html">lang_analyze.html</a></li><li>analyze - <a href="lang_analyze.html">lang_analyze.html</a></li><li>analyze-stmt - <a href="syntax/analyze-stmt.html">syntax/analyze-stmt.html</a></li><li>analyze-stmt syntax diagram - <a href="syntax/analyze-stmt.html">syntax/analyze-stmt.html</a></li><li>appformat - <a href="appfileformat.html">appfileformat.html</a></li><li>Application File Format - <a href="appfileformat.html">appfileformat.html</a></li><li>application file format - <a href="appfileformat.html">appfileformat.html</a></li><li>application file-format - <a href="appfileformat.html">appfileformat.html</a></li><li>Application ID - <a href="fileformat2.html#appid">fileformat2.html#appid</a></li><li>application-defined function attacks - <a href="appfunc.html#sec">appfunc.html#sec</a></li><li>application-defined SQL function - <a href="appfunc.html">appfunc.html</a></li><li>application-defined SQL functions - <a href="appfunc.html">appfunc.html</a></li><li>application-defined window functions - <a href="windowfunctions.html#udfwinfunc">windowfunctions.html#udfwinfunc</a></li><li>application_id - <a href="pragma.html#pragma_application_id">pragma.html#pragma_application_id</a></li><li>application_id pragma - <a href="pragma.html#pragma_application_id">pragma.html#pragma_application_id</a></li><li>appreciate the freedom - <a href="flextypegood.html">flextypegood.html</a></li><li>Appropriate Uses For SQLite - <a href="whentouse.html">whentouse.html</a></li><li>approximate ANALYZE - <a href="lang_analyze.html#approx">lang_analyze.html#approx</a></li><li>Approximate ANALYZE For Large Databases - <a href="lang_analyze.html#approx">lang_analyze.html#approx</a></li><li>asin - <a href="lang_mathfunc.html#asin">lang_mathfunc.html#asin</a></li><li>asin SQL function - <a href="lang_mathfunc.html#asin">lang_mathfunc.html#asin</a></li><li>asinh - <a href="lang_mathfunc.html#asinh">lang_mathfunc.html#asinh</a></li><li>asinh SQL function - <a href="lang_mathfunc.html#asinh">lang_mathfunc.html#asinh</a></li><li>asynchronous I/O backend - <a href="asyncvfs.html">asyncvfs.html</a></li><li>asynchronous VFS - <a href="asyncvfs.html">asyncvfs.html</a></li><li>atan - <a href="lang_mathfunc.html#atan">lang_mathfunc.html#atan</a></li><li>atan SQL function - <a href="lang_mathfunc.html#atan">lang_mathfunc.html#atan</a></li><li>atan2 - <a href="lang_mathfunc.html#atan2">lang_mathfunc.html#atan2</a></li><li>atan2 SQL function - <a href="lang_mathfunc.html#atan2">lang_mathfunc.html#atan2</a></li><li>atanh - <a href="lang_mathfunc.html#atanh">lang_mathfunc.html#atanh</a></li><li>atanh SQL function - <a href="lang_mathfunc.html#atanh">lang_mathfunc.html#atanh</a></li><li>Atomic Commit - <a href="atomiccommit.html">atomiccommit.html</a></li><li>atomic commit - <a href="atomiccommit.html">atomiccommit.html</a></li><li>ATTACH - <a href="lang_attach.html">lang_attach.html</a></li><li>attach - <a href="lang_attach.html">lang_attach.html</a></li><li>ATTACH DATABASE - <a href="lang_attach.html">lang_attach.html</a></li><li>attach-stmt - <a href="syntax/attach-stmt.html">syntax/attach-stmt.html</a></li><li>attach-stmt syntax diagram - <a href="syntax/attach-stmt.html">syntax/attach-stmt.html</a></li><li>attached - <a href="lang_attach.html">lang_attach.html</a></li><li>attack resistance - <a href="security.html">security.html</a></li><li>authorizer callback - <a href="c3ref/set_authorizer.html">c3ref/set_authorizer.html</a></li><li>authorizer method - <a href="tclsqlite.html#authorizer">tclsqlite.html#authorizer</a></li><li>auto modifier - <a href="lang_datefunc.html#automod">lang_datefunc.html#automod</a></li><li>auto_vacuum - <a href="pragma.html#pragma_auto_vacuum">pragma.html#pragma_auto_vacuum</a></li><li>auto_vacuum pragma - <a href="pragma.html#pragma_auto_vacuum">pragma.html#pragma_auto_vacuum</a></li><li>autocommit mode - <a href="c3ref/get_autocommit.html">c3ref/get_autocommit.html</a></li><li>AUTOINCREMENT - <a href="autoinc.html">autoinc.html</a></li><li>automated undo/redo stack - <a href="undoredo.html">undoredo.html</a></li><li>automatic indexes - <a href="optoverview.html#autoindex">optoverview.html#autoindex</a></li><li>Automatic indexing - <a href="optoverview.html#autoindex">optoverview.html#autoindex</a></li><li>automatic indexing - <a href="optoverview.html#autoindex">optoverview.html#autoindex</a></li><li>automatic_index - <a href="pragma.html#pragma_automatic_index">pragma.html#pragma_automatic_index</a></li><li>automatic_index pragma - <a href="pragma.html#pragma_automatic_index">pragma.html#pragma_automatic_index</a></li><li>Automatically Running ANALYZE - <a href="lang_analyze.html#autoanalyze">lang_analyze.html#autoanalyze</a></li><li>automatically running ANALYZE - <a href="lang_analyze.html#autoanalyze">lang_analyze.html#autoanalyze</a></li><li>automerge command - <a href="fts3.html#*fts4automergecmd">fts3.html#*fts4automergecmd</a></li><li>auxiliary columns - <a href="rtree.html#auxcol">rtree.html#auxcol</a></li><li>auxiliary columns in r-tree tables - <a href="rtree.html#auxcol">rtree.html#auxcol</a></li><li>auxiliary function mapping - <a href="fts5.html#sorting_by_auxiliary_function_results">fts5.html#sorting_by_auxiliary_function_results</a></li><li>avg - <a href="lang_aggfunc.html#avg">lang_aggfunc.html#avg</a></li><li>avg aggregate function - <a href="lang_aggfunc.html#avg">lang_aggfunc.html#avg</a></li><li>avoiding large WAL files - <a href="wal.html#bigwal">wal.html#bigwal</a></li><li>B-tree - <a href="fileformat2.html#btree">fileformat2.html#btree</a></li><li>B-Trees - <a href="fileformat2.html#btree">fileformat2.html#btree</a></li><li>backup API - <a href="backup.html">backup.html</a></li><li>backup method - <a href="tclsqlite.html#backup">tclsqlite.html#backup</a></li><li>bare aggregate terms - <a href="lang_select.html#bareagg">lang_select.html#bareagg</a></li><li>base64 SQL function - <a href="cli.html#base64">cli.html#base64</a></li><li>base85 SQL function - <a href="cli.html#base85">cli.html#base85</a></li><li>bcvtab - <a href="bytecodevtab.html">bytecodevtab.html</a></li><li>BEGIN - <a href="lang_transaction.html">lang_transaction.html</a></li><li>BEGIN EXCLUSIVE - <a href="lang_transaction.html#immediate">lang_transaction.html#immediate</a></li><li>BEGIN IMMEDIATE - <a href="lang_transaction.html#immediate">lang_transaction.html#immediate</a></li><li>begin-stmt - <a href="syntax/begin-stmt.html">syntax/begin-stmt.html</a></li><li>begin-stmt syntax diagram - <a href="syntax/begin-stmt.html">syntax/begin-stmt.html</a></li><li>benefits of using WITHOUT ROWID - <a href="withoutrowid.html#bene">withoutrowid.html#bene</a></li><li>BETWEEN - <a href="lang_expr.html#between">lang_expr.html#between</a></li><li>BINARY - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>BINARY collating function - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>binary operators - <a href="lang_expr.html#binaryops">lang_expr.html#binaryops</a></li><li>bind_fallback method - <a href="tclsqlite.html#bind_fallback">tclsqlite.html#bind_fallback</a></li><li>BLOB handle - <a href="c3ref/blob.html">c3ref/blob.html</a></li><li>BLOB handles - <a href="c3ref/blob.html">c3ref/blob.html</a></li><li>BLOB I/O performance - <a href="intern-v-extern-blob.html">intern-v-extern-blob.html</a></li><li>block sorting - <a href="queryplanner.html#partialsort">queryplanner.html#partialsort</a></li><li>books about SQLite - <a href="books.html">books.html</a></li><li>boolean datatype - <a href="datatype3.html#boolean">datatype3.html#boolean</a></li><li>boolean expression - <a href="lang_expr.html#booleanexpr">lang_expr.html#booleanexpr</a></li><li>bound parameter - <a href="lang_expr.html#varparam">lang_expr.html#varparam</a></li><li>bound parameters - <a href="lang_expr.html#varparam">lang_expr.html#varparam</a></li><li>bugs - <a href="fts3.html#limitations">fts3.html#limitations</a></li><li>build product names - <a href="download.html#encoding">download.html#encoding</a></li><li>building a DLL - <a href="howtocompile.html#dll">howtocompile.html#dll</a></li><li>building the amalgamation - <a href="howtocompile.html#amal">howtocompile.html#amal</a></li><li>built-in memory allocators - <a href="malloc.html#altalloc">malloc.html#altalloc</a></li><li>built-in printf - <a href="printf.html">printf.html</a></li><li>built-in SQL math functions - <a href="lang_mathfunc.html">lang_mathfunc.html</a></li><li>built-in window functions - <a href="windowfunctions.html#builtins">windowfunctions.html#builtins</a></li><li>built-ins - <a href="windowfunctions.html#builtins">windowfunctions.html#builtins</a></li><li>builtin window functions - <a href="windowfunctions.html#biwinfunc">windowfunctions.html#biwinfunc</a></li><li>busy handler - <a href="c3ref/busy_handler.html">c3ref/busy_handler.html</a></li><li>busy method - <a href="tclsqlite.html#busy">tclsqlite.html#busy</a></li><li>busy-handler callback - <a href="c3ref/busy_handler.html">c3ref/busy_handler.html</a></li><li>busy_timeout - <a href="pragma.html#pragma_busy_timeout">pragma.html#pragma_busy_timeout</a></li><li>busy_timeout pragma - <a href="pragma.html#pragma_busy_timeout">pragma.html#pragma_busy_timeout</a></li><li>byte-order determination rules - <a href="c3ref/bind_blob.html#byteorderdeterminationrules">c3ref/bind_blob.html#byteorderdeterminationrules</a></li><li>bytecode - <a href="opcode.html">opcode.html</a></li><li>bytecode and tables_used virtual tables - <a href="bytecodevtab.html">bytecodevtab.html</a></li><li>bytecode engine - <a href="opcode.html">opcode.html</a></li><li>bytecode virtual table - <a href="bytecodevtab.html">bytecodevtab.html</a></li><li>bytecodes - <a href="opcode.html">opcode.html</a></li><li>C-API function list - <a href="c3ref/funclist.html">c3ref/funclist.html</a></li><li>C-language Interface - <a href="c3ref/intro.html">c3ref/intro.html</a></li><li>cache method - <a href="tclsqlite.html#cache">tclsqlite.html#cache</a></li><li>cache query parameter - <a href="uri.html#uricache">uri.html#uricache</a></li><li>cache_size - <a href="pragma.html#pragma_cache_size">pragma.html#pragma_cache_size</a></li><li>cache_size pragma - <a href="pragma.html#pragma_cache_size">pragma.html#pragma_cache_size</a></li><li>cache_spill - <a href="pragma.html#pragma_cache_spill">pragma.html#pragma_cache_spill</a></li><li>cache_spill pragma - <a href="pragma.html#pragma_cache_spill">pragma.html#pragma_cache_spill</a></li><li>canonical source code - <a href="getthecode.html">getthecode.html</a></li><li>capi3ref - <a href="c3ref/intro.html">c3ref/intro.html</a></li><li>capi3ref_funclist - <a href="c3ref/funclist.html">c3ref/funclist.html</a></li><li>carray - <a href="carray.html">carray.html</a></li><li>carray table-valued function - <a href="carray.html">carray.html</a></li><li>CASE expression - <a href="lang_expr.html#case">lang_expr.html#case</a></li><li>case_sensitive_like - <a href="pragma.html#pragma_case_sensitive_like">pragma.html#pragma_case_sensitive_like</a></li><li>case_sensitive_like pragma - <a href="pragma.html#pragma_case_sensitive_like">pragma.html#pragma_case_sensitive_like</a></li><li>CAST - <a href="lang_expr.html#castexpr">lang_expr.html#castexpr</a></li><li>cast - <a href="lang_expr.html#castexpr">lang_expr.html#castexpr</a></li><li>CAST expression - <a href="lang_expr.html#castexpr">lang_expr.html#castexpr</a></li><li>CAST operator - <a href="lang_expr.html#castexpr">lang_expr.html#castexpr</a></li><li>categorical listing of SQLite documents - <a href="docs.html">docs.html</a></li><li>ceil - <a href="lang_mathfunc.html#ceil">lang_mathfunc.html#ceil</a></li><li>ceiling - <a href="lang_mathfunc.html#ceil">lang_mathfunc.html#ceil</a></li><li>cell format summary - <a href="fileformat2.html#cellformat">fileformat2.html#cellformat</a></li><li>cell payload - <a href="fileformat2.html#cell_payload">fileformat2.html#cell_payload</a></li><li>cell_size_check - <a href="pragma.html#pragma_cell_size_check">pragma.html#pragma_cell_size_check</a></li><li>cell_size_check pragma - <a href="pragma.html#pragma_cell_size_check">pragma.html#pragma_cell_size_check</a></li><li>cfgerrors - <a href="howtocorrupt.html#cfgerr">howtocorrupt.html#cfgerr</a></li><li>change counter - <a href="fileformat2.html#chngctr">fileformat2.html#chngctr</a></li><li>changes - <a href="lang_corefunc.html#changes">lang_corefunc.html#changes</a></li><li>changes method - <a href="tclsqlite.html#changes">tclsqlite.html#changes</a></li><li>changes SQL function - <a href="lang_corefunc.html#changes">lang_corefunc.html#changes</a></li><li>changeset - <a href="sessionintro.html#changeset">sessionintro.html#changeset</a></li><li>changesets - <a href="sessionintro.html#changeset">sessionintro.html#changeset</a></li><li>char - <a href="lang_corefunc.html#char">lang_corefunc.html#char</a></li><li>char SQL function - <a href="lang_corefunc.html#char">lang_corefunc.html#char</a></li><li>CHECK - <a href="lang_createtable.html#ckconst">lang_createtable.html#ckconst</a></li><li>CHECK constraint - <a href="lang_createtable.html#ckconst">lang_createtable.html#ckconst</a></li><li>CHECK constraints - <a href="lang_createtable.html#ckconst">lang_createtable.html#ckconst</a></li><li>checklist - <a href="testing.html#cklist">testing.html#cklist</a></li><li>checkpoint - <a href="wal.html#ckpt">wal.html#ckpt</a></li><li>checkpoint mode - <a href="c3ref/c_checkpoint_full.html">c3ref/c_checkpoint_full.html</a></li><li>checkpoint_fullfsync - <a href="pragma.html#pragma_checkpoint_fullfsync">pragma.html#pragma_checkpoint_fullfsync</a></li><li>checkpoint_fullfsync pragma - <a href="pragma.html#pragma_checkpoint_fullfsync">pragma.html#pragma_checkpoint_fullfsync</a></li><li>checkpointed - <a href="wal.html#ckpt">wal.html#ckpt</a></li><li>checkpointing - <a href="wal.html#ckpt">wal.html#ckpt</a></li><li>checksum VFS - <a href="cksumvfs.html">cksumvfs.html</a></li><li>checksum VFS shim - <a href="cksumvfs.html">cksumvfs.html</a></li><li>child key - <a href="foreignkeys.html#parentchild">foreignkeys.html#parentchild</a></li><li>child table - <a href="foreignkeys.html#parentchild">foreignkeys.html#parentchild</a></li><li>chronology - <a href="chronology.html">chronology.html</a></li><li>cintro - <a href="cintro.html">cintro.html</a></li><li>cksumvfs - <a href="cksumvfs.html">cksumvfs.html</a></li><li>CLI - <a href="cli.html">cli.html</a></li><li>clone the entire repository - <a href="getthecode.html#clone">getthecode.html#clone</a></li><li>close method - <a href="tclsqlite.html#close">tclsqlite.html#close</a></li><li>Clustered indexes - <a href="withoutrowid.html">withoutrowid.html</a></li><li>co-routines - <a href="optoverview.html#coroutines">optoverview.html#coroutines</a></li><li>coalesce - <a href="lang_corefunc.html#coalesce">lang_corefunc.html#coalesce</a></li><li>coalesce SQL function - <a href="lang_corefunc.html#coalesce">lang_corefunc.html#coalesce</a></li><li>Code of Conduct - <a href="codeofconduct.html">codeofconduct.html</a></li><li>Code of Ethics - <a href="codeofethics.html">codeofethics.html</a></li><li>Code of Ethics of the Project Founder - <a href="codeofethics.html">codeofethics.html</a></li><li>code repositories - <a href="download.html#srctree">download.html#srctree</a></li><li>COLLATE - <a href="lang_createindex.html#collidx">lang_createindex.html#collidx</a></li><li>COLLATE clause - <a href="lang_createtable.html#collateclause">lang_createtable.html#collateclause</a></li><li>COLLATE clauses - <a href="lang_createtable.html#collateclause">lang_createtable.html#collateclause</a></li><li>COLLATE constraint - <a href="lang_createtable.html#collateclause">lang_createtable.html#collateclause</a></li><li>collate method - <a href="tclsqlite.html#collate">tclsqlite.html#collate</a></li><li>COLLATE operator - <a href="lang_expr.html#collateop">lang_expr.html#collateop</a></li><li>collating function - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>collating sequence - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>collating sequences - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>collation - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>collation_list - <a href="pragma.html#pragma_collation_list">pragma.html#pragma_collation_list</a></li><li>collation_list pragma - <a href="pragma.html#pragma_collation_list">pragma.html#pragma_collation_list</a></li><li>collation_needed method - <a href="tclsqlite.html#collation_needed">tclsqlite.html#collation_needed</a></li><li>column access functions - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>column affinity - <a href="datatype3.html#affinity">datatype3.html#affinity</a></li><li>column definition - <a href="lang_createtable.html#tablecoldef">lang_createtable.html#tablecoldef</a></li><li>column definitions - <a href="lang_createtable.html#tablecoldef">lang_createtable.html#tablecoldef</a></li><li>column-constraint - <a href="syntax/column-constraint.html">syntax/column-constraint.html</a></li><li>column-constraint syntax diagram - <a href="syntax/column-constraint.html">syntax/column-constraint.html</a></li><li>column-def - <a href="syntax/column-def.html">syntax/column-def.html</a></li><li>column-def syntax diagram - <a href="syntax/column-def.html">syntax/column-def.html</a></li><li>column-name-list - <a href="syntax/column-name-list.html">syntax/column-name-list.html</a></li><li>column-name-list syntax diagram - <a href="syntax/column-name-list.html">syntax/column-name-list.html</a></li><li>Columnar output modes - <a href="cli.html#clmnr">cli.html#clmnr</a></li><li>columnar output modes - <a href="cli.html#clmnr">cli.html#clmnr</a></li><li>colUsed field - <a href="vtab.html#colUsed">vtab.html#colUsed</a></li><li>comma option - <a href="printf.html#comma">printf.html#comma</a></li><li>Command Line Interface - <a href="cli.html">cli.html</a></li><li>command-line interface - <a href="cli.html">cli.html</a></li><li>command-line options - <a href="cli.html#clopts">cli.html#clopts</a></li><li>command-line shell - <a href="cli.html">cli.html</a></li><li>commands - <a href="fts3.html#commands">fts3.html#commands</a></li><li>comment - <a href="lang_comment.html">lang_comment.html</a></li><li>comment-syntax - <a href="syntax/comment-syntax.html">syntax/comment-syntax.html</a></li><li>comment-syntax syntax diagram - <a href="syntax/comment-syntax.html">syntax/comment-syntax.html</a></li><li>comments - <a href="lang_comment.html">lang_comment.html</a></li><li>COMMIT - <a href="lang_transaction.html">lang_transaction.html</a></li><li>commit-stmt - <a href="syntax/commit-stmt.html">syntax/commit-stmt.html</a></li><li>commit-stmt syntax diagram - <a href="syntax/commit-stmt.html">syntax/commit-stmt.html</a></li><li>commit_hook method - <a href="tclsqlite.html#commit_hook">tclsqlite.html#commit_hook</a></li><li>common table expressions - <a href="lang_with.html">lang_with.html</a></li><li>common-table-expression - <a href="syntax/common-table-expression.html">syntax/common-table-expression.html</a></li><li>common-table-expression syntax diagram - <a href="syntax/common-table-expression.html">syntax/common-table-expression.html</a></li><li>comparison affinity rules - <a href="datatype3.html#compaff">datatype3.html#compaff</a></li><li>comparison expressions - <a href="datatype3.html#comparisons">datatype3.html#comparisons</a></li><li>comparison with fts4 - <a href="fts5.html#appendix_a">fts5.html#appendix_a</a></li><li>compilation - <a href="swarmvtab.html#compiling_and_using_swarmvtab">swarmvtab.html#compiling_and_using_swarmvtab</a></li><li>compile fts - <a href="fts3.html#compiling_and_enabling_fts3_and_fts4">fts3.html#compiling_and_enabling_fts3_and_fts4</a></li><li>compile loadable extensions - <a href="loadext.html#build">loadext.html#build</a></li><li>compile-time options - <a href="compile.html">compile.html</a></li><li>compile_options - <a href="pragma.html#pragma_compile_options">pragma.html#pragma_compile_options</a></li><li>compile_options pragma - <a href="pragma.html#pragma_compile_options">pragma.html#pragma_compile_options</a></li><li>Compiling Loadable Extensions - <a href="loadext.html#build">loadext.html#build</a></li><li>compiling the CLI - <a href="howtocompile.html#cli">howtocompile.html#cli</a></li><li>compiling the TCL interface - <a href="howtocompile.html#tcl">howtocompile.html#tcl</a></li><li>complete list of SQLite releases - <a href="changes.html">changes.html</a></li><li>complete method - <a href="tclsqlite.html#complete">tclsqlite.html#complete</a></li><li>COMPLETION - <a href="completion.html">completion.html</a></li><li>COMPLETION extension - <a href="completion.html">completion.html</a></li><li>COMPLETION table-valued function - <a href="completion.html">completion.html</a></li><li>compound query - <a href="lang_select.html#compound">lang_select.html#compound</a></li><li>compound SELECT - <a href="lang_select.html#compound">lang_select.html#compound</a></li><li>compound select - <a href="lang_select.html#compound">lang_select.html#compound</a></li><li>compound SELECTs - <a href="lang_select.html#compound">lang_select.html#compound</a></li><li>compound-operator - <a href="syntax/compound-operator.html">syntax/compound-operator.html</a></li><li>compound-operator syntax diagram - <a href="syntax/compound-operator.html">syntax/compound-operator.html</a></li><li>compound-select-stmt - <a href="syntax/compound-select-stmt.html">syntax/compound-select-stmt.html</a></li><li>compound-select-stmt syntax diagram - <a href="syntax/compound-select-stmt.html">syntax/compound-select-stmt.html</a></li><li>compressed FTS4 content - <a href="fts3.html#*fts4compression">fts3.html#*fts4compression</a></li><li>compute the Mandelbrot set - <a href="lang_with.html#mandelbrot">lang_with.html#mandelbrot</a></li><li>computed columns - <a href="gencol.html">gencol.html</a></li><li>concat - <a href="lang_corefunc.html#concat">lang_corefunc.html#concat</a></li><li>concat SQL function - <a href="lang_corefunc.html#concat">lang_corefunc.html#concat</a></li><li>concat_ws - <a href="lang_corefunc.html#concat_ws">lang_corefunc.html#concat_ws</a></li><li>concat_ws SQL function - <a href="lang_corefunc.html#concat_ws">lang_corefunc.html#concat_ws</a></li><li>config method - <a href="tclsqlite.html#config">tclsqlite.html#config</a></li><li>configurable edit distances - <a href="spellfix1.html#configeditdist">spellfix1.html#configeditdist</a></li><li>configuration option - <a href="c3ref/c_config_covering_index_scan.html">c3ref/c_config_covering_index_scan.html</a></li><li>conflict - <a href="lang_conflict.html">lang_conflict.html</a></li><li>conflict clause - <a href="lang_conflict.html">lang_conflict.html</a></li><li>conflict resolution algorithm - <a href="lang_conflict.html">lang_conflict.html</a></li><li>conflict resolution mode - <a href="c3ref/c_fail.html">c3ref/c_fail.html</a></li><li>conflict-clause - <a href="syntax/conflict-clause.html">syntax/conflict-clause.html</a></li><li>conflict-clause syntax diagram - <a href="syntax/conflict-clause.html">syntax/conflict-clause.html</a></li><li>constant-propagation optimization - <a href="optoverview.html#constprop">optoverview.html#constprop</a></li><li>contentless fts4 tables - <a href="fts3.html#_contentless_fts4_tables_">fts3.html#_contentless_fts4_tables_</a></li><li>contentless-delete - <a href="fts5.html#clssdeltab">fts5.html#clssdeltab</a></li><li>copy method - <a href="tclsqlite.html#copy">tclsqlite.html#copy</a></li><li>copyright - <a href="copyright.html">copyright.html</a></li><li>Core Functions - <a href="lang_corefunc.html">lang_corefunc.html</a></li><li>core URI query parameters - <a href="c3ref/open.html#coreuriqueryparameters">c3ref/open.html#coreuriqueryparameters</a></li><li>corefunc - <a href="lang_corefunc.html">lang_corefunc.html</a></li><li>coreqp - <a href="uri.html#coreqp">uri.html#coreqp</a></li><li>correlated subqueries - <a href="lang_expr.html#cosub">lang_expr.html#cosub</a></li><li>cos - <a href="lang_mathfunc.html#cos">lang_mathfunc.html#cos</a></li><li>cos SQL function - <a href="lang_mathfunc.html#cos">lang_mathfunc.html#cos</a></li><li>cosh - <a href="lang_mathfunc.html#cosh">lang_mathfunc.html#cosh</a></li><li>cosh SQL function - <a href="lang_mathfunc.html#cosh">lang_mathfunc.html#cosh</a></li><li>count - <a href="lang_aggfunc.html#count">lang_aggfunc.html#count</a></li><li>count aggregate function - <a href="lang_aggfunc.html#count">lang_aggfunc.html#count</a></li><li>count_changes - <a href="pragma.html#pragma_count_changes">pragma.html#pragma_count_changes</a></li><li>count_changes pragma - <a href="pragma.html#pragma_count_changes">pragma.html#pragma_count_changes</a></li><li>coverage testing vs. fuzz testing - <a href="testing.html#tension">testing.html#tension</a></li><li>covering index - <a href="queryplanner.html#covidx">queryplanner.html#covidx</a></li><li>covering indexes - <a href="queryplanner.html#covidx">queryplanner.html#covidx</a></li><li>covering indices - <a href="queryplanner.html#covidx">queryplanner.html#covidx</a></li><li>CPU cycles used - <a href="cpu.html">cpu.html</a></li><li>CPU performance measurement - <a href="cpu.html">cpu.html</a></li><li>CREATE INDEX - <a href="lang_createindex.html">lang_createindex.html</a></li><li>CREATE TABLE - <a href="lang_createtable.html">lang_createtable.html</a></li><li>CREATE TABLE AS - <a href="lang_createtable.html#createtabas">lang_createtable.html#createtabas</a></li><li>CREATE TRIGGER - <a href="lang_createtrigger.html">lang_createtrigger.html</a></li><li>CREATE VIEW - <a href="lang_createview.html">lang_createview.html</a></li><li>CREATE VIRTUAL TABLE - <a href="lang_createvtab.html">lang_createvtab.html</a></li><li>create-index-stmt - <a href="syntax/create-index-stmt.html">syntax/create-index-stmt.html</a></li><li>create-index-stmt syntax diagram - <a href="syntax/create-index-stmt.html">syntax/create-index-stmt.html</a></li><li>create-table-stmt - <a href="syntax/create-table-stmt.html">syntax/create-table-stmt.html</a></li><li>create-table-stmt syntax diagram - <a href="syntax/create-table-stmt.html">syntax/create-table-stmt.html</a></li><li>create-trigger-stmt - <a href="syntax/create-trigger-stmt.html">syntax/create-trigger-stmt.html</a></li><li>create-trigger-stmt syntax diagram - <a href="syntax/create-trigger-stmt.html">syntax/create-trigger-stmt.html</a></li><li>create-view-stmt - <a href="syntax/create-view-stmt.html">syntax/create-view-stmt.html</a></li><li>create-view-stmt syntax diagram - <a href="syntax/create-view-stmt.html">syntax/create-view-stmt.html</a></li><li>create-virtual-table-stmt - <a href="syntax/create-virtual-table-stmt.html">syntax/create-virtual-table-stmt.html</a></li><li>create-virtual-table-stmt syntax diagram - <a href="syntax/create-virtual-table-stmt.html">syntax/create-virtual-table-stmt.html</a></li><li>createindex - <a href="lang_createindex.html">lang_createindex.html</a></li><li>createtable - <a href="lang_createtable.html">lang_createtable.html</a></li><li>createtrigger - <a href="lang_createtrigger.html">lang_createtrigger.html</a></li><li>createview - <a href="lang_createview.html">lang_createview.html</a></li><li>createvtab - <a href="lang_createvtab.html">lang_createvtab.html</a></li><li>crew - <a href="crew.html">crew.html</a></li><li>CROSS JOIN - <a href="optoverview.html#crossjoin">optoverview.html#crossjoin</a></li><li>csv - <a href="csv.html">csv.html</a></li><li>CSV export - <a href="cli.html#csvout">cli.html#csvout</a></li><li>CSV import - <a href="cli.html#csv">cli.html#csv</a></li><li>CSV virtual table - <a href="csv.html">csv.html</a></li><li>cte-table-name - <a href="syntax/cte-table-name.html">syntax/cte-table-name.html</a></li><li>cte-table-name syntax diagram - <a href="syntax/cte-table-name.html">syntax/cte-table-name.html</a></li><li>custom auxiliary functions - <a href="fts5.html#custom_auxiliary_functions_api_reference">fts5.html#custom_auxiliary_functions_api_reference</a></li><li>custom auxiliary overview - <a href="fts5.html#custom_auxiliary_functions_api_overview">fts5.html#custom_auxiliary_functions_api_overview</a></li><li>custom builds - <a href="custombuild.html">custombuild.html</a></li><li>custom r-tree queries - <a href="rtree.html#customquery">rtree.html#customquery</a></li><li>custom SQL function - <a href="appfunc.html">appfunc.html</a></li><li>custom SQL functions - <a href="appfunc.html">appfunc.html</a></li><li>custom tokenizers - <a href="fts5.html#custom_tokenizers">fts5.html#custom_tokenizers</a></li><li>custom virtual tables - <a href="vtab.html#customvtab">vtab.html#customvtab</a></li><li>CVEs - <a href="cves.html">cves.html</a></li><li>Dan Kennedy - <a href="crew.html#dan">crew.html#dan</a></li><li>data container - <a href="whentouse.html#container">whentouse.html#container</a></li><li>data transfer format - <a href="whentouse.html#wireproto">whentouse.html#wireproto</a></li><li>data_store_directory - <a href="pragma.html#pragma_data_store_directory">pragma.html#pragma_data_store_directory</a></li><li>data_store_directory pragma - <a href="pragma.html#pragma_data_store_directory">pragma.html#pragma_data_store_directory</a></li><li>data_version - <a href="pragma.html#pragma_data_version">pragma.html#pragma_data_version</a></li><li>data_version pragma - <a href="pragma.html#pragma_data_version">pragma.html#pragma_data_version</a></li><li>database as container object - <a href="sqlar.html#dbasobj">sqlar.html#dbasobj</a></li><li>database as object - <a href="sqlar.html#dbasobj">sqlar.html#dbasobj</a></li><li>database connection - <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a></li><li>database connections - <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a></li><li>database corruption caused by inconsistent use of 83 filenames - <a href="shortnames.html#db83corrupt">shortnames.html#db83corrupt</a></li><li>database filename aliasing - <a href="howtocorrupt.html#alias">howtocorrupt.html#alias</a></li><li>database header - <a href="fileformat2.html#database_header">fileformat2.html#database_header</a></li><li>database_list - <a href="pragma.html#pragma_database_list">pragma.html#pragma_database_list</a></li><li>database_list pragma - <a href="pragma.html#pragma_database_list">pragma.html#pragma_database_list</a></li><li>datatype - <a href="datatype3.html">datatype3.html</a></li><li>date - <a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a></li><li>date and time datatype - <a href="datatype3.html#datetime">datatype3.html#datetime</a></li><li>Date And Time Functions - <a href="lang_datefunc.html">lang_datefunc.html</a></li><li>date and time functions - <a href="lang_datefunc.html">lang_datefunc.html</a></li><li>date SQL function - <a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a></li><li>date/time modifiers - <a href="lang_datefunc.html#dtmods">lang_datefunc.html#dtmods</a></li><li>date/time special case - <a href="deterministic.html#dtexception">deterministic.html#dtexception</a></li><li>datefunc - <a href="lang_datefunc.html">lang_datefunc.html</a></li><li>datetime - <a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a></li><li>datetime SQL function - <a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a></li><li>dbghints - <a href="debugging.html">debugging.html</a></li><li>dbhash - <a href="dbhash.html">dbhash.html</a></li><li>dbhash.exe - <a href="dbhash.html">dbhash.html</a></li><li>dbsqlfuzz - <a href="testing.html#dbsqlfuzz">testing.html#dbsqlfuzz</a></li><li>dbstat - <a href="dbstat.html">dbstat.html</a></li><li>DBSTAT aggregated mode - <a href="dbstat.html#dbstatagg">dbstat.html#dbstatagg</a></li><li>DBSTAT virtual table - <a href="dbstat.html">dbstat.html</a></li><li>dbstat virtual table - <a href="dbstat.html">dbstat.html</a></li><li>debugging hints - <a href="debugging.html">debugging.html</a></li><li>debugging memory allocator - <a href="malloc.html#memdebug">malloc.html#memdebug</a></li><li>decimal extension - <a href="floatingpoint.html#decext">floatingpoint.html#decext</a></li><li>decision checklist - <a href="whentouse.html#dbcklst">whentouse.html#dbcklst</a></li><li>DEFAULT clauses - <a href="lang_createtable.html#dfltval">lang_createtable.html#dfltval</a></li><li>default column value - <a href="lang_createtable.html#dfltval">lang_createtable.html#dfltval</a></li><li>default memory allocator - <a href="malloc.html#defaultalloc">malloc.html#defaultalloc</a></li><li>default value - <a href="lang_createtable.html#dfltval">lang_createtable.html#dfltval</a></li><li>default_cache_size - <a href="pragma.html#pragma_default_cache_size">pragma.html#pragma_default_cache_size</a></li><li>default_cache_size pragma - <a href="pragma.html#pragma_default_cache_size">pragma.html#pragma_default_cache_size</a></li><li>defense against dark arts - <a href="security.html">security.html</a></li><li>defense against the dark arts - <a href="security.html">security.html</a></li><li>defensive code - <a href="testing.html#defcode">testing.html#defcode</a></li><li>defer_foreign_keys - <a href="pragma.html#pragma_defer_foreign_keys">pragma.html#pragma_defer_foreign_keys</a></li><li>defer_foreign_keys pragma - <a href="pragma.html#pragma_defer_foreign_keys">pragma.html#pragma_defer_foreign_keys</a></li><li>degrees - <a href="lang_mathfunc.html#degrees">lang_mathfunc.html#degrees</a></li><li>degrees SQL function - <a href="lang_mathfunc.html#degrees">lang_mathfunc.html#degrees</a></li><li>DELETE - <a href="lang_delete.html">lang_delete.html</a></li><li>delete - <a href="lang_delete.html">lang_delete.html</a></li><li>delete-stmt - <a href="syntax/delete-stmt.html">syntax/delete-stmt.html</a></li><li>delete-stmt syntax diagram - <a href="syntax/delete-stmt.html">syntax/delete-stmt.html</a></li><li>delete-stmt-limited - <a href="syntax/delete-stmt-limited.html">syntax/delete-stmt-limited.html</a></li><li>delete-stmt-limited syntax diagram - <a href="syntax/delete-stmt-limited.html">syntax/delete-stmt-limited.html</a></li><li>deletemerge - <a href="fts5.html#the_deletemerge_configuration_option">fts5.html#the_deletemerge_configuration_option</a></li><li>DELETEs - <a href="lang_delete.html">lang_delete.html</a></li><li>deleting a hot journal - <a href="howtocorrupt.html#delhotjrnl">howtocorrupt.html#delhotjrnl</a></li><li>deprecated - <a href="c3ref/experimental.html">c3ref/experimental.html</a></li><li>DESC - <a href="lang_createindex.html#descidx">lang_createindex.html#descidx</a></li><li>descending index - <a href="lang_createindex.html#descidx">lang_createindex.html#descidx</a></li><li>descending indexes - <a href="lang_createindex.html#descidx">lang_createindex.html#descidx</a></li><li>descending indices - <a href="lang_createindex.html#descidx">lang_createindex.html#descidx</a></li><li>deserialize method - <a href="tclsqlite.html#deserialize">tclsqlite.html#deserialize</a></li><li>DETACH - <a href="lang_detach.html">lang_detach.html</a></li><li>detach - <a href="lang_detach.html">lang_detach.html</a></li><li>DETACH DATABASE - <a href="lang_detach.html">lang_detach.html</a></li><li>detach-stmt - <a href="syntax/detach-stmt.html">syntax/detach-stmt.html</a></li><li>detach-stmt syntax diagram - <a href="syntax/detach-stmt.html">syntax/detach-stmt.html</a></li><li>deterministic function - <a href="deterministic.html">deterministic.html</a></li><li>deterministic functions - <a href="deterministic.html">deterministic.html</a></li><li>deterministic SQL functions - <a href="deterministic.html">deterministic.html</a></li><li>DISTINCT - <a href="lang_select.html#distinct">lang_select.html#distinct</a></li><li>doclist - <a href="doclist.html">doclist.html</a></li><li>documents by category - <a href="docs.html">docs.html</a></li><li>dot-commands - <a href="cli.html#dotcmd">cli.html#dotcmd</a></li><li>double-quoted string literal - <a href="quirks.html#dblquote">quirks.html#dblquote</a></li><li>double-quoted string misfeature - <a href="quirks.html#dblquote">quirks.html#dblquote</a></li><li>download page - <a href="download.html">download.html</a></li><li>drop column - <a href="lang_altertable.html#altertabdropcol">lang_altertable.html#altertabdropcol</a></li><li>DROP INDEX - <a href="lang_dropindex.html">lang_dropindex.html</a></li><li>DROP TABLE - <a href="lang_droptable.html">lang_droptable.html</a></li><li>DROP TRIGGER - <a href="lang_droptrigger.html">lang_droptrigger.html</a></li><li>DROP VIEW - <a href="lang_dropview.html">lang_dropview.html</a></li><li>drop-index-stmt - <a href="syntax/drop-index-stmt.html">syntax/drop-index-stmt.html</a></li><li>drop-index-stmt syntax diagram - <a href="syntax/drop-index-stmt.html">syntax/drop-index-stmt.html</a></li><li>drop-table-stmt - <a href="syntax/drop-table-stmt.html">syntax/drop-table-stmt.html</a></li><li>drop-table-stmt syntax diagram - <a href="syntax/drop-table-stmt.html">syntax/drop-table-stmt.html</a></li><li>drop-trigger-stmt - <a href="syntax/drop-trigger-stmt.html">syntax/drop-trigger-stmt.html</a></li><li>drop-trigger-stmt syntax diagram - <a href="syntax/drop-trigger-stmt.html">syntax/drop-trigger-stmt.html</a></li><li>drop-view-stmt - <a href="syntax/drop-view-stmt.html">syntax/drop-view-stmt.html</a></li><li>drop-view-stmt syntax diagram - <a href="syntax/drop-view-stmt.html">syntax/drop-view-stmt.html</a></li><li>dropindex - <a href="lang_dropindex.html">lang_dropindex.html</a></li><li>droptable - <a href="lang_droptable.html">lang_droptable.html</a></li><li>droptrigger - <a href="lang_droptrigger.html">lang_droptrigger.html</a></li><li>dropview - <a href="lang_dropview.html">lang_dropview.html</a></li><li>dynamic string - <a href="c3ref/str.html">c3ref/str.html</a></li><li>dynamic typing - <a href="datatype3.html">datatype3.html</a></li><li>edit SQL function - <a href="cli.html#editfunc">cli.html#editfunc</a></li><li>editdist3 - <a href="spellfix1.html#editdist3">spellfix1.html#editdist3</a></li><li>embedded - <a href="serverless.html">serverless.html</a></li><li>empty_result_callbacks - <a href="pragma.html#pragma_empty_result_callbacks">pragma.html#pragma_empty_result_callbacks</a></li><li>empty_result_callbacks pragma - <a href="pragma.html#pragma_empty_result_callbacks">pragma.html#pragma_empty_result_callbacks</a></li><li>enable_load_extension method - <a href="tclsqlite.html#enable_load_extension">tclsqlite.html#enable_load_extension</a></li><li>encoding - <a href="pragma.html#pragma_encoding">pragma.html#pragma_encoding</a></li><li>encoding pragma - <a href="pragma.html#pragma_encoding">pragma.html#pragma_encoding</a></li><li>enhanced query syntax - <a href="fts3.html#_set_operations_using_the_enhanced_query_syntax">fts3.html#_set_operations_using_the_enhanced_query_syntax</a></li><li>eponymous virtual table - <a href="vtab.html#epovtab">vtab.html#epovtab</a></li><li>eponymous virtual tables - <a href="vtab.html#epovtab">vtab.html#epovtab</a></li><li>eponymous-only virtual table - <a href="vtab.html#epoonlyvtab">vtab.html#epoonlyvtab</a></li><li>eponymous-only virtual tables - <a href="vtab.html#epoonlyvtab">vtab.html#epoonlyvtab</a></li><li>eqp-or-opt - <a href="eqp.html#or-opt">eqp.html#or-opt</a></li><li>errlog - <a href="errlog.html">errlog.html</a></li><li>error code - <a href="rescode.html">rescode.html</a></li><li>error codes - <a href="rescode.html">rescode.html</a></li><li>error log - <a href="errlog.html">errlog.html</a></li><li>errorcode method - <a href="tclsqlite.html#errorcode">tclsqlite.html#errorcode</a></li><li>ESCAPE - <a href="lang_expr.html#like">lang_expr.html#like</a></li><li>eval method - <a href="tclsqlite.html#eval">tclsqlite.html#eval</a></li><li>EXCLUDE clause - <a href="windowfunctions.html#wexcls">windowfunctions.html#wexcls</a></li><li>exclude clause - <a href="windowfunctions.html#wexcls">windowfunctions.html#wexcls</a></li><li>EXCLUSIVE - <a href="lockingv3.html#excl_lock">lockingv3.html#excl_lock</a></li><li>EXCLUSIVE lock - <a href="lockingv3.html#excl_lock">lockingv3.html#excl_lock</a></li><li>exclusive lock - <a href="lockingv3.html#excl_lock">lockingv3.html#excl_lock</a></li><li>EXCLUSIVE locking mode - <a href="pragma.html#pragma_locking_mode">pragma.html#pragma_locking_mode</a></li><li>exclusive locking mode - <a href="pragma.html#pragma_locking_mode">pragma.html#pragma_locking_mode</a></li><li>exists method - <a href="tclsqlite.html#exists">tclsqlite.html#exists</a></li><li>EXISTS operator - <a href="lang_expr.html#exists_op">lang_expr.html#exists_op</a></li><li>exp - <a href="lang_mathfunc.html#exp">lang_mathfunc.html#exp</a></li><li>exp SQL function - <a href="lang_mathfunc.html#exp">lang_mathfunc.html#exp</a></li><li>experimental - <a href="c3ref/experimental.html">c3ref/experimental.html</a></li><li>experimental memory allocators - <a href="malloc.html#memsysx">malloc.html#memsysx</a></li><li>EXPLAIN - <a href="lang_explain.html">lang_explain.html</a></li><li>explain - <a href="lang_explain.html">lang_explain.html</a></li><li>EXPLAIN QUERY PLAN - <a href="eqp.html">eqp.html</a></li><li>explain query plan - <a href="eqp.html">eqp.html</a></li><li>export to excel - <a href="cli.html#exexcel*">cli.html#exexcel*</a></li><li>export to TSV - <a href="cli.html#extsv*">cli.html#extsv*</a></li><li>expr - <a href="syntax/expr.html">syntax/expr.html</a></li><li>expr syntax diagram - <a href="syntax/expr.html">syntax/expr.html</a></li><li>expression - <a href="lang_expr.html">lang_expr.html</a></li><li>expression affinity - <a href="datatype3.html#expraff">datatype3.html#expraff</a></li><li>expression index - <a href="expridx.html">expridx.html</a></li><li>expression indexes - <a href="expridx.html">expridx.html</a></li><li>expression syntax - <a href="lang_expr.html">lang_expr.html</a></li><li>ext-v-prim - <a href="rescode.html#pve">rescode.html#pve</a></li><li>extended error code - <a href="rescode.html#extrc">rescode.html#extrc</a></li><li>extended error codes - <a href="rescode.html#extrc">rescode.html#extrc</a></li><li>extended result code - <a href="rescode.html#extrc">rescode.html#extrc</a></li><li>extended result code definitions - <a href="c3ref/c_abort_rollback.html">c3ref/c_abort_rollback.html</a></li><li>extended result codes - <a href="rescode.html#extrc">rescode.html#extrc</a></li><li>Extending FTS5 - <a href="fts5.html#extending_fts5">fts5.html#extending_fts5</a></li><li>extension loading - <a href="loadext.html">loadext.html</a></li><li>external content fts4 tables - <a href="fts3.html#_external_content_fts4_tables_">fts3.html#_external_content_fts4_tables_</a></li><li>extract - <a href="lang_expr.html#extract">lang_expr.html#extract</a></li><li>factored-select-stmt - <a href="syntax/factored-select-stmt.html">syntax/factored-select-stmt.html</a></li><li>factored-select-stmt syntax diagram - <a href="syntax/factored-select-stmt.html">syntax/factored-select-stmt.html</a></li><li>faster than the filesystem - <a href="fasterthanfs.html">fasterthanfs.html</a></li><li>file control - <a href="c3ref/file_control.html">c3ref/file_control.html</a></li><li>file control opcode - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>file control opcodes - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>file format - <a href="fileformat2.html">fileformat2.html</a></li><li>file format version numbers - <a href="fileformat2.html#vnums">fileformat2.html#vnums</a></li><li>file I/O functions - <a href="cli.html#fileio">cli.html#fileio</a></li><li>file locking and concurrency control - <a href="lockingv3.html">lockingv3.html</a></li><li>file locking states - <a href="lockingv3.html#locking">lockingv3.html#locking</a></li><li>file-format benefits - <a href="aff_short.html">aff_short.html</a></li><li>filesystem corruption - <a href="howtocorrupt.html#fscorruption">howtocorrupt.html#fscorruption</a></li><li>FILTER clause on aggregate functions - <a href="lang_aggfunc.html#aggfilter">lang_aggfunc.html#aggfilter</a></li><li>filter-clause - <a href="syntax/filter-clause.html">syntax/filter-clause.html</a></li><li>filter-clause syntax diagram - <a href="syntax/filter-clause.html">syntax/filter-clause.html</a></li><li>flattened - <a href="optoverview.html#flattening">optoverview.html#flattening</a></li><li>flattening optimization - <a href="optoverview.html#flattening">optoverview.html#flattening</a></li><li>flexible type system - <a href="datatype3.html">datatype3.html</a></li><li>Flexible typing is a feature - <a href="flextypegood.html">flextypegood.html</a></li><li>floor - <a href="lang_mathfunc.html#floor">lang_mathfunc.html#floor</a></li><li>floor SQL function - <a href="lang_mathfunc.html#floor">lang_mathfunc.html#floor</a></li><li>footprint - <a href="footprint.html">footprint.html</a></li><li>foreign key actions - <a href="foreignkeys.html#fk_actions">foreignkeys.html#fk_actions</a></li><li>foreign key constraint - <a href="foreignkeys.html">foreignkeys.html</a></li><li>FOREIGN KEY constraints - <a href="foreignkeys.html">foreignkeys.html</a></li><li>foreign key constraints - <a href="foreignkeys.html">foreignkeys.html</a></li><li>foreign key constraints are enabled - <a href="foreignkeys.html#fk_enable">foreignkeys.html#fk_enable</a></li><li>foreign-key-clause - <a href="syntax/foreign-key-clause.html">syntax/foreign-key-clause.html</a></li><li>foreign-key-clause syntax diagram - <a href="syntax/foreign-key-clause.html">syntax/foreign-key-clause.html</a></li><li>foreign_key_check - <a href="pragma.html#pragma_foreign_key_check">pragma.html#pragma_foreign_key_check</a></li><li>foreign_key_check pragma - <a href="pragma.html#pragma_foreign_key_check">pragma.html#pragma_foreign_key_check</a></li><li>foreign_key_list - <a href="pragma.html#pragma_foreign_key_list">pragma.html#pragma_foreign_key_list</a></li><li>foreign_key_list pragma - <a href="pragma.html#pragma_foreign_key_list">pragma.html#pragma_foreign_key_list</a></li><li>foreign_keys - <a href="pragma.html#pragma_foreign_keys">pragma.html#pragma_foreign_keys</a></li><li>foreign_keys pragma - <a href="pragma.html#pragma_foreign_keys">pragma.html#pragma_foreign_keys</a></li><li>format - <a href="lang_corefunc.html#format">lang_corefunc.html#format</a></li><li>format SQL function - <a href="lang_corefunc.html#format">lang_corefunc.html#format</a></li><li>forum - <a href="support.html#fx">support.html#fx</a></li><li>frame boundary - <a href="windowfunctions.html#frameboundary">windowfunctions.html#frameboundary</a></li><li>frame specification - <a href="windowfunctions.html#framespec">windowfunctions.html#framespec</a></li><li>frame type - <a href="windowfunctions.html#frametype">windowfunctions.html#frametype</a></li><li>frame-spec - <a href="syntax/frame-spec.html">syntax/frame-spec.html</a></li><li>frame-spec syntax diagram - <a href="syntax/frame-spec.html">syntax/frame-spec.html</a></li><li>frames - <a href="windowfunctions.html#framespec">windowfunctions.html#framespec</a></li><li>free-page list - <a href="fileformat2.html#freelist">fileformat2.html#freelist</a></li><li>freelist - <a href="fileformat2.html#freelist">fileformat2.html#freelist</a></li><li>freelist_count - <a href="pragma.html#pragma_freelist_count">pragma.html#pragma_freelist_count</a></li><li>freelist_count pragma - <a href="pragma.html#pragma_freelist_count">pragma.html#pragma_freelist_count</a></li><li>FROM clause - <a href="lang_select.html#fromclause">lang_select.html#fromclause</a></li><li>FTS auxiliary functions - <a href="fts3.html#snippet">fts3.html#snippet</a></li><li>FTS hidden column - <a href="fts3.html#hiddencol">fts3.html#hiddencol</a></li><li>FTS MATCH - <a href="fts3.html#full_text_index_queries">fts3.html#full_text_index_queries</a></li><li>FTS shadow tables - <a href="fts3.html#*shadowtab">fts3.html#*shadowtab</a></li><li>FTS3 - <a href="fts3.html">fts3.html</a></li><li>fts3 - <a href="fts3.html">fts3.html</a></li><li>fts3_tokenizer - <a href="fts3.html#f3tknzr">fts3.html#f3tknzr</a></li><li>fts3tokenize - <a href="fts3.html#fts3tok">fts3.html#fts3tok</a></li><li>fts3tokenize virtual table - <a href="fts3.html#fts3tok">fts3.html#fts3tok</a></li><li>FTS4 - <a href="fts3.html#fts4">fts3.html#fts4</a></li><li>FTS4 automerge command - <a href="fts3.html#*fts4automergecmd">fts3.html#*fts4automergecmd</a></li><li>FTS4 commands - <a href="fts3.html#*cmds">fts3.html#*cmds</a></li><li>fts4 compress option - <a href="fts3.html#the_compress_and_uncompress_options">fts3.html#the_compress_and_uncompress_options</a></li><li>FTS4 content option - <a href="fts3.html#*fts4content">fts3.html#*fts4content</a></li><li>fts4 content option - <a href="fts3.html#the_content_option_">fts3.html#the_content_option_</a></li><li>FTS4 integrity-check command - <a href="fts3.html#*fts4ickcmd">fts3.html#*fts4ickcmd</a></li><li>FTS4 languageid option - <a href="fts3.html#*fts4languageid">fts3.html#*fts4languageid</a></li><li>fts4 languageid option - <a href="fts3.html#the_languageid_option">fts3.html#the_languageid_option</a></li><li>FTS4 matchinfo option - <a href="fts3.html#fts4matchinfo">fts3.html#fts4matchinfo</a></li><li>fts4 matchinfo option - <a href="fts3.html#the_matchinfo_option">fts3.html#the_matchinfo_option</a></li><li>FTS4 merge command - <a href="fts3.html#*fts4mergecmd">fts3.html#*fts4mergecmd</a></li><li>FTS4 notindexed option - <a href="fts3.html#fts4notindexed">fts3.html#fts4notindexed</a></li><li>fts4 notindexed option - <a href="fts3.html#the_notindexed_option">fts3.html#the_notindexed_option</a></li><li>FTS4 optimize command - <a href="fts3.html#*fts4optcmd">fts3.html#*fts4optcmd</a></li><li>FTS4 options - <a href="fts3.html#fts4_options">fts3.html#fts4_options</a></li><li>FTS4 order option - <a href="fts3.html#fts4order">fts3.html#fts4order</a></li><li>FTS4 prefix option - <a href="fts3.html#fts4prefix">fts3.html#fts4prefix</a></li><li>fts4 prefix option - <a href="fts3.html#the_prefix_option">fts3.html#the_prefix_option</a></li><li>FTS4 rebuild command - <a href="fts3.html#*fts4rebuidcmd">fts3.html#*fts4rebuidcmd</a></li><li>fts4aux - <a href="fts3.html#fts4aux">fts3.html#fts4aux</a></li><li>fts4aux languageid column - <a href="fts3.html#f4alid">fts3.html#f4alid</a></li><li>FTS5 - <a href="fts5.html">fts5.html</a></li><li>fts5 - <a href="fts5.html">fts5.html</a></li><li>FTS5 automerge option - <a href="fts5.html#the_automerge_configuration_option">fts5.html#the_automerge_configuration_option</a></li><li>FTS5 auxiliary functions - <a href="fts5.html#_auxiliary_functions_">fts5.html#_auxiliary_functions_</a></li><li>FTS5 bm25 - <a href="fts5.html#the_bm25_function">fts5.html#the_bm25_function</a></li><li>FTS5 boolean operators - <a href="fts5.html#fts5_boolean_operators">fts5.html#fts5_boolean_operators</a></li><li>FTS5 building - <a href="fts5.html#compiling_and_using_fts5">fts5.html#compiling_and_using_fts5</a></li><li>FTS5 column filters - <a href="fts5.html#fts5_column_filters">fts5.html#fts5_column_filters</a></li><li>FTS5 columnsize option - <a href="fts5.html#the_columnsize_option">fts5.html#the_columnsize_option</a></li><li>FTS5 content option - <a href="fts5.html#external_content_and_contentless_tables">fts5.html#external_content_and_contentless_tables</a></li><li>FTS5 contentless tables - <a href="fts5.html#contentless_tables">fts5.html#contentless_tables</a></li><li>FTS5 contentless-delete tables - <a href="fts5.html#contentless_delete_tables">fts5.html#contentless_delete_tables</a></li><li>FTS5 CREATE TABLE Options - <a href="fts5.html#fts5_table_creation_and_initialization">fts5.html#fts5_table_creation_and_initialization</a></li><li>FTS5 custom auxiliary functions - <a href="fts5.html#custom_auxiliary_functions">fts5.html#custom_auxiliary_functions</a></li><li>FTS5 delete command - <a href="fts5.html#the_delete_command">fts5.html#the_delete_command</a></li><li>FTS5 delete-all command - <a href="fts5.html#the_delete_all_command">fts5.html#the_delete_all_command</a></li><li>FTS5 detail option - <a href="fts5.html#the_detail_option">fts5.html#the_detail_option</a></li><li>FTS5 external content pitfalls - <a href="fts5.html#external_content_table_pitfalls">fts5.html#external_content_table_pitfalls</a></li><li>FTS5 external content tables - <a href="fts5.html#external_content_tables">fts5.html#external_content_tables</a></li><li>FTS5 highlight - <a href="fts5.html#the_highlight_function">fts5.html#the_highlight_function</a></li><li>FTS5 initial token - <a href="fts5.html#carrotq">fts5.html#carrotq</a></li><li>FTS5 initial token queries - <a href="fts5.html#fts5_initial_token_queries">fts5.html#fts5_initial_token_queries</a></li><li>FTS5 merge command - <a href="fts5.html#the_merge_command">fts5.html#the_merge_command</a></li><li>FTS5 NEAR queries - <a href="fts5.html#fts5_near_queries">fts5.html#fts5_near_queries</a></li><li>FTS5 optimize command - <a href="fts5.html#the_optimize_command">fts5.html#the_optimize_command</a></li><li>FTS5 pgsz option - <a href="fts5.html#the_pgsz_configuration_option">fts5.html#the_pgsz_configuration_option</a></li><li>FTS5 Phrases - <a href="fts5.html#fts5_phrases">fts5.html#fts5_phrases</a></li><li>FTS5 prefix indexes - <a href="fts5.html#prefix_indexes">fts5.html#prefix_indexes</a></li><li>FTS5 prefix queries - <a href="fts5.html#fts5_prefix_queries">fts5.html#fts5_prefix_queries</a></li><li>FTS5 query syntax - <a href="fts5.html#full_text_query_syntax">fts5.html#full_text_query_syntax</a></li><li>FTS5 rank configuration option - <a href="fts5.html#the_rank_configuration_option">fts5.html#the_rank_configuration_option</a></li><li>FTS5 rebuild command - <a href="fts5.html#the_rebuild_command">fts5.html#the_rebuild_command</a></li><li>FTS5 secure-delete command - <a href="fts5.html#the_secure_delete_configuration_option">fts5.html#the_secure_delete_configuration_option</a></li><li>fts5 shadow tables - <a href="fts5.html#fts5shadowtables">fts5.html#fts5shadowtables</a></li><li>FTS5 snippet - <a href="fts5.html#the_snippet_function">fts5.html#the_snippet_function</a></li><li>FTS5 Strings - <a href="fts5.html#fts5_strings">fts5.html#fts5_strings</a></li><li>fts5 technical differences - <a href="fts5.html#_summary_of_technical_differences_">fts5.html#_summary_of_technical_differences_</a></li><li>FTS5 tokendata option - <a href="fts5.html#the_tokendata_option">fts5.html#the_tokendata_option</a></li><li>FTS5 tokenizers - <a href="fts5.html#tokenizers">fts5.html#tokenizers</a></li><li>FTS5 usermerge option - <a href="fts5.html#the_usermerge_configuration_option">fts5.html#the_usermerge_configuration_option</a></li><li>fts5vocab - <a href="fts5.html#the_fts5vocab_virtual_table_module">fts5.html#the_fts5vocab_virtual_table_module</a></li><li>FULL JOIN - <a href="lang_select.html#fulljoin">lang_select.html#fulljoin</a></li><li>FULL OUTER JOIN - <a href="lang_select.html#fulljoin">lang_select.html#fulljoin</a></li><li>Full-featured SQL - <a href="fullsql.html">fullsql.html</a></li><li>full-featured SQL - <a href="fullsql.html">fullsql.html</a></li><li>full-text search - <a href="fts3.html">fts3.html</a></li><li>full_column_names - <a href="pragma.html#pragma_full_column_names">pragma.html#pragma_full_column_names</a></li><li>full_column_names pragma - <a href="pragma.html#pragma_full_column_names">pragma.html#pragma_full_column_names</a></li><li>fullfsync - <a href="pragma.html#pragma_fullfsync">pragma.html#pragma_fullfsync</a></li><li>fullfsync pragma - <a href="pragma.html#pragma_fullfsync">pragma.html#pragma_fullfsync</a></li><li>function creation routines - <a href="c3ref/create_function.html">c3ref/create_function.html</a></li><li>function method - <a href="tclsqlite.html#function">tclsqlite.html#function</a></li><li>function-arguments - <a href="syntax/function-arguments.html">syntax/function-arguments.html</a></li><li>function-arguments syntax diagram - <a href="syntax/function-arguments.html">syntax/function-arguments.html</a></li><li>function_list - <a href="pragma.html#pragma_function_list">pragma.html#pragma_function_list</a></li><li>function_list pragma - <a href="pragma.html#pragma_function_list">pragma.html#pragma_function_list</a></li><li>functions within expressions - <a href="lang_expr.html#*funcinexpr">lang_expr.html#*funcinexpr</a></li><li>fuzz testing - <a href="testing.html#fuzztesting">testing.html#fuzztesting</a></li><li>fuzzcheck - <a href="testing.html#fuzzcheck">testing.html#fuzzcheck</a></li><li>generalized ALTER TABLE procedure - <a href="lang_altertable.html#otheralter">lang_altertable.html#otheralter</a></li><li>generate_series - <a href="series.html">series.html</a></li><li>generated column - <a href="gencol.html">gencol.html</a></li><li>Generated columns - <a href="gencol.html">gencol.html</a></li><li>generated columns - <a href="gencol.html">gencol.html</a></li><li>GEOPOLY - <a href="geopoly.html">geopoly.html</a></li><li>geopoly - <a href="geopoly.html">geopoly.html</a></li><li>Geopoly extension - <a href="geopoly.html">geopoly.html</a></li><li>Geopoly module - <a href="geopoly.html">geopoly.html</a></li><li>geopoly_area - <a href="geopoly.html#garea">geopoly.html#garea</a></li><li>geopoly_bbox - <a href="geopoly.html#gbbox">geopoly.html#gbbox</a></li><li>geopoly_blob - <a href="geopoly.html#gblob">geopoly.html#gblob</a></li><li>geopoly_ccw - <a href="geopoly.html#ccw">geopoly.html#ccw</a></li><li>geopoly_contains_point - <a href="geopoly.html#gpoint">geopoly.html#gpoint</a></li><li>geopoly_group_bbox - <a href="geopoly.html#gbbox">geopoly.html#gbbox</a></li><li>geopoly_json - <a href="geopoly.html#gjson">geopoly.html#gjson</a></li><li>geopoly_overlap - <a href="geopoly.html#goverlap">geopoly.html#goverlap</a></li><li>geopoly_regular - <a href="geopoly.html#regpoly">geopoly.html#regpoly</a></li><li>geopoly_svg - <a href="geopoly.html#gsvg">geopoly.html#gsvg</a></li><li>geopoly_within - <a href="geopoly.html#gwithin">geopoly.html#gwithin</a></li><li>geopoly_xform - <a href="geopoly.html#xform">geopoly.html#xform</a></li><li>get the canonical source code - <a href="getthecode.html">getthecode.html</a></li><li>GLOB - <a href="lang_expr.html#glob">lang_expr.html#glob</a></li><li>glob - <a href="lang_corefunc.html#glob">lang_corefunc.html#glob</a></li><li>glob SQL function - <a href="lang_corefunc.html#glob">lang_corefunc.html#glob</a></li><li>GROUP BY - <a href="lang_select.html#resultset">lang_select.html#resultset</a></li><li>GROUP BY clause - <a href="lang_select.html#resultset">lang_select.html#resultset</a></li><li>group_concat - <a href="lang_aggfunc.html#group_concat">lang_aggfunc.html#group_concat</a></li><li>group_concat aggregate function - <a href="lang_aggfunc.html#group_concat">lang_aggfunc.html#group_concat</a></li><li>GROUPS frames - <a href="windowfunctions.html#grouptype">windowfunctions.html#grouptype</a></li><li>hard_heap_limit - <a href="pragma.html#pragma_hard_heap_limit">pragma.html#pragma_hard_heap_limit</a></li><li>hard_heap_limit pragma - <a href="pragma.html#pragma_hard_heap_limit">pragma.html#pragma_hard_heap_limit</a></li><li>hash join - <a href="optoverview.html#hashjoin">optoverview.html#hashjoin</a></li><li>HAVE_FDATASYNC - <a href="compile.html#fdatasync">compile.html#fdatasync</a></li><li>HAVE_GMTIME_R - <a href="compile.html#gmtime_r">compile.html#gmtime_r</a></li><li>HAVE_ISNAN - <a href="compile.html#isnan">compile.html#isnan</a></li><li>HAVE_LOCALTIME_R - <a href="compile.html#localtime_r">compile.html#localtime_r</a></li><li>HAVE_LOCALTIME_S - <a href="compile.html#localtime_s">compile.html#localtime_s</a></li><li>HAVE_MALLOC_USABLE_SIZE - <a href="compile.html#malloc_usable_size">compile.html#malloc_usable_size</a></li><li>HAVE_SQLITE_CONFIG_H - <a href="compile.html#sqlite_config_h">compile.html#sqlite_config_h</a></li><li>HAVE_STRCHRNUL - <a href="compile.html#strchrnul">compile.html#strchrnul</a></li><li>HAVE_UTIME - <a href="compile.html#utime">compile.html#utime</a></li><li>HAVING - <a href="lang_select.html#resultset">lang_select.html#resultset</a></li><li>HAVING clause - <a href="lang_select.html#resultset">lang_select.html#resultset</a></li><li>hazards of upgrading to the NGQP - <a href="queryplanner-ng.html#hazards">queryplanner-ng.html#hazards</a></li><li>hex - <a href="lang_corefunc.html#hex">lang_corefunc.html#hex</a></li><li>hex SQL function - <a href="lang_corefunc.html#hex">lang_corefunc.html#hex</a></li><li>hexadecimal integer literals - <a href="lang_expr.html#hexint">lang_expr.html#hexint</a></li><li>hexadecimal integers - <a href="lang_expr.html#hexint">lang_expr.html#hexint</a></li><li>hidden column - <a href="vtab.html#hiddencol">vtab.html#hiddencol</a></li><li>hidden columns - <a href="vtab.html#hiddencol">vtab.html#hiddencol</a></li><li>high-reliability - <a href="hirely.html">hirely.html</a></li><li>Hipp - <a href="crew.html">crew.html</a></li><li>host parameter - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>host parameter name - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>host parameters - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>hot journal - <a href="fileformat2.html#hotjrnl">fileformat2.html#hotjrnl</a></li><li>hot journal files - <a href="fileformat2.html#hotjrnl">fileformat2.html#hotjrnl</a></li><li>how collation is determined - <a href="datatype3.html#colrules">datatype3.html#colrules</a></li><li>How SQL Works - <a href="howitworks.html">howitworks.html</a></li><li>How SQLite Works - <a href="howitworks.html">howitworks.html</a></li><li>how to compile - <a href="howtocompile.html">howtocompile.html</a></li><li>How To Compile SQLite - <a href="howtocompile.html">howtocompile.html</a></li><li>how to corrupt - <a href="howtocorrupt.html">howtocorrupt.html</a></li><li>how to corrupt a database - <a href="useovernet.html">useovernet.html</a></li><li>How To Corrupt Your Database Files - <a href="lockingv3.html#how_to_corrupt">lockingv3.html#how_to_corrupt</a></li><li>how vacuum works - <a href="lang_vacuum.html#howvacuumworks">lang_vacuum.html#howvacuumworks</a></li><li>IEEE 754 floating point values are approximations - <a href="floatingpoint.html#fpapprox">floatingpoint.html#fpapprox</a></li><li>ieee754 extension - <a href="floatingpoint.html#ieee754ext">floatingpoint.html#ieee754ext</a></li><li>ieee754 function - <a href="floatingpoint.html#ieee754">floatingpoint.html#ieee754</a></li><li>ieee754_exponent function - <a href="floatingpoint.html#ieee754m">floatingpoint.html#ieee754m</a></li><li>ieee754_from_blob function - <a href="floatingpoint.html#ieee754b">floatingpoint.html#ieee754b</a></li><li>ieee754_mantissa function - <a href="floatingpoint.html#ieee754m">floatingpoint.html#ieee754m</a></li><li>ieee754_to_blob function - <a href="floatingpoint.html#ieee754b">floatingpoint.html#ieee754b</a></li><li>ifnull - <a href="lang_corefunc.html#ifnull">lang_corefunc.html#ifnull</a></li><li>ifnull SQL function - <a href="lang_corefunc.html#ifnull">lang_corefunc.html#ifnull</a></li><li>ignore_check_constraints - <a href="pragma.html#pragma_ignore_check_constraints">pragma.html#pragma_ignore_check_constraints</a></li><li>ignore_check_constraints pragma - <a href="pragma.html#pragma_ignore_check_constraints">pragma.html#pragma_ignore_check_constraints</a></li><li>iif - <a href="lang_corefunc.html#iif">lang_corefunc.html#iif</a></li><li>iif SQL function - <a href="lang_corefunc.html#iif">lang_corefunc.html#iif</a></li><li>immutable query parameter - <a href="uri.html#uriimmutable">uri.html#uriimmutable</a></li><li>imposter tables - <a href="imposter.html">imposter.html</a></li><li>IN operator - <a href="lang_expr.html#in_op">lang_expr.html#in_op</a></li><li>in-header database size - <a href="fileformat2.html#filesize">fileformat2.html#filesize</a></li><li>in-memory database - <a href="inmemorydb.html">inmemorydb.html</a></li><li>in-memory databases - <a href="inmemorydb.html">inmemorydb.html</a></li><li>in-memory shared cache database - <a href="inmemorydb.html#sharedmemdb">inmemorydb.html#sharedmemdb</a></li><li>in-memory shared-cache - <a href="sharedcache.html#inmemsharedcache">sharedcache.html#inmemsharedcache</a></li><li>incrblob method - <a href="tclsqlite.html#incrblob">tclsqlite.html#incrblob</a></li><li>increase in the default page size - <a href="pgszchng2016.html">pgszchng2016.html</a></li><li>incremental_vacuum - <a href="pragma.html#pragma_incremental_vacuum">pragma.html#pragma_incremental_vacuum</a></li><li>incremental_vacuum pragma - <a href="pragma.html#pragma_incremental_vacuum">pragma.html#pragma_incremental_vacuum</a></li><li>index b-tree - <a href="fileformat2.html#btypes">fileformat2.html#btypes</a></li><li>index_info - <a href="pragma.html#pragma_index_info">pragma.html#pragma_index_info</a></li><li>index_info pragma - <a href="pragma.html#pragma_index_info">pragma.html#pragma_index_info</a></li><li>index_list - <a href="pragma.html#pragma_index_list">pragma.html#pragma_index_list</a></li><li>index_list pragma - <a href="pragma.html#pragma_index_list">pragma.html#pragma_index_list</a></li><li>index_xinfo - <a href="pragma.html#pragma_index_xinfo">pragma.html#pragma_index_xinfo</a></li><li>index_xinfo pragma - <a href="pragma.html#pragma_index_xinfo">pragma.html#pragma_index_xinfo</a></li><li>INDEXED BY - <a href="lang_indexedby.html">lang_indexedby.html</a></li><li>indexed expression - <a href="expridx.html">expridx.html</a></li><li>indexed expressions - <a href="expridx.html">expridx.html</a></li><li>indexed-column - <a href="syntax/indexed-column.html">syntax/indexed-column.html</a></li><li>indexed-column syntax diagram - <a href="syntax/indexed-column.html">syntax/indexed-column.html</a></li><li>Indexes - <a href="lang_createindex.html">lang_createindex.html</a></li><li>Indexes On Expressions - <a href="expridx.html">expridx.html</a></li><li>indexes on expressions - <a href="expridx.html">expridx.html</a></li><li>indexing - <a href="queryplanner.html">queryplanner.html</a></li><li>indexing tutorial - <a href="queryplanner.html">queryplanner.html</a></li><li>INSERT - <a href="lang_insert.html">lang_insert.html</a></li><li>insert - <a href="lang_insert.html">lang_insert.html</a></li><li>insert-stmt - <a href="syntax/insert-stmt.html">syntax/insert-stmt.html</a></li><li>insert-stmt syntax diagram - <a href="syntax/insert-stmt.html">syntax/insert-stmt.html</a></li><li>INSERTs - <a href="lang_insert.html">lang_insert.html</a></li><li>INSTEAD OF - <a href="lang_createtrigger.html#instead_of_trigger">lang_createtrigger.html#instead_of_trigger</a></li><li>INSTEAD OF trigger - <a href="lang_createtrigger.html#instead_of_trigger">lang_createtrigger.html#instead_of_trigger</a></li><li>instr - <a href="lang_corefunc.html#instr">lang_corefunc.html#instr</a></li><li>instr SQL function - <a href="lang_corefunc.html#instr">lang_corefunc.html#instr</a></li><li>INTEGER PRIMARY KEY - <a href="lang_createtable.html#rowid">lang_createtable.html#rowid</a></li><li>integer-valued r-trees - <a href="rtree.html#intrtree">rtree.html#intrtree</a></li><li>integrity_check - <a href="pragma.html#pragma_integrity_check">pragma.html#pragma_integrity_check</a></li><li>integrity_check pragma - <a href="pragma.html#pragma_integrity_check">pragma.html#pragma_integrity_check</a></li><li>internal index - <a href="fileformat2.html#intschema">fileformat2.html#intschema</a></li><li>internal indexes - <a href="fileformat2.html#intschema">fileformat2.html#intschema</a></li><li>internal schema object - <a href="fileformat2.html#intschema">fileformat2.html#intschema</a></li><li>internal schema objects - <a href="fileformat2.html#intschema">fileformat2.html#intschema</a></li><li>internal table - <a href="fileformat2.html#intschema">fileformat2.html#intschema</a></li><li>internal tables - <a href="fileformat2.html#intschema">fileformat2.html#intschema</a></li><li>Internal Versus External BLOBs - <a href="intern-v-extern-blob.html">intern-v-extern-blob.html</a></li><li>interrupt method - <a href="tclsqlite.html#interrupt">tclsqlite.html#interrupt</a></li><li>invalid UTF - <a href="invalidutf.html">invalidutf.html</a></li><li>IS DISTINCT FROM - <a href="lang_expr.html#isdf">lang_expr.html#isdf</a></li><li>IS NOT DISTINCT FROM - <a href="lang_expr.html#isdf">lang_expr.html#isdf</a></li><li>IS NOT operator - <a href="lang_expr.html#isisnot">lang_expr.html#isisnot</a></li><li>IS operator - <a href="lang_expr.html#isisnot">lang_expr.html#isisnot</a></li><li>isolation - <a href="isolation.html">isolation.html</a></li><li>jfuzz - <a href="testing.html#dbsqlfuzz">testing.html#dbsqlfuzz</a></li><li>join order - <a href="optoverview.html#joins">optoverview.html#joins</a></li><li>join-clause - <a href="syntax/join-clause.html">syntax/join-clause.html</a></li><li>join-clause syntax diagram - <a href="syntax/join-clause.html">syntax/join-clause.html</a></li><li>join-constraint - <a href="syntax/join-constraint.html">syntax/join-constraint.html</a></li><li>join-constraint syntax diagram - <a href="syntax/join-constraint.html">syntax/join-constraint.html</a></li><li>join-operator - <a href="syntax/join-operator.html">syntax/join-operator.html</a></li><li>join-operator syntax diagram - <a href="syntax/join-operator.html">syntax/join-operator.html</a></li><li>journal_mode - <a href="pragma.html#pragma_journal_mode">pragma.html#pragma_journal_mode</a></li><li>journal_mode pragma - <a href="pragma.html#pragma_journal_mode">pragma.html#pragma_journal_mode</a></li><li>journal_size_limit - <a href="pragma.html#pragma_journal_size_limit">pragma.html#pragma_journal_size_limit</a></li><li>journal_size_limit pragma - <a href="pragma.html#pragma_journal_size_limit">pragma.html#pragma_journal_size_limit</a></li><li>json - <a href="json1.html#jmini">json1.html#jmini</a></li><li>JSON BLOB input bug - <a href="json1.html#jblobbug">json1.html#jblobbug</a></li><li>JSON function path arguments - <a href="json1.html#jsonpath">json1.html#jsonpath</a></li><li>JSON paths - <a href="json1.html#jsonpath">json1.html#jsonpath</a></li><li>json SQL function - <a href="json1.html#jmini">json1.html#jmini</a></li><li>JSON SQL functions - <a href="json1.html">json1.html</a></li><li>json1 - <a href="json1.html">json1.html</a></li><li>JSON5 - <a href="json1.html#json5">json1.html#json5</a></li><li>JSON5 extensions - <a href="json1.html#json5">json1.html#json5</a></li><li>json_array - <a href="json1.html#jarray">json1.html#jarray</a></li><li>json_array SQL function - <a href="json1.html#jarray">json1.html#jarray</a></li><li>json_array_length - <a href="json1.html#jarraylen">json1.html#jarraylen</a></li><li>json_array_length SQL function - <a href="json1.html#jarraylen">json1.html#jarraylen</a></li><li>json_each - <a href="json1.html#jeach">json1.html#jeach</a></li><li>json_each table-valued function - <a href="json1.html#jeach">json1.html#jeach</a></li><li>json_error_position - <a href="json1.html#jerr">json1.html#jerr</a></li><li>json_error_position SQL function - <a href="json1.html#jerr">json1.html#jerr</a></li><li>json_extract - <a href="json1.html#jex">json1.html#jex</a></li><li>json_extract SQL function - <a href="json1.html#jex">json1.html#jex</a></li><li>json_group_array - <a href="json1.html#jgrouparray">json1.html#jgrouparray</a></li><li>json_group_array SQL function - <a href="json1.html#jgrouparray">json1.html#jgrouparray</a></li><li>json_group_object - <a href="json1.html#jgroupobject">json1.html#jgroupobject</a></li><li>json_group_object SQL function - <a href="json1.html#jgroupobject">json1.html#jgroupobject</a></li><li>json_insert - <a href="json1.html#jins">json1.html#jins</a></li><li>json_insert SQL function - <a href="json1.html#jins">json1.html#jins</a></li><li>json_object - <a href="json1.html#jobj">json1.html#jobj</a></li><li>json_object SQL function - <a href="json1.html#jobj">json1.html#jobj</a></li><li>json_patch - <a href="json1.html#jpatch">json1.html#jpatch</a></li><li>json_patch SQL function - <a href="json1.html#jpatch">json1.html#jpatch</a></li><li>json_pretty - <a href="json1.html#jpretty">json1.html#jpretty</a></li><li>json_pretty SQL function - <a href="json1.html#jpretty">json1.html#jpretty</a></li><li>json_quote - <a href="json1.html#jquote">json1.html#jquote</a></li><li>json_quote SQL function - <a href="json1.html#jquote">json1.html#jquote</a></li><li>json_remove - <a href="json1.html#jrm">json1.html#jrm</a></li><li>json_remove SQL function - <a href="json1.html#jrm">json1.html#jrm</a></li><li>json_replace - <a href="json1.html#jrepl">json1.html#jrepl</a></li><li>json_replace SQL function - <a href="json1.html#jrepl">json1.html#jrepl</a></li><li>json_set - <a href="json1.html#jset">json1.html#jset</a></li><li>json_set SQL function - <a href="json1.html#jset">json1.html#jset</a></li><li>json_tree - <a href="json1.html#jtree">json1.html#jtree</a></li><li>json_tree table-valued function - <a href="json1.html#jtree">json1.html#jtree</a></li><li>json_type - <a href="json1.html#jtype">json1.html#jtype</a></li><li>json_type SQL function - <a href="json1.html#jtype">json1.html#jtype</a></li><li>json_valid - <a href="json1.html#jvalid">json1.html#jvalid</a></li><li>json_valid SQL function - <a href="json1.html#jvalid">json1.html#jvalid</a></li><li>JSONB - <a href="json1.html#jsonbx">json1.html#jsonbx</a></li><li>jsonb - <a href="json1.html#jminib">json1.html#jminib</a></li><li>jsonb SQL function - <a href="json1.html#jminib">json1.html#jminib</a></li><li>jsonb_array - <a href="json1.html#jarrayb">json1.html#jarrayb</a></li><li>jsonb_array SQL function - <a href="json1.html#jarrayb">json1.html#jarrayb</a></li><li>jsonb_extract - <a href="json1.html#jexb">json1.html#jexb</a></li><li>jsonb_extract SQL function - <a href="json1.html#jexb">json1.html#jexb</a></li><li>jsonb_group_array - <a href="json1.html#jgrouparrayb">json1.html#jgrouparrayb</a></li><li>jsonb_group_array SQL function - <a href="json1.html#jgrouparrayb">json1.html#jgrouparrayb</a></li><li>jsonb_group_object - <a href="json1.html#jgroupobjectb">json1.html#jgroupobjectb</a></li><li>jsonb_group_object SQL function - <a href="json1.html#jgroupobjectb">json1.html#jgroupobjectb</a></li><li>jsonb_insert - <a href="json1.html#jinsb">json1.html#jinsb</a></li><li>jsonb_insert SQL function - <a href="json1.html#jinsb">json1.html#jinsb</a></li><li>jsonb_object - <a href="json1.html#jobjb">json1.html#jobjb</a></li><li>jsonb_object SQL function - <a href="json1.html#jobjb">json1.html#jobjb</a></li><li>jsonb_patch - <a href="json1.html#jpatchb">json1.html#jpatchb</a></li><li>jsonb_patch SQL function - <a href="json1.html#jpatchb">json1.html#jpatchb</a></li><li>jsonb_remove - <a href="json1.html#jrmb">json1.html#jrmb</a></li><li>jsonb_remove SQL function - <a href="json1.html#jrmb">json1.html#jrmb</a></li><li>jsonb_replace - <a href="json1.html#jreplb">json1.html#jreplb</a></li><li>jsonb_replace SQL function - <a href="json1.html#jreplb">json1.html#jreplb</a></li><li>jsonb_set - <a href="json1.html#jsetb">json1.html#jsetb</a></li><li>jsonb_set SQL function - <a href="json1.html#jsetb">json1.html#jsetb</a></li><li>julianday - <a href="lang_datefunc.html#jlndy">lang_datefunc.html#jlndy</a></li><li>julianday modifier - <a href="lang_datefunc.html#jdmod">lang_datefunc.html#jdmod</a></li><li>julianday SQL function - <a href="lang_datefunc.html#jlndy">lang_datefunc.html#jlndy</a></li><li>Kennedy - <a href="crew.html">crew.html</a></li><li>keyword index - <a href="keyword_index.html">keyword_index.html</a></li><li>keywords - <a href="lang_keywords.html">lang_keywords.html</a></li><li>langexpr - <a href="lang_expr.html">lang_expr.html</a></li><li>langindexedby - <a href="lang_indexedby.html">lang_indexedby.html</a></li><li>langkeywords - <a href="lang_keywords.html">lang_keywords.html</a></li><li>langreplace - <a href="lang_replace.html">lang_replace.html</a></li><li>languageid - <a href="fts3.html#*fts4languageid">fts3.html#*fts4languageid</a></li><li>langupdate - <a href="lang_update.html">lang_update.html</a></li><li>langvacuum - <a href="lang_vacuum.html">lang_vacuum.html</a></li><li>large WAL files - <a href="wal.html#bigwal">wal.html#bigwal</a></li><li>last_insert_rowid - <a href="lang_corefunc.html#last_insert_rowid">lang_corefunc.html#last_insert_rowid</a></li><li>last_insert_rowid method - <a href="tclsqlite.html#last_insert_rowid">tclsqlite.html#last_insert_rowid</a></li><li>last_insert_rowid SQL function - <a href="lang_corefunc.html#last_insert_rowid">lang_corefunc.html#last_insert_rowid</a></li><li>LEFT JOIN strength reduction optimization - <a href="optoverview.html#leftjoinreduction">optoverview.html#leftjoinreduction</a></li><li>legacy_alter_table - <a href="pragma.html#pragma_legacy_alter_table">pragma.html#pragma_legacy_alter_table</a></li><li>legacy_alter_table pragma - <a href="pragma.html#pragma_legacy_alter_table">pragma.html#pragma_legacy_alter_table</a></li><li>legacy_file_format - <a href="pragma.html#pragma_legacy_file_format">pragma.html#pragma_legacy_file_format</a></li><li>legacy_file_format pragma - <a href="pragma.html#pragma_legacy_file_format">pragma.html#pragma_legacy_file_format</a></li><li>Lemon - <a href="lemon.html">lemon.html</a></li><li>Lemon LALR parser generator - <a href="lemon.html">lemon.html</a></li><li>Lemon parser generator - <a href="lemon.html">lemon.html</a></li><li>length - <a href="lang_corefunc.html#length">lang_corefunc.html#length</a></li><li>length SQL function - <a href="lang_corefunc.html#length">lang_corefunc.html#length</a></li><li>library size - <a href="footprint.html">footprint.html</a></li><li>license - <a href="copyright.html">copyright.html</a></li><li>LIKE - <a href="lang_expr.html#like">lang_expr.html#like</a></li><li>like - <a href="lang_corefunc.html#like">lang_corefunc.html#like</a></li><li>LIKE optimization - <a href="optoverview.html#like_opt">optoverview.html#like_opt</a></li><li>like SQL function - <a href="lang_corefunc.html#like">lang_corefunc.html#like</a></li><li>likelihood - <a href="lang_corefunc.html#likelihood">lang_corefunc.html#likelihood</a></li><li>likelihood SQL function - <a href="lang_corefunc.html#likelihood">lang_corefunc.html#likelihood</a></li><li>likely - <a href="lang_corefunc.html#likely">lang_corefunc.html#likely</a></li><li>likely SQL function - <a href="lang_corefunc.html#likely">lang_corefunc.html#likely</a></li><li>LIMIT - <a href="lang_select.html#limitoffset">lang_select.html#limitoffset</a></li><li>limit categories - <a href="c3ref/c_limit_attached.html">c3ref/c_limit_attached.html</a></li><li>limit category - <a href="c3ref/c_limit_attached.html">c3ref/c_limit_attached.html</a></li><li>limits - <a href="limits.html">limits.html</a></li><li>list of current bytecodes - <a href="opcode.html#codes">opcode.html#codes</a></li><li>list of virtual tables - <a href="vtablist.html">vtablist.html</a></li><li>literal value - <a href="lang_expr.html#litvalue">lang_expr.html#litvalue</a></li><li>literal-value - <a href="syntax/literal-value.html">syntax/literal-value.html</a></li><li>literal-value syntax diagram - <a href="syntax/literal-value.html">syntax/literal-value.html</a></li><li>ln - <a href="lang_mathfunc.html#ln">lang_mathfunc.html#ln</a></li><li>ln SQL function - <a href="lang_mathfunc.html#ln">lang_mathfunc.html#ln</a></li><li>load_extension - <a href="lang_corefunc.html#load_extension">lang_corefunc.html#load_extension</a></li><li>load_extension SQL function - <a href="lang_corefunc.html#load_extension">lang_corefunc.html#load_extension</a></li><li>loadable extension - <a href="loadext.html">loadext.html</a></li><li>loadable extensions - <a href="loadext.html">loadext.html</a></li><li>loadext - <a href="loadext.html">loadext.html</a></li><li>localtime modifier - <a href="lang_datefunc.html#localtime">lang_datefunc.html#localtime</a></li><li>lock-byte page - <a href="fileformat2.html#lockbyte">fileformat2.html#lockbyte</a></li><li>locking_mode - <a href="pragma.html#pragma_locking_mode">pragma.html#pragma_locking_mode</a></li><li>locking_mode pragma - <a href="pragma.html#pragma_locking_mode">pragma.html#pragma_locking_mode</a></li><li>log - <a href="lang_mathfunc.html#log">lang_mathfunc.html#log</a></li><li>log2 - <a href="lang_mathfunc.html#log2">lang_mathfunc.html#log2</a></li><li>log2 SQL function - <a href="lang_mathfunc.html#log2">lang_mathfunc.html#log2</a></li><li>log10 - <a href="lang_mathfunc.html#log">lang_mathfunc.html#log</a></li><li>long term support - <a href="lts.html">lts.html</a></li><li>lookaside - <a href="malloc.html#lookaside">malloc.html#lookaside</a></li><li>lookaside buffer - <a href="malloc.html#lookaside">malloc.html#lookaside</a></li><li>lookaside memory - <a href="malloc.html#lookaside">malloc.html#lookaside</a></li><li>lookaside memory allocator - <a href="malloc.html#lookaside">malloc.html#lookaside</a></li><li>low-dependency - <a href="selfcontained.html">selfcontained.html</a></li><li>lower - <a href="lang_corefunc.html#lower">lang_corefunc.html#lower</a></li><li>lower SQL function - <a href="lang_corefunc.html#lower">lang_corefunc.html#lower</a></li><li>ltrim - <a href="lang_corefunc.html#ltrim">lang_corefunc.html#ltrim</a></li><li>ltrim SQL function - <a href="lang_corefunc.html#ltrim">lang_corefunc.html#ltrim</a></li><li>mailing lists - <a href="support.html#mailinglists">support.html#mailinglists</a></li><li>managing SQLite Archives from the command-line - <a href="sqlar.html#cltools">sqlar.html#cltools</a></li><li>Manual Control Of Query Plans Using CROSS JOIN - <a href="optoverview.html#crossjoin">optoverview.html#crossjoin</a></li><li>Manual Control Of Query Plans Using SQLITE_STAT Tables - <a href="optoverview.html#manctrl">optoverview.html#manctrl</a></li><li>master journal - <a href="tempfiles.html#superjrnl">tempfiles.html#superjrnl</a></li><li>MATCH - <a href="lang_expr.html#match">lang_expr.html#match</a></li><li>matchinfo - <a href="fts3.html#matchinfo">fts3.html#matchinfo</a></li><li>matchinfo b flag - <a href="fts3.html#matchinfo-b">fts3.html#matchinfo-b</a></li><li>matchinfo x flag - <a href="fts3.html#matchinfo-x">fts3.html#matchinfo-x</a></li><li>matchinfo y flag - <a href="fts3.html#matchinfo-y">fts3.html#matchinfo-y</a></li><li>materialization hints - <a href="lang_with.html#mathint">lang_with.html#mathint</a></li><li>MATERIALIZED - <a href="lang_with.html#mathint">lang_with.html#mathint</a></li><li>Math Functions - <a href="lang_mathfunc.html">lang_mathfunc.html</a></li><li>math functions - <a href="lang_mathfunc.html">lang_mathfunc.html</a></li><li>mathfunc - <a href="lang_mathfunc.html">lang_mathfunc.html</a></li><li>max - <a href="lang_corefunc.html#max_scalar">lang_corefunc.html#max_scalar</a></li><li>max aggregate function - <a href="lang_aggfunc.html#max_agg">lang_aggfunc.html#max_agg</a></li><li>max SQL function - <a href="lang_corefunc.html#max_scalar">lang_corefunc.html#max_scalar</a></li><li>max_agg - <a href="lang_aggfunc.html#max_agg">lang_aggfunc.html#max_agg</a></li><li>max_page_count - <a href="pragma.html#pragma_max_page_count">pragma.html#pragma_max_page_count</a></li><li>max_page_count pragma - <a href="pragma.html#pragma_max_page_count">pragma.html#pragma_max_page_count</a></li><li>max_scalar - <a href="lang_corefunc.html#max_scalar">lang_corefunc.html#max_scalar</a></li><li>maxopen parameter - <a href="swarmvtab.html#the_maxopen_parameter">swarmvtab.html#the_maxopen_parameter</a></li><li>MC/DC - <a href="testing.html#mcdc">testing.html#mcdc</a></li><li>MC/DC testing - <a href="testing.html#mcdc">testing.html#mcdc</a></li><li>memory - <a href="inmemorydb.html">inmemorydb.html</a></li><li>memory allocation - <a href="malloc.html">malloc.html</a></li><li>memory statistics - <a href="malloc.html#memstatus">malloc.html#memstatus</a></li><li>memory-mapped I/O - <a href="mmap.html">mmap.html</a></li><li>memsys2 - <a href="malloc.html#memdebug">malloc.html#memdebug</a></li><li>memsys5 - <a href="malloc.html#memsys5">malloc.html#memsys5</a></li><li>merge command - <a href="fts3.html#*fts4mergecmd">fts3.html#*fts4mergecmd</a></li><li>microoptimizations - <a href="cpu.html#microopt">cpu.html#microopt</a></li><li>min - <a href="lang_corefunc.html#min_scalar">lang_corefunc.html#min_scalar</a></li><li>min aggregate function - <a href="lang_aggfunc.html#min_agg">lang_aggfunc.html#min_agg</a></li><li>min SQL function - <a href="lang_corefunc.html#min_scalar">lang_corefunc.html#min_scalar</a></li><li>min/max optimization - <a href="optoverview.html#minmax">optoverview.html#minmax</a></li><li>min_agg - <a href="lang_aggfunc.html#min_agg">lang_aggfunc.html#min_agg</a></li><li>min_scalar - <a href="lang_corefunc.html#min_scalar">lang_corefunc.html#min_scalar</a></li><li>missing callback - <a href="swarmvtab.html#the_missing_callback">swarmvtab.html#the_missing_callback</a></li><li>mmap - <a href="mmap.html">mmap.html</a></li><li>mmap_size - <a href="pragma.html#pragma_mmap_size">pragma.html#pragma_mmap_size</a></li><li>mmap_size pragma - <a href="pragma.html#pragma_mmap_size">pragma.html#pragma_mmap_size</a></li><li>mod - <a href="lang_mathfunc.html#mod">lang_mathfunc.html#mod</a></li><li>mod SQL function - <a href="lang_mathfunc.html#mod">lang_mathfunc.html#mod</a></li><li>mode query parameter - <a href="uri.html#urimode">uri.html#urimode</a></li><li>modeof - <a href="uri.html#urimodeof">uri.html#urimodeof</a></li><li>modeof query parameter - <a href="uri.html#urimodeof">uri.html#urimodeof</a></li><li>modifiers - <a href="lang_datefunc.html#dtmods">lang_datefunc.html#dtmods</a></li><li>module_list - <a href="pragma.html#pragma_module_list">pragma.html#pragma_module_list</a></li><li>module_list pragma - <a href="pragma.html#pragma_module_list">pragma.html#pragma_module_list</a></li><li>most used - <a href="mostdeployed.html">mostdeployed.html</a></li><li>most widely deployed - <a href="mostdeployed.html">mostdeployed.html</a></li><li>most widely used - <a href="mostdeployed.html">mostdeployed.html</a></li><li>mutation test script - <a href="th3.html#muttest">th3.html#muttest</a></li><li>mutation testing - <a href="testing.html#mutationtests">testing.html#mutationtests</a></li><li>mxFrame - <a href="walformat.html#mxframe">walformat.html#mxframe</a></li><li>naming - <a href="lang_naming.html">lang_naming.html</a></li><li>nBackfill - <a href="walformat.html#nbackfill">walformat.html#nbackfill</a></li><li>NEAR queries - <a href="fts3.html#near">fts3.html#near</a></li><li>network filesystem use - <a href="useovernet.html">useovernet.html</a></li><li>Next Generation Query Planner - <a href="queryplanner-ng.html">queryplanner-ng.html</a></li><li>next generation query planner - <a href="queryplanner-ng.html">queryplanner-ng.html</a></li><li>NGQP - <a href="queryplanner-ng.html">queryplanner-ng.html</a></li><li>NOCASE - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>NOCASE collating function - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>nolock query parameter - <a href="uri.html#urinolock">uri.html#urinolock</a></li><li>non-deterministic functions - <a href="deterministic.html">deterministic.html</a></li><li>non-standard SELECT syntax - <a href="lang_select.html#nonstd">lang_select.html#nonstd</a></li><li>NOT EXISTS operator - <a href="lang_expr.html#exists_op">lang_expr.html#exists_op</a></li><li>NOT IN operator - <a href="lang_expr.html#in_op">lang_expr.html#in_op</a></li><li>NOT INDEXED - <a href="lang_indexedby.html">lang_indexedby.html</a></li><li>NOT MATERIALIZED - <a href="lang_with.html#mathint">lang_with.html#mathint</a></li><li>NOT NULL - <a href="lang_createtable.html#notnullconst">lang_createtable.html#notnullconst</a></li><li>NOT NULL constraint - <a href="lang_createtable.html#notnullconst">lang_createtable.html#notnullconst</a></li><li>NOT NULL constraints - <a href="lang_createtable.html#notnullconst">lang_createtable.html#notnullconst</a></li><li>not open-contributin - <a href="copyright.html#notopencontrib">copyright.html#notopencontrib</a></li><li>NUL characters in strings - <a href="nulinstr.html">nulinstr.html</a></li><li>nullif - <a href="lang_corefunc.html#nullif">lang_corefunc.html#nullif</a></li><li>nullif SQL function - <a href="lang_corefunc.html#nullif">lang_corefunc.html#nullif</a></li><li>NULLS FIRST - <a href="lang_select.html#nullslast">lang_select.html#nullslast</a></li><li>NULLS LAST - <a href="lang_select.html#nullslast">lang_select.html#nullslast</a></li><li>nullvalue method - <a href="tclsqlite.html#nullvalue">tclsqlite.html#nullvalue</a></li><li>numeric literals - <a href="lang_expr.html#litvalue">lang_expr.html#litvalue</a></li><li>numeric-literal - <a href="syntax/numeric-literal.html">syntax/numeric-literal.html</a></li><li>numeric-literal syntax diagram - <a href="syntax/numeric-literal.html">syntax/numeric-literal.html</a></li><li>object resolution - <a href="lang_naming.html">lang_naming.html</a></li><li>octet_length - <a href="lang_corefunc.html#octet_length">lang_corefunc.html#octet_length</a></li><li>octet_length SQL function - <a href="lang_corefunc.html#octet_length">lang_corefunc.html#octet_length</a></li><li>OFFSET - <a href="lang_select.html#limitoffset">lang_select.html#limitoffset</a></li><li>offsets - <a href="fts3.html#offsets">fts3.html#offsets</a></li><li>omit-left-join optimization - <a href="optoverview.html#omitnoopjoin">optoverview.html#omitnoopjoin</a></li><li>omit-outer-join optimization - <a href="optoverview.html#omitnoopjoin">optoverview.html#omitnoopjoin</a></li><li>omitfeatures - <a href="compile.html#omitfeatures">compile.html#omitfeatures</a></li><li>ON CONFLICT - <a href="lang_conflict.html">lang_conflict.html</a></li><li>ON CONFLICT clause - <a href="lang_conflict.html">lang_conflict.html</a></li><li>ON CONFLICT clauses - <a href="lang_conflict.html">lang_conflict.html</a></li><li>on-disk format - <a href="fileformat2.html">fileformat2.html</a></li><li>onecolumn method - <a href="tclsqlite.html#onecolumn">tclsqlite.html#onecolumn</a></li><li>opcode definitions - <a href="opcode.html#codes">opcode.html#codes</a></li><li>opcodes - <a href="opcode.html">opcode.html</a></li><li>OPEN_EXRESCODE - <a href="c3ref/open.html#openexrescode">c3ref/open.html#openexrescode</a></li><li>OPEN_NOFOLLOW - <a href="c3ref/open.html#opennofollow">c3ref/open.html#opennofollow</a></li><li>openclose callback - <a href="swarmvtab.html#the_openclose_callback">swarmvtab.html#the_openclose_callback</a></li><li>OpenOffice case study - <a href="affcase1.html">affcase1.html</a></li><li>optimize - <a href="pragma.html#pragma_optimize">pragma.html#pragma_optimize</a></li><li>optimize command - <a href="fts3.html#*fts4optcmd">fts3.html#*fts4optcmd</a></li><li>optimize pragma - <a href="pragma.html#pragma_optimize">pragma.html#pragma_optimize</a></li><li>optimizer - <a href="optoverview.html">optoverview.html</a></li><li>OR optimization - <a href="optoverview.html#or_opt">optoverview.html#or_opt</a></li><li>or optimization - <a href="optoverview.html#or_opt">optoverview.html#or_opt</a></li><li>or-connected-terms - <a href="queryplanner.html#or_in_where">queryplanner.html#or_in_where</a></li><li>ORDER BY - <a href="lang_select.html#orderby">lang_select.html#orderby</a></li><li>order by - <a href="lang_select.html#orderby">lang_select.html#orderby</a></li><li>ORDER BY clause in aggregate functions - <a href="lang_aggfunc.html#aggorderby">lang_aggfunc.html#aggorderby</a></li><li>orderByConsumed - <a href="vtab.html#obc">vtab.html#obc</a></li><li>ordering-term - <a href="syntax/ordering-term.html">syntax/ordering-term.html</a></li><li>ordering-term syntax diagram - <a href="syntax/ordering-term.html">syntax/ordering-term.html</a></li><li>ordinary common table expressions - <a href="lang_with.html#ordinarycte">lang_with.html#ordinarycte</a></li><li>OS backend - <a href="vfs.html">vfs.html</a></li><li>OSS Fuzz - <a href="testing.html#ossfuzz">testing.html#ossfuzz</a></li><li>OUTER JOIN strength reduction - <a href="optoverview.html#leftjoinreduction">optoverview.html#leftjoinreduction</a></li><li>OUTER JOIN strength reduction optimization - <a href="optoverview.html#leftjoinreduction">optoverview.html#leftjoinreduction</a></li><li>output mode - <a href="cli.html#dotmode">cli.html#dotmode</a></li><li>over-clause - <a href="syntax/over-clause.html">syntax/over-clause.html</a></li><li>over-clause syntax diagram - <a href="syntax/over-clause.html">syntax/over-clause.html</a></li><li>overflow page - <a href="fileformat2.html#ovflpgs">fileformat2.html#ovflpgs</a></li><li>overflow pages - <a href="fileformat2.html#ovflpgs">fileformat2.html#ovflpgs</a></li><li>page cache - <a href="c3ref/pcache_methods2.html">c3ref/pcache_methods2.html</a></li><li>page_count - <a href="pragma.html#pragma_page_count">pragma.html#pragma_page_count</a></li><li>page_count pragma - <a href="pragma.html#pragma_page_count">pragma.html#pragma_page_count</a></li><li>page_size - <a href="pragma.html#pragma_page_size">pragma.html#pragma_page_size</a></li><li>page_size pragma - <a href="pragma.html#pragma_page_size">pragma.html#pragma_page_size</a></li><li>pagecache memory allocator - <a href="malloc.html#pagecache">malloc.html#pagecache</a></li><li>parameter - <a href="lang_expr.html#varparam">lang_expr.html#varparam</a></li><li>parameter binding - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>parameters - <a href="lang_expr.html#varparam">lang_expr.html#varparam</a></li><li>parent key - <a href="foreignkeys.html#parentchild">foreignkeys.html#parentchild</a></li><li>parent table - <a href="foreignkeys.html#parentchild">foreignkeys.html#parentchild</a></li><li>parser_trace - <a href="pragma.html#pragma_parser_trace">pragma.html#pragma_parser_trace</a></li><li>parser_trace pragma - <a href="pragma.html#pragma_parser_trace">pragma.html#pragma_parser_trace</a></li><li>partial index - <a href="partialindex.html">partialindex.html</a></li><li>partial indexes - <a href="partialindex.html">partialindex.html</a></li><li>partial indices - <a href="partialindex.html">partialindex.html</a></li><li>partial sorting by index - <a href="queryplanner.html#partialsort">queryplanner.html#partialsort</a></li><li>partition - <a href="windowfunctions.html#ptxn">windowfunctions.html#ptxn</a></li><li>patchset - <a href="sessionintro.html#changeset">sessionintro.html#changeset</a></li><li>patchsets - <a href="sessionintro.html#changeset">sessionintro.html#changeset</a></li><li>PENDING - <a href="lockingv3.html#pending_lock">lockingv3.html#pending_lock</a></li><li>PENDING lock - <a href="lockingv3.html#pending_lock">lockingv3.html#pending_lock</a></li><li>pending lock - <a href="lockingv3.html#pending_lock">lockingv3.html#pending_lock</a></li><li>permuted index - <a href="sitemap.html">sitemap.html</a></li><li>persistent journal mode - <a href="pragma.html#pragma_journal_mode">pragma.html#pragma_journal_mode</a></li><li>persistent loadable extensions - <a href="loadext.html#persist">loadext.html#persist</a></li><li>phrase queries - <a href="fts3.html#phrase">fts3.html#phrase</a></li><li>pi - <a href="lang_mathfunc.html#pi">lang_mathfunc.html#pi</a></li><li>pi SQL function - <a href="lang_mathfunc.html#pi">lang_mathfunc.html#pi</a></li><li>pointer leak - <a href="bindptr.html#ptrleak">bindptr.html#ptrleak</a></li><li>pointer leaks - <a href="bindptr.html#ptrleak">bindptr.html#ptrleak</a></li><li>pointer passing interface - <a href="bindptr.html">bindptr.html</a></li><li>pointer passing interfaces - <a href="bindptr.html">bindptr.html</a></li><li>pointer types - <a href="bindptr.html#ptrtyp">bindptr.html#ptrtyp</a></li><li>pointer value - <a href="bindptr.html">bindptr.html</a></li><li>porting SQLite - <a href="custombuild.html">custombuild.html</a></li><li>pow - <a href="lang_mathfunc.html#pow">lang_mathfunc.html#pow</a></li><li>pow SQL function - <a href="lang_mathfunc.html#pow">lang_mathfunc.html#pow</a></li><li>power-safe - <a href="transactional.html">transactional.html</a></li><li>power-safe transactions - <a href="transactional.html">transactional.html</a></li><li>powersafe overwrite - <a href="psow.html">psow.html</a></li><li>PRAGMA - <a href="pragma.html#syntax">pragma.html#syntax</a></li><li>PRAGMA analysis_limit - <a href="pragma.html#pragma_analysis_limit">pragma.html#pragma_analysis_limit</a></li><li>PRAGMA application_id - <a href="pragma.html#pragma_application_id">pragma.html#pragma_application_id</a></li><li>PRAGMA auto_vacuum - <a href="pragma.html#pragma_auto_vacuum">pragma.html#pragma_auto_vacuum</a></li><li>PRAGMA automatic_index - <a href="pragma.html#pragma_automatic_index">pragma.html#pragma_automatic_index</a></li><li>PRAGMA busy_timeout - <a href="pragma.html#pragma_busy_timeout">pragma.html#pragma_busy_timeout</a></li><li>PRAGMA cache_size - <a href="pragma.html#pragma_cache_size">pragma.html#pragma_cache_size</a></li><li>PRAGMA cache_spill - <a href="pragma.html#pragma_cache_spill">pragma.html#pragma_cache_spill</a></li><li>PRAGMA case_sensitive_like - <a href="pragma.html#pragma_case_sensitive_like">pragma.html#pragma_case_sensitive_like</a></li><li>PRAGMA cell_size_check - <a href="pragma.html#pragma_cell_size_check">pragma.html#pragma_cell_size_check</a></li><li>PRAGMA checkpoint_fullfsync - <a href="pragma.html#pragma_checkpoint_fullfsync">pragma.html#pragma_checkpoint_fullfsync</a></li><li>PRAGMA collation_list - <a href="pragma.html#pragma_collation_list">pragma.html#pragma_collation_list</a></li><li>PRAGMA compile_options - <a href="pragma.html#pragma_compile_options">pragma.html#pragma_compile_options</a></li><li>PRAGMA count_changes - <a href="pragma.html#pragma_count_changes">pragma.html#pragma_count_changes</a></li><li>PRAGMA data_store_directory - <a href="pragma.html#pragma_data_store_directory">pragma.html#pragma_data_store_directory</a></li><li>PRAGMA data_version - <a href="pragma.html#pragma_data_version">pragma.html#pragma_data_version</a></li><li>PRAGMA database_list - <a href="pragma.html#pragma_database_list">pragma.html#pragma_database_list</a></li><li>PRAGMA default_cache_size - <a href="pragma.html#pragma_default_cache_size">pragma.html#pragma_default_cache_size</a></li><li>PRAGMA defer_foreign_keys - <a href="pragma.html#pragma_defer_foreign_keys">pragma.html#pragma_defer_foreign_keys</a></li><li>PRAGMA empty_result_callbacks - <a href="pragma.html#pragma_empty_result_callbacks">pragma.html#pragma_empty_result_callbacks</a></li><li>PRAGMA encoding - <a href="pragma.html#pragma_encoding">pragma.html#pragma_encoding</a></li><li>PRAGMA foreign_key_check - <a href="pragma.html#pragma_foreign_key_check">pragma.html#pragma_foreign_key_check</a></li><li>PRAGMA foreign_key_list - <a href="pragma.html#pragma_foreign_key_list">pragma.html#pragma_foreign_key_list</a></li><li>PRAGMA foreign_keys - <a href="pragma.html#pragma_foreign_keys">pragma.html#pragma_foreign_keys</a></li><li>PRAGMA freelist_count - <a href="pragma.html#pragma_freelist_count">pragma.html#pragma_freelist_count</a></li><li>PRAGMA full_column_names - <a href="pragma.html#pragma_full_column_names">pragma.html#pragma_full_column_names</a></li><li>PRAGMA fullfsync - <a href="pragma.html#pragma_fullfsync">pragma.html#pragma_fullfsync</a></li><li>PRAGMA function - <a href="pragma.html#pragfunc">pragma.html#pragfunc</a></li><li>PRAGMA function_list - <a href="pragma.html#pragma_function_list">pragma.html#pragma_function_list</a></li><li>PRAGMA functions - <a href="pragma.html#pragfunc">pragma.html#pragfunc</a></li><li>PRAGMA hard_heap_limit - <a href="pragma.html#pragma_hard_heap_limit">pragma.html#pragma_hard_heap_limit</a></li><li>PRAGMA ignore_check_constraints - <a href="pragma.html#pragma_ignore_check_constraints">pragma.html#pragma_ignore_check_constraints</a></li><li>PRAGMA incremental_vacuum - <a href="pragma.html#pragma_incremental_vacuum">pragma.html#pragma_incremental_vacuum</a></li><li>PRAGMA index_info - <a href="pragma.html#pragma_index_info">pragma.html#pragma_index_info</a></li><li>PRAGMA index_list - <a href="pragma.html#pragma_index_list">pragma.html#pragma_index_list</a></li><li>PRAGMA index_xinfo - <a href="pragma.html#pragma_index_xinfo">pragma.html#pragma_index_xinfo</a></li><li>PRAGMA integrity_check - <a href="pragma.html#pragma_integrity_check">pragma.html#pragma_integrity_check</a></li><li>PRAGMA journal_mode - <a href="pragma.html#pragma_journal_mode">pragma.html#pragma_journal_mode</a></li><li>PRAGMA journal_size_limit - <a href="pragma.html#pragma_journal_size_limit">pragma.html#pragma_journal_size_limit</a></li><li>PRAGMA legacy_alter_table - <a href="pragma.html#pragma_legacy_alter_table">pragma.html#pragma_legacy_alter_table</a></li><li>PRAGMA legacy_file_format - <a href="pragma.html#pragma_legacy_file_format">pragma.html#pragma_legacy_file_format</a></li><li>pragma list - <a href="pragma.html#toc">pragma.html#toc</a></li><li>PRAGMA locking_mode - <a href="pragma.html#pragma_locking_mode">pragma.html#pragma_locking_mode</a></li><li>PRAGMA max_page_count - <a href="pragma.html#pragma_max_page_count">pragma.html#pragma_max_page_count</a></li><li>PRAGMA mmap_size - <a href="pragma.html#pragma_mmap_size">pragma.html#pragma_mmap_size</a></li><li>PRAGMA module_list - <a href="pragma.html#pragma_module_list">pragma.html#pragma_module_list</a></li><li>PRAGMA optimize - <a href="pragma.html#pragma_optimize">pragma.html#pragma_optimize</a></li><li>PRAGMA page_count - <a href="pragma.html#pragma_page_count">pragma.html#pragma_page_count</a></li><li>PRAGMA page_size - <a href="pragma.html#pragma_page_size">pragma.html#pragma_page_size</a></li><li>PRAGMA parser_trace - <a href="pragma.html#pragma_parser_trace">pragma.html#pragma_parser_trace</a></li><li>PRAGMA pragma_list - <a href="pragma.html#pragma_pragma_list">pragma.html#pragma_pragma_list</a></li><li>PRAGMA query_only - <a href="pragma.html#pragma_query_only">pragma.html#pragma_query_only</a></li><li>PRAGMA quick_check - <a href="pragma.html#pragma_quick_check">pragma.html#pragma_quick_check</a></li><li>PRAGMA read_uncommitted - <a href="pragma.html#pragma_read_uncommitted">pragma.html#pragma_read_uncommitted</a></li><li>PRAGMA recursive_triggers - <a href="pragma.html#pragma_recursive_triggers">pragma.html#pragma_recursive_triggers</a></li><li>PRAGMA reverse_unordered_selects - <a href="pragma.html#pragma_reverse_unordered_selects">pragma.html#pragma_reverse_unordered_selects</a></li><li>PRAGMA schema_version - <a href="pragma.html#pragma_schema_version">pragma.html#pragma_schema_version</a></li><li>PRAGMA secure_delete - <a href="pragma.html#pragma_secure_delete">pragma.html#pragma_secure_delete</a></li><li>PRAGMA short_column_names - <a href="pragma.html#pragma_short_column_names">pragma.html#pragma_short_column_names</a></li><li>PRAGMA shrink_memory - <a href="pragma.html#pragma_shrink_memory">pragma.html#pragma_shrink_memory</a></li><li>PRAGMA soft_heap_limit - <a href="pragma.html#pragma_soft_heap_limit">pragma.html#pragma_soft_heap_limit</a></li><li>PRAGMA stats - <a href="pragma.html#pragma_stats">pragma.html#pragma_stats</a></li><li>PRAGMA synchronous - <a href="pragma.html#pragma_synchronous">pragma.html#pragma_synchronous</a></li><li>PRAGMA table_info - <a href="pragma.html#pragma_table_info">pragma.html#pragma_table_info</a></li><li>PRAGMA table_list - <a href="pragma.html#pragma_table_list">pragma.html#pragma_table_list</a></li><li>PRAGMA table_xinfo - <a href="pragma.html#pragma_table_xinfo">pragma.html#pragma_table_xinfo</a></li><li>PRAGMA temp_store - <a href="pragma.html#pragma_temp_store">pragma.html#pragma_temp_store</a></li><li>PRAGMA temp_store_directory - <a href="pragma.html#pragma_temp_store_directory">pragma.html#pragma_temp_store_directory</a></li><li>PRAGMA threads - <a href="pragma.html#pragma_threads">pragma.html#pragma_threads</a></li><li>PRAGMA trusted_schema - <a href="pragma.html#pragma_trusted_schema">pragma.html#pragma_trusted_schema</a></li><li>PRAGMA user_version - <a href="pragma.html#pragma_user_version">pragma.html#pragma_user_version</a></li><li>PRAGMA vdbe_addoptrace - <a href="pragma.html#pragma_vdbe_addoptrace">pragma.html#pragma_vdbe_addoptrace</a></li><li>PRAGMA vdbe_debug - <a href="pragma.html#pragma_vdbe_debug">pragma.html#pragma_vdbe_debug</a></li><li>PRAGMA vdbe_listing - <a href="pragma.html#pragma_vdbe_listing">pragma.html#pragma_vdbe_listing</a></li><li>PRAGMA vdbe_trace - <a href="pragma.html#pragma_vdbe_trace">pragma.html#pragma_vdbe_trace</a></li><li>PRAGMA wal_autocheckpoint - <a href="pragma.html#pragma_wal_autocheckpoint">pragma.html#pragma_wal_autocheckpoint</a></li><li>PRAGMA wal_checkpoint - <a href="pragma.html#pragma_wal_checkpoint">pragma.html#pragma_wal_checkpoint</a></li><li>PRAGMA writable_schema - <a href="pragma.html#pragma_writable_schema">pragma.html#pragma_writable_schema</a></li><li>pragma-stmt - <a href="syntax/pragma-stmt.html">syntax/pragma-stmt.html</a></li><li>pragma-stmt syntax diagram - <a href="syntax/pragma-stmt.html">syntax/pragma-stmt.html</a></li><li>pragma-value - <a href="syntax/pragma-value.html">syntax/pragma-value.html</a></li><li>pragma-value syntax diagram - <a href="syntax/pragma-value.html">syntax/pragma-value.html</a></li><li>pragma_list - <a href="pragma.html#pragma_pragma_list">pragma.html#pragma_pragma_list</a></li><li>pragma_list pragma - <a href="pragma.html#pragma_pragma_list">pragma.html#pragma_pragma_list</a></li><li>precompiled amalgamation tarballs - <a href="amalgamation.html#amalgtarball">amalgamation.html#amalgtarball</a></li><li>prefix queries - <a href="fts3.html#termprefix">fts3.html#termprefix</a></li><li>prefix query - <a href="fts3.html#termprefix">fts3.html#termprefix</a></li><li>prepared statement - <a href="c3ref/stmt.html">c3ref/stmt.html</a></li><li>prepared statements - <a href="c3ref/stmt.html">c3ref/stmt.html</a></li><li>preupdate method - <a href="tclsqlite.html#preupdate">tclsqlite.html#preupdate</a></li><li>PRIMARY KEY - <a href="lang_createtable.html#primkeyconst">lang_createtable.html#primkeyconst</a></li><li>PRIMARY KEY constraint - <a href="lang_createtable.html#primkeyconst">lang_createtable.html#primkeyconst</a></li><li>primary versus extended result codes - <a href="rescode.html#pve">rescode.html#pve</a></li><li>printf - <a href="lang_corefunc.html#printf">lang_corefunc.html#printf</a></li><li>printf SQL function - <a href="lang_corefunc.html#printf">lang_corefunc.html#printf</a></li><li>prior releases - <a href="chronology.html">chronology.html</a></li><li>private branches - <a href="privatebranch.html">privatebranch.html</a></li><li>professional support - <a href="prosupport.html">prosupport.html</a></li><li>profile method - <a href="tclsqlite.html#profile">tclsqlite.html#profile</a></li><li>Programming Loadable Extensions - <a href="loadext.html#write">loadext.html#write</a></li><li>progress method - <a href="tclsqlite.html#progress">tclsqlite.html#progress</a></li><li>protected sqlite3_value - <a href="c3ref/value.html">c3ref/value.html</a></li><li>PSOW - <a href="psow.html">psow.html</a></li><li>psow query parameter - <a href="uri.html#uripsow">uri.html#uripsow</a></li><li>public-domain - <a href="copyright.html">copyright.html</a></li><li>push-down optimization - <a href="optoverview.html#pushdown">optoverview.html#pushdown</a></li><li>Q - <a href="printf.html#percentq">printf.html#percentq</a></li><li>q - <a href="printf.html#percentq">printf.html#percentq</a></li><li>qbox - <a href="cli.html#qbox">cli.html#qbox</a></li><li>qbox output mode - <a href="cli.html#qbox">cli.html#qbox</a></li><li>QPSG - <a href="queryplanner-ng.html#qpstab">queryplanner-ng.html#qpstab</a></li><li>qualified-table-name - <a href="syntax/qualified-table-name.html">syntax/qualified-table-name.html</a></li><li>qualified-table-name syntax diagram - <a href="syntax/qualified-table-name.html">syntax/qualified-table-name.html</a></li><li>queries against graphs - <a href="lang_with.html#rcex3">lang_with.html#rcex3</a></li><li>query flattener - <a href="optoverview.html#flattening">optoverview.html#flattening</a></li><li>query parameters with special meaning to SQLite - <a href="uri.html#coreqp">uri.html#coreqp</a></li><li>query planner - <a href="optoverview.html">optoverview.html</a></li><li>query planner checklist - <a href="queryplanner-ng.html#howtofix">queryplanner-ng.html#howtofix</a></li><li>query planner stability guarantee - <a href="queryplanner-ng.html#qpstab">queryplanner-ng.html#qpstab</a></li><li>query-time index - <a href="optoverview.html#autoindex">optoverview.html#autoindex</a></li><li>Query-time indexes - <a href="optoverview.html#autoindex">optoverview.html#autoindex</a></li><li>Query-time indexing - <a href="optoverview.html#autoindex">optoverview.html#autoindex</a></li><li>query-time indexing - <a href="optoverview.html#autoindex">optoverview.html#autoindex</a></li><li>query_only - <a href="pragma.html#pragma_query_only">pragma.html#pragma_query_only</a></li><li>query_only pragma - <a href="pragma.html#pragma_query_only">pragma.html#pragma_query_only</a></li><li>Quick Start Guide - <a href="quickstart.html">quickstart.html</a></li><li>quick_check - <a href="pragma.html#pragma_quick_check">pragma.html#pragma_quick_check</a></li><li>quick_check pragma - <a href="pragma.html#pragma_quick_check">pragma.html#pragma_quick_check</a></li><li>quickstart - <a href="quickstart.html">quickstart.html</a></li><li>Quirks - <a href="quirks.html">quirks.html</a></li><li>quote - <a href="lang_corefunc.html#quote">lang_corefunc.html#quote</a></li><li>quote SQL function - <a href="lang_corefunc.html#quote">lang_corefunc.html#quote</a></li><li>R-Tree extension - <a href="rtree.html">rtree.html</a></li><li>R-Trees - <a href="rtree.html">rtree.html</a></li><li>radians - <a href="lang_mathfunc.html#radians">lang_mathfunc.html#radians</a></li><li>radians SQL function - <a href="lang_mathfunc.html#radians">lang_mathfunc.html#radians</a></li><li>RAISE function - <a href="lang_createtrigger.html#raise">lang_createtrigger.html#raise</a></li><li>raise-function - <a href="syntax/raise-function.html">syntax/raise-function.html</a></li><li>raise-function syntax diagram - <a href="syntax/raise-function.html">syntax/raise-function.html</a></li><li>random - <a href="lang_corefunc.html#random">lang_corefunc.html#random</a></li><li>random SQL function - <a href="lang_corefunc.html#random">lang_corefunc.html#random</a></li><li>randomblob - <a href="lang_corefunc.html#randomblob">lang_corefunc.html#randomblob</a></li><li>randomblob SQL function - <a href="lang_corefunc.html#randomblob">lang_corefunc.html#randomblob</a></li><li>RANGE frames - <a href="windowfunctions.html#rangetype">windowfunctions.html#rangetype</a></li><li>RANGE n FOLLOWING - <a href="windowfunctions.html#exprrange">windowfunctions.html#exprrange</a></li><li>RANGE n PRECEDING - <a href="windowfunctions.html#exprrange">windowfunctions.html#exprrange</a></li><li>range query optimization - <a href="optoverview.html#rangequery">optoverview.html#rangequery</a></li><li>RBU - <a href="rbu.html">rbu.html</a></li><li>RBU Database Contents - <a href="rbu.html#database_contents">rbu.html#database_contents</a></li><li>RBU Database Tables - <a href="rbu.html#database_tables">rbu.html#database_tables</a></li><li>RBU extension - <a href="rbu.html">rbu.html</a></li><li>RBU FTS3/4 Tables - <a href="rbu.html#fts4_tables">rbu.html#fts4_tables</a></li><li>RBU Update - <a href="rbu.html#rbu_updates">rbu.html#rbu_updates</a></li><li>RBU Vacuum - <a href="rbu.html#rbu_vacuum">rbu.html#rbu_vacuum</a></li><li>read-only WAL databases - <a href="wal.html#readonly">wal.html#readonly</a></li><li>read_uncommitted - <a href="pragma.html#pragma_read_uncommitted">pragma.html#pragma_read_uncommitted</a></li><li>read_uncommitted pragma - <a href="pragma.html#pragma_read_uncommitted">pragma.html#pragma_read_uncommitted</a></li><li>reading and writing an rtree at the same time - <a href="rtree.html#readwrite">rtree.html#readwrite</a></li><li>rebuild command - <a href="fts3.html#*fts4rebuidcmd">fts3.html#*fts4rebuidcmd</a></li><li>recent CVEs - <a href="cves.html#cvetab">cves.html#cvetab</a></li><li>recommended by the US Library of Congress - <a href="locrsf.html">locrsf.html</a></li><li>recommended compile-time option - <a href="compile.html#rcmd">compile.html#rcmd</a></li><li>recommended compile-time options - <a href="compile.html#rcmd">compile.html#rcmd</a></li><li>recommended storage format - <a href="locrsf.html">locrsf.html</a></li><li>Recommended usage patterns for ANALYZE - <a href="lang_analyze.html#req">lang_analyze.html#req</a></li><li>record format - <a href="fileformat2.html#record_format">fileformat2.html#record_format</a></li><li>recovery - <a href="walformat.html#recovery">walformat.html#recovery</a></li><li>recovery extension - <a href="recovery.html">recovery.html</a></li><li>recursive common table expression - <a href="lang_with.html#recursivecte">lang_with.html#recursivecte</a></li><li>recursive common table expressions - <a href="lang_with.html#recursivecte">lang_with.html#recursivecte</a></li><li>recursive query - <a href="lang_with.html#recursivecte">lang_with.html#recursivecte</a></li><li>recursive-cte - <a href="syntax/recursive-cte.html">syntax/recursive-cte.html</a></li><li>recursive-cte syntax diagram - <a href="syntax/recursive-cte.html">syntax/recursive-cte.html</a></li><li>recursive_triggers - <a href="pragma.html#pragma_recursive_triggers">pragma.html#pragma_recursive_triggers</a></li><li>recursive_triggers pragma - <a href="pragma.html#pragma_recursive_triggers">pragma.html#pragma_recursive_triggers</a></li><li>REGEXP - <a href="lang_expr.html#regexp">lang_expr.html#regexp</a></li><li>REINDEX - <a href="lang_reindex.html">lang_reindex.html</a></li><li>reindex - <a href="lang_reindex.html">lang_reindex.html</a></li><li>reindex-stmt - <a href="syntax/reindex-stmt.html">syntax/reindex-stmt.html</a></li><li>reindex-stmt syntax diagram - <a href="syntax/reindex-stmt.html">syntax/reindex-stmt.html</a></li><li>RELEASE - <a href="lang_savepoint.html">lang_savepoint.html</a></li><li>release history - <a href="changes.html">changes.html</a></li><li>release testing checklists - <a href="testing.html#cklist">testing.html#cklist</a></li><li>release-stmt - <a href="syntax/release-stmt.html">syntax/release-stmt.html</a></li><li>release-stmt syntax diagram - <a href="syntax/release-stmt.html">syntax/release-stmt.html</a></li><li>relfootprint - <a href="footprint.html">footprint.html</a></li><li>rename column - <a href="lang_altertable.html#altertabmvcol">lang_altertable.html#altertabmvcol</a></li><li>rename table - <a href="lang_altertable.html#altertabrename">lang_altertable.html#altertabrename</a></li><li>REPLACE - <a href="lang_replace.html">lang_replace.html</a></li><li>replace - <a href="lang_corefunc.html#replace">lang_corefunc.html#replace</a></li><li>replace SQL function - <a href="lang_corefunc.html#replace">lang_corefunc.html#replace</a></li><li>reported vulnerabilities - <a href="cves.html">cves.html</a></li><li>requirements - <a href="requirements.html">requirements.html</a></li><li>reserve bytes - <a href="fileformat2.html#resbyte">fileformat2.html#resbyte</a></li><li>RESERVED - <a href="lockingv3.html#reserved_lock">lockingv3.html#reserved_lock</a></li><li>RESERVED lock - <a href="lockingv3.html#reserved_lock">lockingv3.html#reserved_lock</a></li><li>reserved lock - <a href="lockingv3.html#reserved_lock">lockingv3.html#reserved_lock</a></li><li>reset the WAL - <a href="fileformat2.html#walreset">fileformat2.html#walreset</a></li><li>restore method - <a href="tclsqlite.html#restore">tclsqlite.html#restore</a></li><li>result code - <a href="rescode.html">rescode.html</a></li><li>result code definitions - <a href="c3ref/c_abort.html">c3ref/c_abort.html</a></li><li>result codes - <a href="rescode.html">rescode.html</a></li><li>result-column - <a href="syntax/result-column.html">syntax/result-column.html</a></li><li>result-column syntax diagram - <a href="syntax/result-column.html">syntax/result-column.html</a></li><li>result-set expressions - <a href="lang_select.html#resultset">lang_select.html#resultset</a></li><li>RETURNING - <a href="lang_returning.html">lang_returning.html</a></li><li>returning - <a href="lang_returning.html">lang_returning.html</a></li><li>RETURNING clause - <a href="lang_returning.html">lang_returning.html</a></li><li>returning-clause - <a href="syntax/returning-clause.html">syntax/returning-clause.html</a></li><li>returning-clause syntax diagram - <a href="syntax/returning-clause.html">syntax/returning-clause.html</a></li><li>reverse_unordered_selects - <a href="pragma.html#pragma_reverse_unordered_selects">pragma.html#pragma_reverse_unordered_selects</a></li><li>reverse_unordered_selects pragma - <a href="pragma.html#pragma_reverse_unordered_selects">pragma.html#pragma_reverse_unordered_selects</a></li><li>RIGHT and FULL OUTER JOIN - <a href="lang_select.html#rjoin">lang_select.html#rjoin</a></li><li>RIGHT JOIN - <a href="lang_select.html#rjoin">lang_select.html#rjoin</a></li><li>Robson proof - <a href="malloc.html#nofrag">malloc.html#nofrag</a></li><li>ROLLBACK - <a href="lang_transaction.html">lang_transaction.html</a></li><li>rollback journal - <a href="lockingv3.html#rollback">lockingv3.html#rollback</a></li><li>rollback journal format - <a href="fileformat2.html#rollbackjournal">fileformat2.html#rollbackjournal</a></li><li>rollback-stmt - <a href="syntax/rollback-stmt.html">syntax/rollback-stmt.html</a></li><li>rollback-stmt syntax diagram - <a href="syntax/rollback-stmt.html">syntax/rollback-stmt.html</a></li><li>rollback_hook method - <a href="tclsqlite.html#rollback_hook">tclsqlite.html#rollback_hook</a></li><li>round - <a href="lang_corefunc.html#round">lang_corefunc.html#round</a></li><li>round SQL function - <a href="lang_corefunc.html#round">lang_corefunc.html#round</a></li><li>row value - <a href="rowvalue.html">rowvalue.html</a></li><li>row value IN operator - <a href="rowvalue.html#rvinop">rowvalue.html#rvinop</a></li><li>row values - <a href="rowvalue.html">rowvalue.html</a></li><li>ROWID - <a href="lang_createtable.html#rowid">lang_createtable.html#rowid</a></li><li>rowid - <a href="lang_createtable.html#rowid">lang_createtable.html#rowid</a></li><li>rowid table - <a href="rowidtable.html">rowidtable.html</a></li><li>rowid tables - <a href="rowidtable.html">rowidtable.html</a></li><li>rowvalue - <a href="rowvalue.html">rowvalue.html</a></li><li>RTREE - <a href="rtree.html">rtree.html</a></li><li>rtree - <a href="rtree.html">rtree.html</a></li><li>rtree shadow tables - <a href="rtree.html#xshadow">rtree.html#xshadow</a></li><li>rtreecheck - <a href="rtree.html#rtreecheck">rtree.html#rtreecheck</a></li><li>RTRIM - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>rtrim - <a href="lang_corefunc.html#rtrim">lang_corefunc.html#rtrim</a></li><li>RTRIM collating function - <a href="datatype3.html#collation">datatype3.html#collation</a></li><li>rtrim SQL function - <a href="lang_corefunc.html#rtrim">lang_corefunc.html#rtrim</a></li><li>rules for determining column affinity - <a href="datatype3.html#affname">datatype3.html#affname</a></li><li>rules for determining column affinity in VIEWs - <a href="datatype3.html#affview">datatype3.html#affview</a></li><li>Run-Time Loadable Extensions - <a href="loadext.html">loadext.html</a></li><li>running ANALYZE via PRAGMA optimize - <a href="lang_analyze.html#pragopt">lang_analyze.html#pragopt</a></li><li>safe command-line option - <a href="cli.html#safemode">cli.html#safemode</a></li><li>SAVEPOINT - <a href="lang_savepoint.html">lang_savepoint.html</a></li><li>savepoint - <a href="lang_savepoint.html">lang_savepoint.html</a></li><li>SAVEPOINT bug - <a href="howtocorrupt.html#svptbug">howtocorrupt.html#svptbug</a></li><li>savepoint-stmt - <a href="syntax/savepoint-stmt.html">syntax/savepoint-stmt.html</a></li><li>savepoint-stmt syntax diagram - <a href="syntax/savepoint-stmt.html">syntax/savepoint-stmt.html</a></li><li>Scalar Functions - <a href="lang_corefunc.html">lang_corefunc.html</a></li><li>scalar functions - <a href="lang_corefunc.html">lang_corefunc.html</a></li><li>scan status flags - <a href="c3ref/c_scanstat_complex.html">c3ref/c_scanstat_complex.html</a></li><li>scanstatus options - <a href="c3ref/c_scanstat_est.html">c3ref/c_scanstat_est.html</a></li><li>schema format - <a href="fileformat2.html#schemaformat">fileformat2.html#schemaformat</a></li><li>schema format number - <a href="fileformat2.html#schemaformat">fileformat2.html#schemaformat</a></li><li>schema storage - <a href="fileformat2.html#ffschema">fileformat2.html#ffschema</a></li><li>schema_version - <a href="pragma.html#pragma_schema_version">pragma.html#pragma_schema_version</a></li><li>schema_version pragma - <a href="pragma.html#pragma_schema_version">pragma.html#pragma_schema_version</a></li><li>search application tips - <a href="fts3.html#appendix_a">fts3.html#appendix_a</a></li><li>second edition file format document - <a href="fileformat2.html">fileformat2.html</a></li><li>secure_delete - <a href="pragma.html#pragma_secure_delete">pragma.html#pragma_secure_delete</a></li><li>secure_delete pragma - <a href="pragma.html#pragma_secure_delete">pragma.html#pragma_secure_delete</a></li><li>security - <a href="security.html">security.html</a></li><li>segment btree - <a href="fts3.html#data_structures">fts3.html#data_structures</a></li><li>SELECT - <a href="lang_select.html">lang_select.html</a></li><li>select - <a href="lang_select.html">lang_select.html</a></li><li>SELECT query - <a href="lang_select.html">lang_select.html</a></li><li>SELECT statement - <a href="lang_select.html">lang_select.html</a></li><li>select-core - <a href="syntax/select-core.html">syntax/select-core.html</a></li><li>select-core syntax diagram - <a href="syntax/select-core.html">syntax/select-core.html</a></li><li>select-stmt - <a href="syntax/select-stmt.html">syntax/select-stmt.html</a></li><li>select-stmt syntax diagram - <a href="syntax/select-stmt.html">syntax/select-stmt.html</a></li><li>self-contained - <a href="selfcontained.html">selfcontained.html</a></li><li>separating a database from its journal - <a href="howtocorrupt.html#roguejrnl">howtocorrupt.html#roguejrnl</a></li><li>serial type - <a href="fileformat2.html#serialtype">fileformat2.html#serialtype</a></li><li>serial types - <a href="fileformat2.html#serialtype">fileformat2.html#serialtype</a></li><li>serialize method - <a href="tclsqlite.html#serialize">tclsqlite.html#serialize</a></li><li>series - <a href="series.html">series.html</a></li><li>server-side database - <a href="whentouse.html#serversidedb">whentouse.html#serversidedb</a></li><li>serverless - <a href="serverless.html">serverless.html</a></li><li>session - <a href="sessionintro.html">sessionintro.html</a></li><li>session extension - <a href="sessionintro.html">sessionintro.html</a></li><li>Session Extension C-language Interface - <a href="session/intro.html">session/intro.html</a></li><li>Session Module C-API function list - <a href="session/funclist.html">session/funclist.html</a></li><li>session-capi - <a href="session/intro.html">session/intro.html</a></li><li>session_funclist - <a href="session/funclist.html">session/funclist.html</a></li><li>shadow table - <a href="vtab.html#xshadowname">vtab.html#xshadowname</a></li><li>shadow tables - <a href="vtab.html#xshadowname">vtab.html#xshadowname</a></li><li>shadowtabs - <a href="fts3.html#shadow_tables">fts3.html#shadow_tables</a></li><li>SHARED - <a href="lockingv3.html#shared_lock">lockingv3.html#shared_lock</a></li><li>shared cache - <a href="sharedcache.html">sharedcache.html</a></li><li>shared cache mode - <a href="sharedcache.html">sharedcache.html</a></li><li>SHARED lock - <a href="lockingv3.html#shared_lock">lockingv3.html#shared_lock</a></li><li>shared lock - <a href="lockingv3.html#shared_lock">lockingv3.html#shared_lock</a></li><li>shims - <a href="vfs.html#shim">vfs.html#shim</a></li><li>shm file - <a href="walformat.html#shm">walformat.html#shm</a></li><li>short filenames - <a href="shortnames.html">shortnames.html</a></li><li>short_column_names - <a href="pragma.html#pragma_short_column_names">pragma.html#pragma_short_column_names</a></li><li>short_column_names pragma - <a href="pragma.html#pragma_short_column_names">pragma.html#pragma_short_column_names</a></li><li>shrink_memory - <a href="pragma.html#pragma_shrink_memory">pragma.html#pragma_shrink_memory</a></li><li>shrink_memory pragma - <a href="pragma.html#pragma_shrink_memory">pragma.html#pragma_shrink_memory</a></li><li>sign - <a href="lang_corefunc.html#sign">lang_corefunc.html#sign</a></li><li>sign SQL function - <a href="lang_corefunc.html#sign">lang_corefunc.html#sign</a></li><li>signed-number - <a href="syntax/signed-number.html">syntax/signed-number.html</a></li><li>signed-number syntax diagram - <a href="syntax/signed-number.html">syntax/signed-number.html</a></li><li>simple fts queries - <a href="fts3.html#simple_fts_queries">fts3.html#simple_fts_queries</a></li><li>simple SELECT - <a href="lang_select.html#simpleselect">lang_select.html#simpleselect</a></li><li>simple-function-invocation - <a href="syntax/simple-function-invocation.html">syntax/simple-function-invocation.html</a></li><li>simple-function-invocation syntax diagram - <a href="syntax/simple-function-invocation.html">syntax/simple-function-invocation.html</a></li><li>simple-select-stmt - <a href="syntax/simple-select-stmt.html">syntax/simple-select-stmt.html</a></li><li>simple-select-stmt syntax diagram - <a href="syntax/simple-select-stmt.html">syntax/simple-select-stmt.html</a></li><li>sin - <a href="lang_mathfunc.html#sin">lang_mathfunc.html#sin</a></li><li>sin SQL function - <a href="lang_mathfunc.html#sin">lang_mathfunc.html#sin</a></li><li>single-argument carray - <a href="carray.html#onearg">carray.html#onearg</a></li><li>sinh - <a href="lang_mathfunc.html#sinh">lang_mathfunc.html#sinh</a></li><li>sinh SQL function - <a href="lang_mathfunc.html#sinh">lang_mathfunc.html#sinh</a></li><li>skip-scan - <a href="optoverview.html#skipscan">optoverview.html#skipscan</a></li><li>skip-scan optimization - <a href="optoverview.html#skipscan">optoverview.html#skipscan</a></li><li>SLT - <a href="testing.html#slt">testing.html#slt</a></li><li>snapshot - <a href="c3ref/snapshot.html">c3ref/snapshot.html</a></li><li>snippet - <a href="fts3.html#snippet">fts3.html#snippet</a></li><li>soft_heap_limit - <a href="pragma.html#pragma_soft_heap_limit">pragma.html#pragma_soft_heap_limit</a></li><li>soft_heap_limit pragma - <a href="pragma.html#pragma_soft_heap_limit">pragma.html#pragma_soft_heap_limit</a></li><li>solve Sudoku puzzles - <a href="lang_with.html#sudoku">lang_with.html#sudoku</a></li><li>sort order - <a href="datatype3.html#sortorder">datatype3.html#sortorder</a></li><li>sorting - <a href="queryplanner.html#sorting">queryplanner.html#sorting</a></li><li>sorting subsets of the result - <a href="optoverview.html#partsort">optoverview.html#partsort</a></li><li>soundex - <a href="lang_corefunc.html#soundex">lang_corefunc.html#soundex</a></li><li>soundex SQL function - <a href="lang_corefunc.html#soundex">lang_corefunc.html#soundex</a></li><li>spellfix1 - <a href="spellfix1.html">spellfix1.html</a></li><li>split amalgamation - <a href="amalgamation.html#amal32k">amalgamation.html#amal32k</a></li><li>SQL Archive - <a href="sqlar.html">sqlar.html</a></li><li>SQL fuzzing - <a href="testing.html#fuzztesting">testing.html#fuzztesting</a></li><li>SQL keyword - <a href="lang_keywords.html">lang_keywords.html</a></li><li>SQL keywords - <a href="lang_keywords.html">lang_keywords.html</a></li><li>SQL Logic Tests - <a href="testing.html#slt">testing.html#slt</a></li><li>SQL parameter - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>SQL parameters - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sql parameters - <a href="swarmvtab.html#sql_parameters">swarmvtab.html#sql_parameters</a></li><li>SQL statement compiler - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sql-stmt - <a href="syntax/sql-stmt.html">syntax/sql-stmt.html</a></li><li>sql-stmt syntax diagram - <a href="syntax/sql-stmt.html">syntax/sql-stmt.html</a></li><li>sql-stmt-list - <a href="syntax/sql-stmt-list.html">syntax/sql-stmt-list.html</a></li><li>sql-stmt-list syntax diagram - <a href="syntax/sql-stmt-list.html">syntax/sql-stmt-list.html</a></li><li>SQLAR - <a href="sqlar.html">sqlar.html</a></li><li>sqldiff - <a href="sqldiff.html">sqldiff.html</a></li><li>sqldiff --rbu - <a href="rbu.html#sqldiff">rbu.html#sqldiff</a></li><li>sqldiff.exe - <a href="sqldiff.html">sqldiff.html</a></li><li>SQLite amalgamation source file - <a href="amalgamation.html">amalgamation.html</a></li><li>SQLite Archive - <a href="sqlar.html">sqlar.html</a></li><li>SQLite Archive files - <a href="sqlar.html">sqlar.html</a></li><li>SQLite Archive format - <a href="sqlar.html">sqlar.html</a></li><li>SQLite Archive smaller than ZIP - <a href="affcase1.html#smaller">affcase1.html#smaller</a></li><li>SQLite Consortium - <a href="consortium.html">consortium.html</a></li><li>SQLite database file format - <a href="fileformat2.html">fileformat2.html</a></li><li>SQLite extension - <a href="loadext.html">loadext.html</a></li><li>SQLite extensions - <a href="loadext.html">loadext.html</a></li><li>SQLite Keywords - <a href="lang_keywords.html">lang_keywords.html</a></li><li>SQLite query planner - <a href="optoverview.html">optoverview.html</a></li><li>SQLite Shared-Cache Mode - <a href="sharedcache.html">sharedcache.html</a></li><li>SQLite source code repositories - <a href="download.html#srctree">download.html#srctree</a></li><li>sqlite3 - <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a></li><li>sqlite3.exe - <a href="cli.html">cli.html</a></li><li>sqlite3.exe command-line shell - <a href="cli.html">cli.html</a></li><li>sqlite3_aggregate_context - <a href="c3ref/aggregate_context.html">c3ref/aggregate_context.html</a></li><li>sqlite3_aggregate_count - <a href="c3ref/aggregate_count.html">c3ref/aggregate_count.html</a></li><li>sqlite3_analyzer - <a href="sqlanalyze.html">sqlanalyze.html</a></li><li>sqlite3_analyzer.exe - <a href="sqlanalyze.html">sqlanalyze.html</a></li><li>sqlite3_api_routines - <a href="c3ref/api_routines.html">c3ref/api_routines.html</a></li><li>sqlite3_auto_extension - <a href="c3ref/auto_extension.html">c3ref/auto_extension.html</a></li><li>sqlite3_autovacuum_pages - <a href="c3ref/autovacuum_pages.html">c3ref/autovacuum_pages.html</a></li><li>sqlite3_backup - <a href="c3ref/backup.html">c3ref/backup.html</a></li><li>sqlite3_backup_finish - <a href="c3ref/backup_finish.html#sqlite3backupfinish">c3ref/backup_finish.html#sqlite3backupfinish</a></li><li>sqlite3_backup_init - <a href="c3ref/backup_finish.html#sqlite3backupinit">c3ref/backup_finish.html#sqlite3backupinit</a></li><li>sqlite3_backup_pagecount - <a href="c3ref/backup_finish.html#sqlite3backuppagecount">c3ref/backup_finish.html#sqlite3backuppagecount</a></li><li>sqlite3_backup_remaining - <a href="c3ref/backup_finish.html#sqlite3backupremaining">c3ref/backup_finish.html#sqlite3backupremaining</a></li><li>sqlite3_backup_step - <a href="c3ref/backup_finish.html#sqlite3backupstep">c3ref/backup_finish.html#sqlite3backupstep</a></li><li>sqlite3_bind_blob - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_blob64 - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_double - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_int - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_int64 - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_null - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_parameter_count - <a href="c3ref/bind_parameter_count.html">c3ref/bind_parameter_count.html</a></li><li>sqlite3_bind_parameter_index - <a href="c3ref/bind_parameter_index.html">c3ref/bind_parameter_index.html</a></li><li>sqlite3_bind_parameter_name - <a href="c3ref/bind_parameter_name.html">c3ref/bind_parameter_name.html</a></li><li>sqlite3_bind_pointer - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_text - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_text16 - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_text64 - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_value - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_zeroblob - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_bind_zeroblob64 - <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a></li><li>sqlite3_blob - <a href="c3ref/blob.html">c3ref/blob.html</a></li><li>sqlite3_blob_bytes - <a href="c3ref/blob_bytes.html">c3ref/blob_bytes.html</a></li><li>sqlite3_blob_close - <a href="c3ref/blob_close.html">c3ref/blob_close.html</a></li><li>sqlite3_blob_open - <a href="c3ref/blob_open.html">c3ref/blob_open.html</a></li><li>sqlite3_blob_read - <a href="c3ref/blob_read.html">c3ref/blob_read.html</a></li><li>sqlite3_blob_reopen - <a href="c3ref/blob_reopen.html">c3ref/blob_reopen.html</a></li><li>sqlite3_blob_write - <a href="c3ref/blob_write.html">c3ref/blob_write.html</a></li><li>sqlite3_busy_handler - <a href="c3ref/busy_handler.html">c3ref/busy_handler.html</a></li><li>sqlite3_busy_timeout - <a href="c3ref/busy_timeout.html">c3ref/busy_timeout.html</a></li><li>sqlite3_cancel_auto_extension - <a href="c3ref/cancel_auto_extension.html">c3ref/cancel_auto_extension.html</a></li><li>sqlite3_carray_bind - <a href="carray.html#onearg">carray.html#onearg</a></li><li>sqlite3_changegroup - <a href="session/changegroup.html">session/changegroup.html</a></li><li>sqlite3_changes - <a href="c3ref/changes.html">c3ref/changes.html</a></li><li>sqlite3_changes64 - <a href="c3ref/changes.html">c3ref/changes.html</a></li><li>sqlite3_changeset_iter - <a href="session/changeset_iter.html">session/changeset_iter.html</a></li><li>sqlite3_clear_bindings - <a href="c3ref/clear_bindings.html">c3ref/clear_bindings.html</a></li><li>sqlite3_close - <a href="c3ref/close.html">c3ref/close.html</a></li><li>sqlite3_close_v2 - <a href="c3ref/close.html">c3ref/close.html</a></li><li>sqlite3_collation_needed - <a href="c3ref/collation_needed.html">c3ref/collation_needed.html</a></li><li>sqlite3_collation_needed16 - <a href="c3ref/collation_needed.html">c3ref/collation_needed.html</a></li><li>sqlite3_column_blob - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_bytes - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_bytes16 - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_count - <a href="c3ref/column_count.html">c3ref/column_count.html</a></li><li>sqlite3_column_database_name - <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a></li><li>sqlite3_column_database_name16 - <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a></li><li>sqlite3_column_decltype - <a href="c3ref/column_decltype.html">c3ref/column_decltype.html</a></li><li>sqlite3_column_decltype16 - <a href="c3ref/column_decltype.html">c3ref/column_decltype.html</a></li><li>sqlite3_column_double - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_int - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_int64 - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_name - <a href="c3ref/column_name.html">c3ref/column_name.html</a></li><li>sqlite3_column_name16 - <a href="c3ref/column_name.html">c3ref/column_name.html</a></li><li>sqlite3_column_origin_name - <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a></li><li>sqlite3_column_origin_name16 - <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a></li><li>sqlite3_column_table_name - <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a></li><li>sqlite3_column_table_name16 - <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a></li><li>sqlite3_column_text - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_text16 - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_type - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_column_value - <a href="c3ref/column_blob.html">c3ref/column_blob.html</a></li><li>sqlite3_commit_hook - <a href="c3ref/commit_hook.html">c3ref/commit_hook.html</a></li><li>sqlite3_compileoption_get - <a href="c3ref/compileoption_get.html">c3ref/compileoption_get.html</a></li><li>sqlite3_compileoption_used - <a href="c3ref/compileoption_get.html">c3ref/compileoption_get.html</a></li><li>sqlite3_complete - <a href="c3ref/complete.html">c3ref/complete.html</a></li><li>sqlite3_complete16 - <a href="c3ref/complete.html">c3ref/complete.html</a></li><li>sqlite3_config - <a href="c3ref/config.html">c3ref/config.html</a></li><li>sqlite3_context - <a href="c3ref/context.html">c3ref/context.html</a></li><li>sqlite3_context_db_handle - <a href="c3ref/context_db_handle.html">c3ref/context_db_handle.html</a></li><li>sqlite3_create_collation - <a href="c3ref/create_collation.html">c3ref/create_collation.html</a></li><li>sqlite3_create_collation16 - <a href="c3ref/create_collation.html">c3ref/create_collation.html</a></li><li>sqlite3_create_collation_v2 - <a href="c3ref/create_collation.html">c3ref/create_collation.html</a></li><li>sqlite3_create_filename - <a href="c3ref/create_filename.html">c3ref/create_filename.html</a></li><li>sqlite3_create_function - <a href="c3ref/create_function.html">c3ref/create_function.html</a></li><li>sqlite3_create_function16 - <a href="c3ref/create_function.html">c3ref/create_function.html</a></li><li>sqlite3_create_function_v2 - <a href="c3ref/create_function.html">c3ref/create_function.html</a></li><li>sqlite3_create_module - <a href="c3ref/create_module.html">c3ref/create_module.html</a></li><li>sqlite3_create_module_v2 - <a href="c3ref/create_module.html">c3ref/create_module.html</a></li><li>sqlite3_create_window_function - <a href="c3ref/create_function.html">c3ref/create_function.html</a></li><li>sqlite3_data_count - <a href="c3ref/data_count.html">c3ref/data_count.html</a></li><li>sqlite3_data_directory - <a href="c3ref/data_directory.html">c3ref/data_directory.html</a></li><li>sqlite3_database_file_object - <a href="c3ref/database_file_object.html">c3ref/database_file_object.html</a></li><li>sqlite3_db_cacheflush - <a href="c3ref/db_cacheflush.html">c3ref/db_cacheflush.html</a></li><li>sqlite3_db_config - <a href="c3ref/db_config.html">c3ref/db_config.html</a></li><li>sqlite3_db_filename - <a href="c3ref/db_filename.html">c3ref/db_filename.html</a></li><li>sqlite3_db_handle - <a href="c3ref/db_handle.html">c3ref/db_handle.html</a></li><li>sqlite3_db_mutex - <a href="c3ref/db_mutex.html">c3ref/db_mutex.html</a></li><li>sqlite3_db_name - <a href="c3ref/db_name.html">c3ref/db_name.html</a></li><li>sqlite3_db_readonly - <a href="c3ref/db_readonly.html">c3ref/db_readonly.html</a></li><li>sqlite3_db_release_memory - <a href="c3ref/db_release_memory.html">c3ref/db_release_memory.html</a></li><li>sqlite3_db_status - <a href="c3ref/db_status.html">c3ref/db_status.html</a></li><li>sqlite3_declare_vtab - <a href="c3ref/declare_vtab.html">c3ref/declare_vtab.html</a></li><li>sqlite3_deserialize - <a href="c3ref/deserialize.html">c3ref/deserialize.html</a></li><li>sqlite3_drop_modules - <a href="c3ref/drop_modules.html">c3ref/drop_modules.html</a></li><li>sqlite3_enable_load_extension - <a href="c3ref/enable_load_extension.html">c3ref/enable_load_extension.html</a></li><li>sqlite3_enable_shared_cache - <a href="c3ref/enable_shared_cache.html">c3ref/enable_shared_cache.html</a></li><li>sqlite3_errcode - <a href="c3ref/errcode.html">c3ref/errcode.html</a></li><li>sqlite3_errmsg - <a href="c3ref/errcode.html">c3ref/errcode.html</a></li><li>sqlite3_errmsg16 - <a href="c3ref/errcode.html">c3ref/errcode.html</a></li><li>sqlite3_error_offset - <a href="c3ref/errcode.html">c3ref/errcode.html</a></li><li>sqlite3_errstr - <a href="c3ref/errcode.html">c3ref/errcode.html</a></li><li>sqlite3_exec - <a href="c3ref/exec.html">c3ref/exec.html</a></li><li>sqlite3_expanded_sql - <a href="c3ref/expanded_sql.html">c3ref/expanded_sql.html</a></li><li>sqlite3_expired - <a href="c3ref/aggregate_count.html">c3ref/aggregate_count.html</a></li><li>sqlite3_extended_errcode - <a href="c3ref/errcode.html">c3ref/errcode.html</a></li><li>sqlite3_extended_result_codes - <a href="c3ref/extended_result_codes.html">c3ref/extended_result_codes.html</a></li><li>sqlite3_file - <a href="c3ref/file.html">c3ref/file.html</a></li><li>sqlite3_file_control - <a href="c3ref/file_control.html">c3ref/file_control.html</a></li><li>sqlite3_filename - <a href="c3ref/filename.html">c3ref/filename.html</a></li><li>sqlite3_filename_database - <a href="c3ref/filename_database.html">c3ref/filename_database.html</a></li><li>sqlite3_filename_journal - <a href="c3ref/filename_database.html">c3ref/filename_database.html</a></li><li>sqlite3_filename_wal - <a href="c3ref/filename_database.html">c3ref/filename_database.html</a></li><li>sqlite3_finalize - <a href="c3ref/finalize.html">c3ref/finalize.html</a></li><li>sqlite3_free - <a href="c3ref/free.html">c3ref/free.html</a></li><li>sqlite3_free_filename - <a href="c3ref/create_filename.html">c3ref/create_filename.html</a></li><li>sqlite3_free_table - <a href="c3ref/free_table.html">c3ref/free_table.html</a></li><li>sqlite3_get_autocommit - <a href="c3ref/get_autocommit.html">c3ref/get_autocommit.html</a></li><li>sqlite3_get_auxdata - <a href="c3ref/get_auxdata.html">c3ref/get_auxdata.html</a></li><li>sqlite3_get_clientdata - <a href="c3ref/get_clientdata.html">c3ref/get_clientdata.html</a></li><li>sqlite3_get_table - <a href="c3ref/free_table.html">c3ref/free_table.html</a></li><li>sqlite3_global_recover - <a href="c3ref/aggregate_count.html">c3ref/aggregate_count.html</a></li><li>sqlite3_hard_heap_limit64 - <a href="c3ref/hard_heap_limit64.html">c3ref/hard_heap_limit64.html</a></li><li>sqlite3_index_info - <a href="c3ref/index_info.html">c3ref/index_info.html</a></li><li>sqlite3_initialize - <a href="c3ref/initialize.html">c3ref/initialize.html</a></li><li>sqlite3_int64 - <a href="c3ref/int64.html">c3ref/int64.html</a></li><li>sqlite3_interrupt - <a href="c3ref/interrupt.html">c3ref/interrupt.html</a></li><li>sqlite3_io_methods - <a href="c3ref/io_methods.html">c3ref/io_methods.html</a></li><li>sqlite3_is_interrupted - <a href="c3ref/interrupt.html">c3ref/interrupt.html</a></li><li>sqlite3_keyword_check - <a href="c3ref/keyword_check.html">c3ref/keyword_check.html</a></li><li>sqlite3_keyword_count - <a href="c3ref/keyword_check.html">c3ref/keyword_check.html</a></li><li>sqlite3_keyword_name - <a href="c3ref/keyword_check.html">c3ref/keyword_check.html</a></li><li>sqlite3_last_insert_rowid - <a href="c3ref/last_insert_rowid.html">c3ref/last_insert_rowid.html</a></li><li>sqlite3_libversion - <a href="c3ref/libversion.html">c3ref/libversion.html</a></li><li>sqlite3_libversion_number - <a href="c3ref/libversion.html">c3ref/libversion.html</a></li><li>sqlite3_limit - <a href="c3ref/limit.html">c3ref/limit.html</a></li><li>sqlite3_load_extension - <a href="c3ref/load_extension.html">c3ref/load_extension.html</a></li><li>sqlite3_log - <a href="c3ref/log.html">c3ref/log.html</a></li><li>sqlite3_malloc - <a href="c3ref/free.html">c3ref/free.html</a></li><li>sqlite3_malloc64 - <a href="c3ref/free.html">c3ref/free.html</a></li><li>sqlite3_mem_methods - <a href="c3ref/mem_methods.html">c3ref/mem_methods.html</a></li><li>sqlite3_memory_alarm - <a href="c3ref/aggregate_count.html">c3ref/aggregate_count.html</a></li><li>sqlite3_memory_highwater - <a href="c3ref/memory_highwater.html">c3ref/memory_highwater.html</a></li><li>sqlite3_memory_used - <a href="c3ref/memory_highwater.html">c3ref/memory_highwater.html</a></li><li>sqlite3_module - <a href="c3ref/module.html">c3ref/module.html</a></li><li>sqlite3_module.xBegin - <a href="vtab.html#xBegin">vtab.html#xBegin</a></li><li>sqlite3_module.xBestIndex - <a href="vtab.html#xbestindex">vtab.html#xbestindex</a></li><li>sqlite3_module.xClose - <a href="vtab.html#xclose">vtab.html#xclose</a></li><li>sqlite3_module.xColumn - <a href="vtab.html#xcolumn">vtab.html#xcolumn</a></li><li>sqlite3_module.xCommit - <a href="vtab.html#xcommit">vtab.html#xcommit</a></li><li>sqlite3_module.xConnect - <a href="vtab.html#xconnect">vtab.html#xconnect</a></li><li>sqlite3_module.xCreate - <a href="vtab.html#xcreate">vtab.html#xcreate</a></li><li>sqlite3_module.xDisconnect - <a href="vtab.html#xdisconnect">vtab.html#xdisconnect</a></li><li>sqlite3_module.xEof - <a href="vtab.html#xeof">vtab.html#xeof</a></li><li>sqlite3_module.xFilter - <a href="vtab.html#xfilter">vtab.html#xfilter</a></li><li>sqlite3_module.xFindFunction - <a href="vtab.html#xfindfunction">vtab.html#xfindfunction</a></li><li>sqlite3_module.xIntegrity - <a href="vtab.html#xintegrity">vtab.html#xintegrity</a></li><li>sqlite3_module.xNext - <a href="vtab.html#xnext">vtab.html#xnext</a></li><li>sqlite3_module.xOpen - <a href="vtab.html#xopen">vtab.html#xopen</a></li><li>sqlite3_module.xRename - <a href="vtab.html#xrename">vtab.html#xrename</a></li><li>sqlite3_module.xRollback - <a href="vtab.html#xrollback">vtab.html#xrollback</a></li><li>sqlite3_module.xRowid - <a href="vtab.html#xrowid">vtab.html#xrowid</a></li><li>sqlite3_module.xSavepoint - <a href="vtab.html#xsavepoint">vtab.html#xsavepoint</a></li><li>sqlite3_module.xShadowName - <a href="vtab.html#xshadowname">vtab.html#xshadowname</a></li><li>sqlite3_module.xSync - <a href="vtab.html#xsync">vtab.html#xsync</a></li><li>sqlite3_module.xUpdate - <a href="vtab.html#xupdate">vtab.html#xupdate</a></li><li>sqlite3_mprintf - <a href="c3ref/mprintf.html">c3ref/mprintf.html</a></li><li>sqlite3_msize - <a href="c3ref/free.html">c3ref/free.html</a></li><li>sqlite3_mutex - <a href="c3ref/mutex.html">c3ref/mutex.html</a></li><li>sqlite3_mutex_alloc - <a href="c3ref/mutex_alloc.html">c3ref/mutex_alloc.html</a></li><li>sqlite3_mutex_enter - <a href="c3ref/mutex_alloc.html">c3ref/mutex_alloc.html</a></li><li>sqlite3_mutex_free - <a href="c3ref/mutex_alloc.html">c3ref/mutex_alloc.html</a></li><li>sqlite3_mutex_held - <a href="c3ref/mutex_held.html">c3ref/mutex_held.html</a></li><li>sqlite3_mutex_leave - <a href="c3ref/mutex_alloc.html">c3ref/mutex_alloc.html</a></li><li>sqlite3_mutex_methods - <a href="c3ref/mutex_methods.html">c3ref/mutex_methods.html</a></li><li>sqlite3_mutex_notheld - <a href="c3ref/mutex_held.html">c3ref/mutex_held.html</a></li><li>sqlite3_mutex_try - <a href="c3ref/mutex_alloc.html">c3ref/mutex_alloc.html</a></li><li>sqlite3_next_stmt - <a href="c3ref/next_stmt.html">c3ref/next_stmt.html</a></li><li>sqlite3_normalized_sql - <a href="c3ref/expanded_sql.html">c3ref/expanded_sql.html</a></li><li>sqlite3_open - <a href="c3ref/open.html">c3ref/open.html</a></li><li>sqlite3_open16 - <a href="c3ref/open.html">c3ref/open.html</a></li><li>sqlite3_open_v2 - <a href="c3ref/open.html">c3ref/open.html</a></li><li>sqlite3_os_end - <a href="c3ref/initialize.html">c3ref/initialize.html</a></li><li>sqlite3_os_init - <a href="c3ref/initialize.html">c3ref/initialize.html</a></li><li>sqlite3_overload_function - <a href="c3ref/overload_function.html">c3ref/overload_function.html</a></li><li>sqlite3_pcache - <a href="c3ref/pcache.html">c3ref/pcache.html</a></li><li>sqlite3_pcache_methods2 - <a href="c3ref/pcache_methods2.html">c3ref/pcache_methods2.html</a></li><li>sqlite3_pcache_page - <a href="c3ref/pcache_page.html">c3ref/pcache_page.html</a></li><li>sqlite3_prepare - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sqlite3_prepare16 - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sqlite3_prepare16_v2 - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sqlite3_prepare16_v3 - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sqlite3_prepare_v2 - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sqlite3_prepare_v3 - <a href="c3ref/prepare.html">c3ref/prepare.html</a></li><li>sqlite3_preupdate_blobwrite - <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a></li><li>sqlite3_preupdate_count - <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a></li><li>sqlite3_preupdate_depth - <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a></li><li>sqlite3_preupdate_hook - <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a></li><li>sqlite3_preupdate_new - <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a></li><li>sqlite3_preupdate_old - <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a></li><li>sqlite3_profile - <a href="c3ref/profile.html">c3ref/profile.html</a></li><li>sqlite3_progress_handler - <a href="c3ref/progress_handler.html">c3ref/progress_handler.html</a></li><li>sqlite3_randomness - <a href="c3ref/randomness.html">c3ref/randomness.html</a></li><li>sqlite3_realloc - <a href="c3ref/free.html">c3ref/free.html</a></li><li>sqlite3_realloc64 - <a href="c3ref/free.html">c3ref/free.html</a></li><li>sqlite3_rebaser - <a href="session/rebaser.html">session/rebaser.html</a></li><li>sqlite3_release_memory - <a href="c3ref/release_memory.html">c3ref/release_memory.html</a></li><li>sqlite3_reset - <a href="c3ref/reset.html">c3ref/reset.html</a></li><li>sqlite3_reset_auto_extension - <a href="c3ref/reset_auto_extension.html">c3ref/reset_auto_extension.html</a></li><li>sqlite3_result_blob - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_blob64 - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_double - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_error - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_error16 - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_error_code - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_error_nomem - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_error_toobig - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_int - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_int64 - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_null - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_pointer - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_subtype - <a href="c3ref/result_subtype.html">c3ref/result_subtype.html</a></li><li>sqlite3_result_text - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_text16 - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_text16be - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_text16le - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_text64 - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_value - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_zeroblob - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_result_zeroblob64 - <a href="c3ref/result_blob.html">c3ref/result_blob.html</a></li><li>sqlite3_rollback_hook - <a href="c3ref/commit_hook.html">c3ref/commit_hook.html</a></li><li>sqlite3_rtree_query_callback - <a href="rtree.html#xquery">rtree.html#xquery</a></li><li>sqlite3_serialize - <a href="c3ref/serialize.html">c3ref/serialize.html</a></li><li>sqlite3_session - <a href="session/session.html">session/session.html</a></li><li>sqlite3_set_authorizer - <a href="c3ref/set_authorizer.html">c3ref/set_authorizer.html</a></li><li>sqlite3_set_auxdata - <a href="c3ref/get_auxdata.html">c3ref/get_auxdata.html</a></li><li>sqlite3_set_clientdata - <a href="c3ref/get_clientdata.html">c3ref/get_clientdata.html</a></li><li>sqlite3_set_last_insert_rowid - <a href="c3ref/set_last_insert_rowid.html">c3ref/set_last_insert_rowid.html</a></li><li>sqlite3_shutdown - <a href="c3ref/initialize.html">c3ref/initialize.html</a></li><li>sqlite3_sleep - <a href="c3ref/sleep.html">c3ref/sleep.html</a></li><li>sqlite3_snapshot - <a href="c3ref/snapshot.html">c3ref/snapshot.html</a></li><li>sqlite3_snapshot_cmp - <a href="c3ref/snapshot_cmp.html">c3ref/snapshot_cmp.html</a></li><li>sqlite3_snapshot_free - <a href="c3ref/snapshot_free.html">c3ref/snapshot_free.html</a></li><li>sqlite3_snapshot_get - <a href="c3ref/snapshot_get.html">c3ref/snapshot_get.html</a></li><li>sqlite3_snapshot_open - <a href="c3ref/snapshot_open.html">c3ref/snapshot_open.html</a></li><li>sqlite3_snapshot_recover - <a href="c3ref/snapshot_recover.html">c3ref/snapshot_recover.html</a></li><li>sqlite3_snprintf - <a href="c3ref/mprintf.html">c3ref/mprintf.html</a></li><li>sqlite3_soft_heap_limit - <a href="c3ref/soft_heap_limit.html">c3ref/soft_heap_limit.html</a></li><li>sqlite3_soft_heap_limit64 - <a href="c3ref/hard_heap_limit64.html">c3ref/hard_heap_limit64.html</a></li><li>sqlite3_sourceid - <a href="c3ref/libversion.html">c3ref/libversion.html</a></li><li>sqlite3_sql - <a href="c3ref/expanded_sql.html">c3ref/expanded_sql.html</a></li><li>sqlite3_status - <a href="c3ref/status.html">c3ref/status.html</a></li><li>sqlite3_status64 - <a href="c3ref/status.html">c3ref/status.html</a></li><li>sqlite3_step - <a href="c3ref/step.html">c3ref/step.html</a></li><li>sqlite3_stmt - <a href="c3ref/stmt.html">c3ref/stmt.html</a></li><li>sqlite3_stmt_busy - <a href="c3ref/stmt_busy.html">c3ref/stmt_busy.html</a></li><li>sqlite3_stmt_explain - <a href="c3ref/stmt_explain.html">c3ref/stmt_explain.html</a></li><li>sqlite3_stmt_isexplain - <a href="c3ref/stmt_isexplain.html">c3ref/stmt_isexplain.html</a></li><li>sqlite3_stmt_readonly - <a href="c3ref/stmt_readonly.html">c3ref/stmt_readonly.html</a></li><li>sqlite3_stmt_scanstatus - <a href="c3ref/stmt_scanstatus.html">c3ref/stmt_scanstatus.html</a></li><li>sqlite3_stmt_scanstatus_reset - <a href="c3ref/stmt_scanstatus_reset.html">c3ref/stmt_scanstatus_reset.html</a></li><li>sqlite3_stmt_scanstatus_v2 - <a href="c3ref/stmt_scanstatus.html">c3ref/stmt_scanstatus.html</a></li><li>sqlite3_stmt_status - <a href="c3ref/stmt_status.html">c3ref/stmt_status.html</a></li><li>sqlite3_str - <a href="c3ref/str.html">c3ref/str.html</a></li><li>sqlite3_str_append - <a href="c3ref/str_append.html">c3ref/str_append.html</a></li><li>sqlite3_str_appendall - <a href="c3ref/str_append.html">c3ref/str_append.html</a></li><li>sqlite3_str_appendchar - <a href="c3ref/str_append.html">c3ref/str_append.html</a></li><li>sqlite3_str_appendf - <a href="c3ref/str_append.html">c3ref/str_append.html</a></li><li>sqlite3_str_errcode - <a href="c3ref/str_errcode.html">c3ref/str_errcode.html</a></li><li>sqlite3_str_finish - <a href="c3ref/str_finish.html">c3ref/str_finish.html</a></li><li>sqlite3_str_length - <a href="c3ref/str_errcode.html">c3ref/str_errcode.html</a></li><li>sqlite3_str_new - <a href="c3ref/str_new.html">c3ref/str_new.html</a></li><li>sqlite3_str_reset - <a href="c3ref/str_append.html">c3ref/str_append.html</a></li><li>sqlite3_str_value - <a href="c3ref/str_errcode.html">c3ref/str_errcode.html</a></li><li>sqlite3_str_vappendf - <a href="c3ref/str_append.html">c3ref/str_append.html</a></li><li>sqlite3_strglob - <a href="c3ref/strglob.html">c3ref/strglob.html</a></li><li>sqlite3_stricmp - <a href="c3ref/stricmp.html">c3ref/stricmp.html</a></li><li>sqlite3_strlike - <a href="c3ref/strlike.html">c3ref/strlike.html</a></li><li>sqlite3_strnicmp - <a href="c3ref/stricmp.html">c3ref/stricmp.html</a></li><li>sqlite3_system_errno - <a href="c3ref/system_errno.html">c3ref/system_errno.html</a></li><li>sqlite3_table_column_metadata - <a href="c3ref/table_column_metadata.html">c3ref/table_column_metadata.html</a></li><li>sqlite3_temp_directory - <a href="c3ref/temp_directory.html">c3ref/temp_directory.html</a></li><li>sqlite3_test_control - <a href="c3ref/test_control.html">c3ref/test_control.html</a></li><li>sqlite3_thread_cleanup - <a href="c3ref/aggregate_count.html">c3ref/aggregate_count.html</a></li><li>sqlite3_threadsafe - <a href="c3ref/threadsafe.html">c3ref/threadsafe.html</a></li><li>sqlite3_total_changes - <a href="c3ref/total_changes.html">c3ref/total_changes.html</a></li><li>sqlite3_total_changes64 - <a href="c3ref/total_changes.html">c3ref/total_changes.html</a></li><li>sqlite3_trace - <a href="c3ref/profile.html">c3ref/profile.html</a></li><li>sqlite3_trace_v2 - <a href="c3ref/trace_v2.html">c3ref/trace_v2.html</a></li><li>sqlite3_transfer_bindings - <a href="c3ref/aggregate_count.html">c3ref/aggregate_count.html</a></li><li>sqlite3_txn_state - <a href="c3ref/txn_state.html">c3ref/txn_state.html</a></li><li>sqlite3_uint64 - <a href="c3ref/int64.html">c3ref/int64.html</a></li><li>sqlite3_unlock_notify - <a href="c3ref/unlock_notify.html">c3ref/unlock_notify.html</a></li><li>sqlite3_update_hook - <a href="c3ref/update_hook.html">c3ref/update_hook.html</a></li><li>sqlite3_uri_boolean - <a href="c3ref/uri_boolean.html">c3ref/uri_boolean.html</a></li><li>sqlite3_uri_int64 - <a href="c3ref/uri_boolean.html">c3ref/uri_boolean.html</a></li><li>sqlite3_uri_key - <a href="c3ref/uri_boolean.html">c3ref/uri_boolean.html</a></li><li>sqlite3_uri_parameter - <a href="c3ref/uri_boolean.html">c3ref/uri_boolean.html</a></li><li>sqlite3_user_data - <a href="c3ref/user_data.html">c3ref/user_data.html</a></li><li>sqlite3_value - <a href="c3ref/value.html">c3ref/value.html</a></li><li>sqlite3_value_blob - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_bytes - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_bytes16 - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_double - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_dup - <a href="c3ref/value_dup.html">c3ref/value_dup.html</a></li><li>sqlite3_value_encoding - <a href="c3ref/value_encoding.html">c3ref/value_encoding.html</a></li><li>sqlite3_value_free - <a href="c3ref/value_dup.html">c3ref/value_dup.html</a></li><li>sqlite3_value_frombind - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_int - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_int64 - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_nochange - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_numeric_type - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_pointer - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_subtype - <a href="c3ref/value_subtype.html">c3ref/value_subtype.html</a></li><li>sqlite3_value_text - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_text16 - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_text16be - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_text16le - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_value_type - <a href="c3ref/value_blob.html">c3ref/value_blob.html</a></li><li>sqlite3_version - <a href="c3ref/libversion.html">c3ref/libversion.html</a></li><li>sqlite3_vfs - <a href="c3ref/vfs.html">c3ref/vfs.html</a></li><li>sqlite3_vfs.xAccess - <a href="c3ref/vfs.html#sqlite3vfsxaccess">c3ref/vfs.html#sqlite3vfsxaccess</a></li><li>sqlite3_vfs.xOpen - <a href="c3ref/vfs.html#sqlite3vfsxopen">c3ref/vfs.html#sqlite3vfsxopen</a></li><li>sqlite3_vfs_find - <a href="c3ref/vfs_find.html">c3ref/vfs_find.html</a></li><li>sqlite3_vfs_register - <a href="c3ref/vfs_find.html">c3ref/vfs_find.html</a></li><li>sqlite3_vfs_unregister - <a href="c3ref/vfs_find.html">c3ref/vfs_find.html</a></li><li>sqlite3_vmprintf - <a href="c3ref/mprintf.html">c3ref/mprintf.html</a></li><li>sqlite3_vsnprintf - <a href="c3ref/mprintf.html">c3ref/mprintf.html</a></li><li>sqlite3_vtab - <a href="c3ref/vtab.html">c3ref/vtab.html</a></li><li>sqlite3_vtab_collation - <a href="c3ref/vtab_collation.html">c3ref/vtab_collation.html</a></li><li>sqlite3_vtab_config - <a href="c3ref/vtab_config.html">c3ref/vtab_config.html</a></li><li>sqlite3_vtab_cursor - <a href="c3ref/vtab_cursor.html">c3ref/vtab_cursor.html</a></li><li>sqlite3_vtab_distinct - <a href="c3ref/vtab_distinct.html">c3ref/vtab_distinct.html</a></li><li>sqlite3_vtab_in - <a href="c3ref/vtab_in.html">c3ref/vtab_in.html</a></li><li>sqlite3_vtab_in_first - <a href="c3ref/vtab_in_first.html">c3ref/vtab_in_first.html</a></li><li>sqlite3_vtab_in_next - <a href="c3ref/vtab_in_first.html">c3ref/vtab_in_first.html</a></li><li>sqlite3_vtab_nochange - <a href="c3ref/vtab_nochange.html">c3ref/vtab_nochange.html</a></li><li>sqlite3_vtab_on_conflict - <a href="c3ref/vtab_on_conflict.html">c3ref/vtab_on_conflict.html</a></li><li>sqlite3_vtab_rhs_value - <a href="c3ref/vtab_rhs_value.html">c3ref/vtab_rhs_value.html</a></li><li>sqlite3_wal_autocheckpoint - <a href="c3ref/wal_autocheckpoint.html">c3ref/wal_autocheckpoint.html</a></li><li>sqlite3_wal_checkpoint - <a href="c3ref/wal_checkpoint.html">c3ref/wal_checkpoint.html</a></li><li>sqlite3_wal_checkpoint_v2 - <a href="c3ref/wal_checkpoint_v2.html">c3ref/wal_checkpoint_v2.html</a></li><li>sqlite3_wal_hook - <a href="c3ref/wal_hook.html">c3ref/wal_hook.html</a></li><li>sqlite3_win32_set_directory - <a href="c3ref/win32_set_directory.html">c3ref/win32_set_directory.html</a></li><li>sqlite3_win32_set_directory8 - <a href="c3ref/win32_set_directory.html">c3ref/win32_set_directory.html</a></li><li>sqlite3_win32_set_directory16 - <a href="c3ref/win32_set_directory.html">c3ref/win32_set_directory.html</a></li><li>sqlite3changegroup_add - <a href="session/sqlite3changegroup_add.html">session/sqlite3changegroup_add.html</a></li><li>sqlite3changegroup_add_change - <a href="session/sqlite3changegroup_add_change.html">session/sqlite3changegroup_add_change.html</a></li><li>sqlite3changegroup_add_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changegroup_delete - <a href="session/sqlite3changegroup_delete.html">session/sqlite3changegroup_delete.html</a></li><li>sqlite3changegroup_new - <a href="session/sqlite3changegroup_new.html">session/sqlite3changegroup_new.html</a></li><li>sqlite3changegroup_output - <a href="session/sqlite3changegroup_output.html">session/sqlite3changegroup_output.html</a></li><li>sqlite3changegroup_output_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changegroup_schema - <a href="session/sqlite3changegroup_schema.html">session/sqlite3changegroup_schema.html</a></li><li>sqlite3changeset_apply - <a href="session/sqlite3changeset_apply.html">session/sqlite3changeset_apply.html</a></li><li>sqlite3changeset_apply_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changeset_apply_v2 - <a href="session/sqlite3changeset_apply.html">session/sqlite3changeset_apply.html</a></li><li>sqlite3changeset_apply_v2_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changeset_concat - <a href="session/sqlite3changeset_concat.html">session/sqlite3changeset_concat.html</a></li><li>sqlite3changeset_concat_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changeset_conflict - <a href="session/sqlite3changeset_conflict.html">session/sqlite3changeset_conflict.html</a></li><li>sqlite3changeset_finalize - <a href="session/sqlite3changeset_finalize.html">session/sqlite3changeset_finalize.html</a></li><li>sqlite3changeset_fk_conflicts - <a href="session/sqlite3changeset_fk_conflicts.html">session/sqlite3changeset_fk_conflicts.html</a></li><li>sqlite3changeset_invert - <a href="session/sqlite3changeset_invert.html">session/sqlite3changeset_invert.html</a></li><li>sqlite3changeset_invert_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changeset_new - <a href="session/sqlite3changeset_new.html">session/sqlite3changeset_new.html</a></li><li>sqlite3changeset_next - <a href="session/sqlite3changeset_next.html">session/sqlite3changeset_next.html</a></li><li>sqlite3changeset_old - <a href="session/sqlite3changeset_old.html">session/sqlite3changeset_old.html</a></li><li>sqlite3changeset_op - <a href="session/sqlite3changeset_op.html">session/sqlite3changeset_op.html</a></li><li>sqlite3changeset_pk - <a href="session/sqlite3changeset_pk.html">session/sqlite3changeset_pk.html</a></li><li>sqlite3changeset_start - <a href="session/sqlite3changeset_start.html">session/sqlite3changeset_start.html</a></li><li>sqlite3changeset_start_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changeset_start_v2 - <a href="session/sqlite3changeset_start.html">session/sqlite3changeset_start.html</a></li><li>sqlite3changeset_start_v2_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3changeset_upgrade - <a href="session/sqlite3changeset_upgrade.html">session/sqlite3changeset_upgrade.html</a></li><li>sqlite3rebaser_configure - <a href="session/sqlite3rebaser_configure.html">session/sqlite3rebaser_configure.html</a></li><li>sqlite3rebaser_create - <a href="session/sqlite3rebaser_create.html">session/sqlite3rebaser_create.html</a></li><li>sqlite3rebaser_delete - <a href="session/sqlite3rebaser_delete.html">session/sqlite3rebaser_delete.html</a></li><li>sqlite3rebaser_rebase - <a href="session/sqlite3rebaser_rebase.html">session/sqlite3rebaser_rebase.html</a></li><li>sqlite3rebaser_rebase_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3session_attach - <a href="session/sqlite3session_attach.html">session/sqlite3session_attach.html</a></li><li>sqlite3session_changeset - <a href="session/sqlite3session_changeset.html">session/sqlite3session_changeset.html</a></li><li>sqlite3session_changeset_size - <a href="session/sqlite3session_changeset_size.html">session/sqlite3session_changeset_size.html</a></li><li>sqlite3session_changeset_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3session_config - <a href="session/sqlite3session_config.html">session/sqlite3session_config.html</a></li><li>sqlite3session_create - <a href="session/sqlite3session_create.html">session/sqlite3session_create.html</a></li><li>sqlite3session_delete - <a href="session/sqlite3session_delete.html">session/sqlite3session_delete.html</a></li><li>sqlite3session_diff - <a href="session/sqlite3session_diff.html">session/sqlite3session_diff.html</a></li><li>sqlite3session_enable - <a href="session/sqlite3session_enable.html">session/sqlite3session_enable.html</a></li><li>sqlite3session_indirect - <a href="session/sqlite3session_indirect.html">session/sqlite3session_indirect.html</a></li><li>sqlite3session_isempty - <a href="session/sqlite3session_isempty.html">session/sqlite3session_isempty.html</a></li><li>sqlite3session_memory_used - <a href="session/sqlite3session_memory_used.html">session/sqlite3session_memory_used.html</a></li><li>sqlite3session_object_config - <a href="session/sqlite3session_object_config.html">session/sqlite3session_object_config.html</a></li><li>sqlite3session_patchset - <a href="session/sqlite3session_patchset.html">session/sqlite3session_patchset.html</a></li><li>sqlite3session_patchset_strm - <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a></li><li>sqlite3session_table_filter - <a href="session/sqlite3session_table_filter.html">session/sqlite3session_table_filter.html</a></li><li>SQLITE_4_BYTE_ALIGNED_MALLOC - <a href="compile.html#4_byte_aligned_malloc">compile.html#4_byte_aligned_malloc</a></li><li>SQLITE_ABORT - <a href="rescode.html#abort">rescode.html#abort</a></li><li>SQLITE_ABORT_ROLLBACK - <a href="rescode.html#abort_rollback">rescode.html#abort_rollback</a></li><li>SQLITE_ACCESS_EXISTS - <a href="c3ref/c_access_exists.html">c3ref/c_access_exists.html</a></li><li>SQLITE_ACCESS_READ - <a href="c3ref/c_access_exists.html">c3ref/c_access_exists.html</a></li><li>SQLITE_ACCESS_READWRITE - <a href="c3ref/c_access_exists.html">c3ref/c_access_exists.html</a></li><li>SQLITE_ALLOW_COVERING_INDEX_SCAN - <a href="compile.html#allow_covering_index_scan">compile.html#allow_covering_index_scan</a></li><li>SQLITE_ALLOW_URI_AUTHORITY - <a href="compile.html#allow_uri_authority">compile.html#allow_uri_authority</a></li><li>SQLITE_ALTER_TABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_ANALYZE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_ANY - <a href="c3ref/c_any.html">c3ref/c_any.html</a></li><li>SQLITE_API - <a href="compile.html#api">compile.html#api</a></li><li>SQLITE_APICALL - <a href="compile.html#apicall">compile.html#apicall</a></li><li>SQLITE_ATTACH - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_AUTH - <a href="rescode.html#auth">rescode.html#auth</a></li><li>SQLITE_AUTH_USER - <a href="rescode.html#auth_user">rescode.html#auth_user</a></li><li>SQLITE_BLOB - <a href="c3ref/c_blob.html">c3ref/c_blob.html</a></li><li>SQLITE_BUSY - <a href="rescode.html#busy">rescode.html#busy</a></li><li>SQLITE_BUSY_RECOVERY - <a href="rescode.html#busy_recovery">rescode.html#busy_recovery</a></li><li>SQLITE_BUSY_SNAPSHOT - <a href="rescode.html#busy_snapshot">rescode.html#busy_snapshot</a></li><li>SQLITE_BUSY_TIMEOUT - <a href="rescode.html#busy_timeout">rescode.html#busy_timeout</a></li><li>SQLITE_BYTEORDER - <a href="compile.html#byteorder">compile.html#byteorder</a></li><li>SQLITE_CALLBACK - <a href="compile.html#callback">compile.html#callback</a></li><li>SQLITE_CANTOPEN - <a href="rescode.html#cantopen">rescode.html#cantopen</a></li><li>SQLITE_CANTOPEN_CONVPATH - <a href="rescode.html#cantopen_convpath">rescode.html#cantopen_convpath</a></li><li>SQLITE_CANTOPEN_DIRTYWAL - <a href="rescode.html#cantopen_dirtywal">rescode.html#cantopen_dirtywal</a></li><li>SQLITE_CANTOPEN_FULLPATH - <a href="rescode.html#cantopen_fullpath">rescode.html#cantopen_fullpath</a></li><li>SQLITE_CANTOPEN_ISDIR - <a href="rescode.html#cantopen_isdir">rescode.html#cantopen_isdir</a></li><li>SQLITE_CANTOPEN_NOTEMPDIR - <a href="rescode.html#cantopen_notempdir">rescode.html#cantopen_notempdir</a></li><li>SQLITE_CANTOPEN_SYMLINK - <a href="rescode.html#cantopen_symlink">rescode.html#cantopen_symlink</a></li><li>SQLITE_CASE_SENSITIVE_LIKE - <a href="compile.html#case_sensitive_like">compile.html#case_sensitive_like</a></li><li>SQLITE_CDECL - <a href="compile.html#cdecl">compile.html#cdecl</a></li><li>SQLITE_CHANGESET_ABORT - <a href="session/c_changeset_abort.html">session/c_changeset_abort.html</a></li><li>SQLITE_CHANGESET_CONFLICT - <a href="session/c_changeset_conflict.html">session/c_changeset_conflict.html</a></li><li>SQLITE_CHANGESET_CONSTRAINT - <a href="session/c_changeset_conflict.html">session/c_changeset_conflict.html</a></li><li>SQLITE_CHANGESET_DATA - <a href="session/c_changeset_conflict.html">session/c_changeset_conflict.html</a></li><li>SQLITE_CHANGESET_FOREIGN_KEY - <a href="session/c_changeset_conflict.html">session/c_changeset_conflict.html</a></li><li>SQLITE_CHANGESET_NOTFOUND - <a href="session/c_changeset_conflict.html">session/c_changeset_conflict.html</a></li><li>SQLITE_CHANGESET_OMIT - <a href="session/c_changeset_abort.html">session/c_changeset_abort.html</a></li><li>SQLITE_CHANGESET_REPLACE - <a href="session/c_changeset_abort.html">session/c_changeset_abort.html</a></li><li>SQLITE_CHANGESETAPPLY_FKNOACTION - <a href="session/c_changesetapply_fknoaction.html">session/c_changesetapply_fknoaction.html</a></li><li>SQLITE_CHANGESETAPPLY_IGNORENOOP - <a href="session/c_changesetapply_fknoaction.html">session/c_changesetapply_fknoaction.html</a></li><li>SQLITE_CHANGESETAPPLY_INVERT - <a href="session/c_changesetapply_fknoaction.html">session/c_changesetapply_fknoaction.html</a></li><li>SQLITE_CHANGESETAPPLY_NOSAVEPOINT - <a href="session/c_changesetapply_fknoaction.html">session/c_changesetapply_fknoaction.html</a></li><li>SQLITE_CHANGESETSTART_INVERT - <a href="session/c_changesetstart_invert.html">session/c_changesetstart_invert.html</a></li><li>SQLITE_CHECKPOINT_FULL - <a href="c3ref/c_checkpoint_full.html">c3ref/c_checkpoint_full.html</a></li><li>SQLITE_CHECKPOINT_PASSIVE - <a href="c3ref/c_checkpoint_full.html">c3ref/c_checkpoint_full.html</a></li><li>SQLITE_CHECKPOINT_RESTART - <a href="c3ref/c_checkpoint_full.html">c3ref/c_checkpoint_full.html</a></li><li>SQLITE_CHECKPOINT_TRUNCATE - <a href="c3ref/c_checkpoint_full.html">c3ref/c_checkpoint_full.html</a></li><li>sqlite_compileoption_get - <a href="lang_corefunc.html#sqlite_compileoption_get">lang_corefunc.html#sqlite_compileoption_get</a></li><li>sqlite_compileoption_get SQL function - <a href="lang_corefunc.html#sqlite_compileoption_get">lang_corefunc.html#sqlite_compileoption_get</a></li><li>sqlite_compileoption_used - <a href="lang_corefunc.html#sqlite_compileoption_used">lang_corefunc.html#sqlite_compileoption_used</a></li><li>sqlite_compileoption_used SQL function - <a href="lang_corefunc.html#sqlite_compileoption_used">lang_corefunc.html#sqlite_compileoption_used</a></li><li>SQLITE_CONFIG_COVERING_INDEX_SCAN - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigcoveringindexscan">c3ref/c_config_covering_index_scan.html#sqliteconfigcoveringindexscan</a></li><li>SQLITE_CONFIG_GETMALLOC - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiggetmalloc">c3ref/c_config_covering_index_scan.html#sqliteconfiggetmalloc</a></li><li>SQLITE_CONFIG_GETMUTEX - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiggetmutex">c3ref/c_config_covering_index_scan.html#sqliteconfiggetmutex</a></li><li>SQLITE_CONFIG_GETPCACHE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiggetpcache">c3ref/c_config_covering_index_scan.html#sqliteconfiggetpcache</a></li><li>SQLITE_CONFIG_GETPCACHE2 - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiggetpcache2">c3ref/c_config_covering_index_scan.html#sqliteconfiggetpcache2</a></li><li>SQLITE_CONFIG_HEAP - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigheap">c3ref/c_config_covering_index_scan.html#sqliteconfigheap</a></li><li>SQLITE_CONFIG_LOG - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiglog">c3ref/c_config_covering_index_scan.html#sqliteconfiglog</a></li><li>SQLITE_CONFIG_LOOKASIDE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiglookaside">c3ref/c_config_covering_index_scan.html#sqliteconfiglookaside</a></li><li>SQLITE_CONFIG_MALLOC - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigmalloc">c3ref/c_config_covering_index_scan.html#sqliteconfigmalloc</a></li><li>SQLITE_CONFIG_MEMDB_MAXSIZE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigmemdbmaxsize">c3ref/c_config_covering_index_scan.html#sqliteconfigmemdbmaxsize</a></li><li>SQLITE_CONFIG_MEMSTATUS - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigmemstatus">c3ref/c_config_covering_index_scan.html#sqliteconfigmemstatus</a></li><li>SQLITE_CONFIG_MMAP_SIZE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigmmapsize">c3ref/c_config_covering_index_scan.html#sqliteconfigmmapsize</a></li><li>SQLITE_CONFIG_MULTITHREAD - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigmultithread">c3ref/c_config_covering_index_scan.html#sqliteconfigmultithread</a></li><li>SQLITE_CONFIG_MUTEX - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigmutex">c3ref/c_config_covering_index_scan.html#sqliteconfigmutex</a></li><li>SQLITE_CONFIG_PAGECACHE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigpagecache">c3ref/c_config_covering_index_scan.html#sqliteconfigpagecache</a></li><li>SQLITE_CONFIG_PCACHE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigpcache">c3ref/c_config_covering_index_scan.html#sqliteconfigpcache</a></li><li>SQLITE_CONFIG_PCACHE2 - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigpcache2">c3ref/c_config_covering_index_scan.html#sqliteconfigpcache2</a></li><li>SQLITE_CONFIG_PCACHE_HDRSZ - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigpcachehdrsz">c3ref/c_config_covering_index_scan.html#sqliteconfigpcachehdrsz</a></li><li>SQLITE_CONFIG_PMASZ - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigpmasz">c3ref/c_config_covering_index_scan.html#sqliteconfigpmasz</a></li><li>SQLITE_CONFIG_ROWID_IN_VIEW - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigrowidinview">c3ref/c_config_covering_index_scan.html#sqliteconfigrowidinview</a></li><li>SQLITE_CONFIG_SCRATCH - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigscratch">c3ref/c_config_covering_index_scan.html#sqliteconfigscratch</a></li><li>SQLITE_CONFIG_SERIALIZED - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigserialized">c3ref/c_config_covering_index_scan.html#sqliteconfigserialized</a></li><li>SQLITE_CONFIG_SINGLETHREAD - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigsinglethread">c3ref/c_config_covering_index_scan.html#sqliteconfigsinglethread</a></li><li>SQLITE_CONFIG_SMALL_MALLOC - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigsmallmalloc">c3ref/c_config_covering_index_scan.html#sqliteconfigsmallmalloc</a></li><li>SQLITE_CONFIG_SORTERREF_SIZE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigsorterrefsize">c3ref/c_config_covering_index_scan.html#sqliteconfigsorterrefsize</a></li><li>SQLITE_CONFIG_SQLLOG - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigsqllog">c3ref/c_config_covering_index_scan.html#sqliteconfigsqllog</a></li><li>SQLITE_CONFIG_STMTJRNL_SPILL - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigstmtjrnlspill">c3ref/c_config_covering_index_scan.html#sqliteconfigstmtjrnlspill</a></li><li>SQLITE_CONFIG_URI - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfiguri">c3ref/c_config_covering_index_scan.html#sqliteconfiguri</a></li><li>SQLITE_CONFIG_WIN32_HEAPSIZE - <a href="c3ref/c_config_covering_index_scan.html#sqliteconfigwin32heapsize">c3ref/c_config_covering_index_scan.html#sqliteconfigwin32heapsize</a></li><li>SQLITE_CONSTRAINT - <a href="rescode.html#constraint">rescode.html#constraint</a></li><li>SQLITE_CONSTRAINT_CHECK - <a href="rescode.html#constraint_check">rescode.html#constraint_check</a></li><li>SQLITE_CONSTRAINT_COMMITHOOK - <a href="rescode.html#constraint_commithook">rescode.html#constraint_commithook</a></li><li>SQLITE_CONSTRAINT_DATATYPE - <a href="rescode.html#constraint_datatype">rescode.html#constraint_datatype</a></li><li>SQLITE_CONSTRAINT_FOREIGNKEY - <a href="rescode.html#constraint_foreignkey">rescode.html#constraint_foreignkey</a></li><li>SQLITE_CONSTRAINT_FUNCTION - <a href="rescode.html#constraint_function">rescode.html#constraint_function</a></li><li>SQLITE_CONSTRAINT_NOTNULL - <a href="rescode.html#constraint_notnull">rescode.html#constraint_notnull</a></li><li>SQLITE_CONSTRAINT_PINNED - <a href="rescode.html#constraint_pinned">rescode.html#constraint_pinned</a></li><li>SQLITE_CONSTRAINT_PRIMARYKEY - <a href="rescode.html#constraint_primarykey">rescode.html#constraint_primarykey</a></li><li>SQLITE_CONSTRAINT_ROWID - <a href="rescode.html#constraint_rowid">rescode.html#constraint_rowid</a></li><li>SQLITE_CONSTRAINT_TRIGGER - <a href="rescode.html#constraint_trigger">rescode.html#constraint_trigger</a></li><li>SQLITE_CONSTRAINT_UNIQUE - <a href="rescode.html#constraint_unique">rescode.html#constraint_unique</a></li><li>SQLITE_CONSTRAINT_VTAB - <a href="rescode.html#constraint_vtab">rescode.html#constraint_vtab</a></li><li>SQLITE_COPY - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CORRUPT - <a href="rescode.html#corrupt">rescode.html#corrupt</a></li><li>SQLITE_CORRUPT_INDEX - <a href="rescode.html#corrupt_index">rescode.html#corrupt_index</a></li><li>SQLITE_CORRUPT_SEQUENCE - <a href="rescode.html#corrupt_sequence">rescode.html#corrupt_sequence</a></li><li>SQLITE_CORRUPT_VTAB - <a href="rescode.html#corrupt_vtab">rescode.html#corrupt_vtab</a></li><li>SQLITE_CREATE_INDEX - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_TABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_TEMP_INDEX - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_TEMP_TABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_TEMP_TRIGGER - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_TEMP_VIEW - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_TRIGGER - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_VIEW - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_CREATE_VTABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DBCONFIG_DEFENSIVE - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigdefensive">c3ref/c_dbconfig_defensive.html#sqlitedbconfigdefensive</a></li><li>SQLITE_DBCONFIG_DQS_DDL - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigdqsddl">c3ref/c_dbconfig_defensive.html#sqlitedbconfigdqsddl</a></li><li>SQLITE_DBCONFIG_DQS_DML - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigdqsdml">c3ref/c_dbconfig_defensive.html#sqlitedbconfigdqsdml</a></li><li>SQLITE_DBCONFIG_ENABLE_FKEY - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigenablefkey">c3ref/c_dbconfig_defensive.html#sqlitedbconfigenablefkey</a></li><li>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigenablefts3tokenizer">c3ref/c_dbconfig_defensive.html#sqlitedbconfigenablefts3tokenizer</a></li><li>SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigenableloadextension">c3ref/c_dbconfig_defensive.html#sqlitedbconfigenableloadextension</a></li><li>SQLITE_DBCONFIG_ENABLE_QPSG - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigenableqpsg">c3ref/c_dbconfig_defensive.html#sqlitedbconfigenableqpsg</a></li><li>SQLITE_DBCONFIG_ENABLE_TRIGGER - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigenabletrigger">c3ref/c_dbconfig_defensive.html#sqlitedbconfigenabletrigger</a></li><li>SQLITE_DBCONFIG_ENABLE_VIEW - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigenableview">c3ref/c_dbconfig_defensive.html#sqlitedbconfigenableview</a></li><li>SQLITE_DBCONFIG_LEGACY_ALTER_TABLE - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfiglegacyaltertable">c3ref/c_dbconfig_defensive.html#sqlitedbconfiglegacyaltertable</a></li><li>SQLITE_DBCONFIG_LEGACY_FILE_FORMAT - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfiglegacyfileformat">c3ref/c_dbconfig_defensive.html#sqlitedbconfiglegacyfileformat</a></li><li>SQLITE_DBCONFIG_LOOKASIDE - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfiglookaside">c3ref/c_dbconfig_defensive.html#sqlitedbconfiglookaside</a></li><li>SQLITE_DBCONFIG_MAINDBNAME - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigmaindbname">c3ref/c_dbconfig_defensive.html#sqlitedbconfigmaindbname</a></li><li>SQLITE_DBCONFIG_MAX - <a href="c3ref/c_dbconfig_defensive.html">c3ref/c_dbconfig_defensive.html</a></li><li>SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfignockptonclose">c3ref/c_dbconfig_defensive.html#sqlitedbconfignockptonclose</a></li><li>SQLITE_DBCONFIG_RESET_DATABASE - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigresetdatabase">c3ref/c_dbconfig_defensive.html#sqlitedbconfigresetdatabase</a></li><li>SQLITE_DBCONFIG_REVERSE_SCANORDER - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigreversescanorder">c3ref/c_dbconfig_defensive.html#sqlitedbconfigreversescanorder</a></li><li>SQLITE_DBCONFIG_STMT_SCANSTATUS - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigstmtscanstatus">c3ref/c_dbconfig_defensive.html#sqlitedbconfigstmtscanstatus</a></li><li>SQLITE_DBCONFIG_TRIGGER_EQP - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigtriggereqp">c3ref/c_dbconfig_defensive.html#sqlitedbconfigtriggereqp</a></li><li>SQLITE_DBCONFIG_TRUSTED_SCHEMA - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigtrustedschema">c3ref/c_dbconfig_defensive.html#sqlitedbconfigtrustedschema</a></li><li>SQLITE_DBCONFIG_WRITABLE_SCHEMA - <a href="c3ref/c_dbconfig_defensive.html#sqlitedbconfigwritableschema">c3ref/c_dbconfig_defensive.html#sqlitedbconfigwritableschema</a></li><li>sqlite_dbpage - <a href="dbpage.html">dbpage.html</a></li><li>SQLITE_DBPAGE virtual table - <a href="dbpage.html">dbpage.html</a></li><li>SQLITE_DBSTATUS options - <a href="c3ref/c_dbstatus_options.html">c3ref/c_dbstatus_options.html</a></li><li>SQLITE_DBSTATUS_CACHE_HIT - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuscachehit">c3ref/c_dbstatus_options.html#sqlitedbstatuscachehit</a></li><li>SQLITE_DBSTATUS_CACHE_MISS - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuscachemiss">c3ref/c_dbstatus_options.html#sqlitedbstatuscachemiss</a></li><li>SQLITE_DBSTATUS_CACHE_SPILL - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuscachespill">c3ref/c_dbstatus_options.html#sqlitedbstatuscachespill</a></li><li>SQLITE_DBSTATUS_CACHE_USED - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuscacheused">c3ref/c_dbstatus_options.html#sqlitedbstatuscacheused</a></li><li>SQLITE_DBSTATUS_CACHE_USED_SHARED - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuscacheusedshared">c3ref/c_dbstatus_options.html#sqlitedbstatuscacheusedshared</a></li><li>SQLITE_DBSTATUS_CACHE_WRITE - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuscachewrite">c3ref/c_dbstatus_options.html#sqlitedbstatuscachewrite</a></li><li>SQLITE_DBSTATUS_DEFERRED_FKS - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatusdeferredfks">c3ref/c_dbstatus_options.html#sqlitedbstatusdeferredfks</a></li><li>SQLITE_DBSTATUS_LOOKASIDE_HIT - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuslookasidehit">c3ref/c_dbstatus_options.html#sqlitedbstatuslookasidehit</a></li><li>SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuslookasidemissfull">c3ref/c_dbstatus_options.html#sqlitedbstatuslookasidemissfull</a></li><li>SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuslookasidemisssize">c3ref/c_dbstatus_options.html#sqlitedbstatuslookasidemisssize</a></li><li>SQLITE_DBSTATUS_LOOKASIDE_USED - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatuslookasideused">c3ref/c_dbstatus_options.html#sqlitedbstatuslookasideused</a></li><li>SQLITE_DBSTATUS_MAX - <a href="c3ref/c_dbstatus_options.html">c3ref/c_dbstatus_options.html</a></li><li>SQLITE_DBSTATUS_SCHEMA_USED - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatusschemaused">c3ref/c_dbstatus_options.html#sqlitedbstatusschemaused</a></li><li>SQLITE_DBSTATUS_STMT_USED - <a href="c3ref/c_dbstatus_options.html#sqlitedbstatusstmtused">c3ref/c_dbstatus_options.html#sqlitedbstatusstmtused</a></li><li>SQLITE_DEBUG - <a href="compile.html#debug">compile.html#debug</a></li><li>SQLITE_DEFAULT_AUTOMATIC_INDEX - <a href="compile.html#default_automatic_index">compile.html#default_automatic_index</a></li><li>SQLITE_DEFAULT_AUTOVACUUM - <a href="compile.html#default_autovacuum">compile.html#default_autovacuum</a></li><li>SQLITE_DEFAULT_CACHE_SIZE - <a href="compile.html#default_cache_size">compile.html#default_cache_size</a></li><li>SQLITE_DEFAULT_FILE_FORMAT - <a href="compile.html#default_file_format">compile.html#default_file_format</a></li><li>SQLITE_DEFAULT_FILE_PERMISSIONS - <a href="compile.html#default_file_permissions">compile.html#default_file_permissions</a></li><li>SQLITE_DEFAULT_FOREIGN_KEYS - <a href="compile.html#default_foreign_keys">compile.html#default_foreign_keys</a></li><li>SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT - <a href="compile.html#default_journal_size_limit">compile.html#default_journal_size_limit</a></li><li>SQLITE_DEFAULT_LOCKING_MODE - <a href="compile.html#default_locking_mode">compile.html#default_locking_mode</a></li><li>SQLITE_DEFAULT_LOOKASIDE - <a href="compile.html#default_lookaside">compile.html#default_lookaside</a></li><li>SQLITE_DEFAULT_MEMSTATUS - <a href="compile.html#default_memstatus">compile.html#default_memstatus</a></li><li>SQLITE_DEFAULT_MMAP_SIZE - <a href="compile.html#default_mmap_size">compile.html#default_mmap_size</a></li><li>SQLITE_DEFAULT_PAGE_SIZE - <a href="compile.html#default_page_size">compile.html#default_page_size</a></li><li>SQLITE_DEFAULT_PCACHE_INITSZ - <a href="compile.html#default_pcache_initsz">compile.html#default_pcache_initsz</a></li><li>SQLITE_DEFAULT_SYNCHRONOUS - <a href="compile.html#default_synchronous">compile.html#default_synchronous</a></li><li>SQLITE_DEFAULT_WAL_AUTOCHECKPOINT - <a href="compile.html#default_wal_autocheckpoint">compile.html#default_wal_autocheckpoint</a></li><li>SQLITE_DEFAULT_WAL_SYNCHRONOUS - <a href="compile.html#default_wal_synchronous">compile.html#default_wal_synchronous</a></li><li>SQLITE_DEFAULT_WORKER_THREADS - <a href="compile.html#default_worker_threads">compile.html#default_worker_threads</a></li><li>SQLITE_DELETE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DENY - <a href="c3ref/c_deny.html">c3ref/c_deny.html</a></li><li>SQLITE_DESERIALIZE_FREEONCLOSE - <a href="c3ref/c_deserialize_freeonclose.html">c3ref/c_deserialize_freeonclose.html</a></li><li>SQLITE_DESERIALIZE_READONLY - <a href="c3ref/c_deserialize_freeonclose.html">c3ref/c_deserialize_freeonclose.html</a></li><li>SQLITE_DESERIALIZE_RESIZEABLE - <a href="c3ref/c_deserialize_freeonclose.html">c3ref/c_deserialize_freeonclose.html</a></li><li>SQLITE_DETACH - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DETERMINISTIC - <a href="c3ref/c_deterministic.html#sqlitedeterministic">c3ref/c_deterministic.html#sqlitedeterministic</a></li><li>SQLITE_DIRECT_OVERFLOW_READ - <a href="compile.html#direct_overflow_read">compile.html#direct_overflow_read</a></li><li>SQLITE_DIRECTONLY - <a href="c3ref/c_deterministic.html#sqlitedirectonly">c3ref/c_deterministic.html#sqlitedirectonly</a></li><li>SQLITE_DISABLE_DIRSYNC - <a href="compile.html#disable_dirsync">compile.html#disable_dirsync</a></li><li>SQLITE_DISABLE_FTS3_UNICODE - <a href="compile.html#disable_fts3_unicode">compile.html#disable_fts3_unicode</a></li><li>SQLITE_DISABLE_FTS4_DEFERRED - <a href="compile.html#disable_fts4_deferred">compile.html#disable_fts4_deferred</a></li><li>SQLITE_DISABLE_INTRINSIC - <a href="compile.html#disable_intrinsic">compile.html#disable_intrinsic</a></li><li>SQLITE_DISABLE_LFS - <a href="compile.html#disable_lfs">compile.html#disable_lfs</a></li><li>SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS - <a href="compile.html#disable_pagecache_overflow_stats">compile.html#disable_pagecache_overflow_stats</a></li><li>SQLITE_DONE - <a href="rescode.html#done">rescode.html#done</a></li><li>SQLITE_DQS - <a href="compile.html#dqs">compile.html#dqs</a></li><li>SQLITE_DROP_INDEX - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_TABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_TEMP_INDEX - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_TEMP_TABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_TEMP_TRIGGER - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_TEMP_VIEW - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_TRIGGER - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_VIEW - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_DROP_VTABLE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_EMPTY - <a href="rescode.html#empty">rescode.html#empty</a></li><li>SQLITE_ENABLE_8_3_NAMES - <a href="compile.html#enable_8_3_names">compile.html#enable_8_3_names</a></li><li>SQLITE_ENABLE_API_ARMOR - <a href="compile.html#enable_api_armor">compile.html#enable_api_armor</a></li><li>SQLITE_ENABLE_ATOMIC_WRITE - <a href="compile.html#enable_atomic_write">compile.html#enable_atomic_write</a></li><li>SQLITE_ENABLE_BATCH_ATOMIC_WRITE - <a href="compile.html#enable_batch_atomic_write">compile.html#enable_batch_atomic_write</a></li><li>SQLITE_ENABLE_BYTECODE_VTAB - <a href="compile.html#enable_bytecode_vtab">compile.html#enable_bytecode_vtab</a></li><li>SQLITE_ENABLE_COLUMN_METADATA - <a href="compile.html#enable_column_metadata">compile.html#enable_column_metadata</a></li><li>SQLITE_ENABLE_DBPAGE_VTAB - <a href="compile.html#enable_dbpage_vtab">compile.html#enable_dbpage_vtab</a></li><li>SQLITE_ENABLE_DBSTAT_VTAB - <a href="compile.html#enable_dbstat_vtab">compile.html#enable_dbstat_vtab</a></li><li>SQLITE_ENABLE_DESERIALIZE - <a href="compile.html#enable_deserialize">compile.html#enable_deserialize</a></li><li>SQLITE_ENABLE_EXPLAIN_COMMENTS - <a href="compile.html#enable_explain_comments">compile.html#enable_explain_comments</a></li><li>SQLITE_ENABLE_FTS3 - <a href="compile.html#enable_fts3">compile.html#enable_fts3</a></li><li>SQLITE_ENABLE_FTS3_PARENTHESIS - <a href="compile.html#enable_fts3_parenthesis">compile.html#enable_fts3_parenthesis</a></li><li>SQLITE_ENABLE_FTS3_TOKENIZER - <a href="compile.html#enable_fts3_tokenizer">compile.html#enable_fts3_tokenizer</a></li><li>SQLITE_ENABLE_FTS4 - <a href="compile.html#enable_fts4">compile.html#enable_fts4</a></li><li>SQLITE_ENABLE_FTS5 - <a href="compile.html#enable_fts5">compile.html#enable_fts5</a></li><li>SQLITE_ENABLE_GEOPOLY - <a href="compile.html#enable_geopoly">compile.html#enable_geopoly</a></li><li>SQLITE_ENABLE_HIDDEN_COLUMNS - <a href="compile.html#enable_hidden_columns">compile.html#enable_hidden_columns</a></li><li>SQLITE_ENABLE_ICU - <a href="compile.html#enable_icu">compile.html#enable_icu</a></li><li>SQLITE_ENABLE_IOTRACE - <a href="compile.html#enable_iotrace">compile.html#enable_iotrace</a></li><li>SQLITE_ENABLE_JSON1 - <a href="compile.html#enable_json1">compile.html#enable_json1</a></li><li>SQLITE_ENABLE_LOCKING_STYLE - <a href="compile.html#enable_locking_style">compile.html#enable_locking_style</a></li><li>SQLITE_ENABLE_MATH_FUNCTIONS - <a href="compile.html#enable_math_functions">compile.html#enable_math_functions</a></li><li>SQLITE_ENABLE_MEMORY_MANAGEMENT - <a href="compile.html#enable_memory_management">compile.html#enable_memory_management</a></li><li>SQLITE_ENABLE_MEMSYS3 - <a href="compile.html#enable_memsys3">compile.html#enable_memsys3</a></li><li>SQLITE_ENABLE_MEMSYS5 - <a href="compile.html#enable_memsys5">compile.html#enable_memsys5</a></li><li>SQLITE_ENABLE_NORMALIZE - <a href="compile.html#enable_normalize">compile.html#enable_normalize</a></li><li>SQLITE_ENABLE_NULL_TRIM - <a href="compile.html#enable_null_trim">compile.html#enable_null_trim</a></li><li>SQLITE_ENABLE_OFFSET_SQL_FUNC - <a href="compile.html#enable_offset_sql_func">compile.html#enable_offset_sql_func</a></li><li>SQLITE_ENABLE_PREUPDATE_HOOK - <a href="compile.html#enable_preupdate_hook">compile.html#enable_preupdate_hook</a></li><li>SQLITE_ENABLE_QPSG - <a href="compile.html#enable_qpsg">compile.html#enable_qpsg</a></li><li>SQLITE_ENABLE_RBU - <a href="compile.html#enable_rbu">compile.html#enable_rbu</a></li><li>SQLITE_ENABLE_RTREE - <a href="compile.html#enable_rtree">compile.html#enable_rtree</a></li><li>SQLITE_ENABLE_SESSION - <a href="compile.html#enable_session">compile.html#enable_session</a></li><li>SQLITE_ENABLE_SNAPSHOT - <a href="compile.html#enable_snapshot">compile.html#enable_snapshot</a></li><li>SQLITE_ENABLE_SORTER_REFERENCES - <a href="compile.html#enable_sorter_references">compile.html#enable_sorter_references</a></li><li>SQLITE_ENABLE_SQLLOG - <a href="compile.html#enable_sqllog">compile.html#enable_sqllog</a></li><li>SQLITE_ENABLE_STAT2 - <a href="compile.html#enable_stat2">compile.html#enable_stat2</a></li><li>SQLITE_ENABLE_STAT3 - <a href="compile.html#enable_stat3">compile.html#enable_stat3</a></li><li>SQLITE_ENABLE_STAT4 - <a href="compile.html#enable_stat4">compile.html#enable_stat4</a></li><li>SQLITE_ENABLE_STMT_SCANSTATUS - <a href="compile.html#enable_stmt_scanstatus">compile.html#enable_stmt_scanstatus</a></li><li>SQLITE_ENABLE_STMTVTAB - <a href="compile.html#enable_stmtvtab">compile.html#enable_stmtvtab</a></li><li>SQLITE_ENABLE_TREE_EXPLAIN - <a href="compile.html#enable_tree_explain">compile.html#enable_tree_explain</a></li><li>SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION - <a href="compile.html#enable_unknown_sql_function">compile.html#enable_unknown_sql_function</a></li><li>SQLITE_ENABLE_UNLOCK_NOTIFY - <a href="compile.html#enable_unlock_notify">compile.html#enable_unlock_notify</a></li><li>SQLITE_ENABLE_UPDATE_DELETE_LIMIT - <a href="compile.html#enable_update_delete_limit">compile.html#enable_update_delete_limit</a></li><li>SQLITE_ERROR - <a href="rescode.html#error">rescode.html#error</a></li><li>SQLITE_ERROR_MISSING_COLLSEQ - <a href="rescode.html#error_missing_collseq">rescode.html#error_missing_collseq</a></li><li>SQLITE_ERROR_RETRY - <a href="rescode.html#error_retry">rescode.html#error_retry</a></li><li>SQLITE_ERROR_SNAPSHOT - <a href="rescode.html#error_snapshot">rescode.html#error_snapshot</a></li><li>SQLITE_EXTERN - <a href="compile.html#extern">compile.html#extern</a></li><li>SQLITE_EXTRA_DURABLE - <a href="compile.html#extra_durable">compile.html#extra_durable</a></li><li>SQLITE_FAIL - <a href="c3ref/c_fail.html">c3ref/c_fail.html</a></li><li>SQLITE_FCNTL_BEGIN_ATOMIC_WRITE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlbeginatomicwrite">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlbeginatomicwrite</a></li><li>SQLITE_FCNTL_BUSYHANDLER - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlbusyhandler">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlbusyhandler</a></li><li>SQLITE_FCNTL_CHUNK_SIZE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlchunksize">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlchunksize</a></li><li>SQLITE_FCNTL_CKPT_DONE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlckptdone">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlckptdone</a></li><li>SQLITE_FCNTL_CKPT_START - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlckptstart">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlckptstart</a></li><li>SQLITE_FCNTL_CKSM_FILE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlcksmfile">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlcksmfile</a></li><li>SQLITE_FCNTL_COMMIT_ATOMIC_WRITE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlcommitatomicwrite">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlcommitatomicwrite</a></li><li>SQLITE_FCNTL_COMMIT_PHASETWO - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlcommitphasetwo">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlcommitphasetwo</a></li><li>SQLITE_FCNTL_DATA_VERSION - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntldataversion">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntldataversion</a></li><li>SQLITE_FCNTL_EXTERNAL_READER - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlexternalreader">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlexternalreader</a></li><li>SQLITE_FCNTL_FILE_POINTER - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlfilepointer">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlfilepointer</a></li><li>SQLITE_FCNTL_GET_LOCKPROXYFILE - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>SQLITE_FCNTL_HAS_MOVED - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlhasmoved">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlhasmoved</a></li><li>SQLITE_FCNTL_JOURNAL_POINTER - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntljournalpointer">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntljournalpointer</a></li><li>SQLITE_FCNTL_LAST_ERRNO - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>SQLITE_FCNTL_LOCK_TIMEOUT - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntllocktimeout">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntllocktimeout</a></li><li>SQLITE_FCNTL_LOCKSTATE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntllockstate">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntllockstate</a></li><li>SQLITE_FCNTL_MMAP_SIZE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlmmapsize">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlmmapsize</a></li><li>SQLITE_FCNTL_OVERWRITE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntloverwrite">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntloverwrite</a></li><li>SQLITE_FCNTL_PDB - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>SQLITE_FCNTL_PERSIST_WAL - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpersistwal">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpersistwal</a></li><li>SQLITE_FCNTL_POWERSAFE_OVERWRITE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpowersafeoverwrite">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpowersafeoverwrite</a></li><li>SQLITE_FCNTL_PRAGMA - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpragma">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpragma</a></li><li>SQLITE_FCNTL_RBU - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlrbu">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlrbu</a></li><li>SQLITE_FCNTL_RESERVE_BYTES - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>SQLITE_FCNTL_RESET_CACHE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlresetcache">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlresetcache</a></li><li>SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlrollbackatomicwrite">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlrollbackatomicwrite</a></li><li>SQLITE_FCNTL_SET_LOCKPROXYFILE - <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a></li><li>SQLITE_FCNTL_SIZE_HINT - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsizehint">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsizehint</a></li><li>SQLITE_FCNTL_SIZE_LIMIT - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsizelimit">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsizelimit</a></li><li>SQLITE_FCNTL_SYNC - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsync">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsync</a></li><li>SQLITE_FCNTL_SYNC_OMITTED - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsyncomitted">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlsyncomitted</a></li><li>SQLITE_FCNTL_TEMPFILENAME - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntltempfilename">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntltempfilename</a></li><li>SQLITE_FCNTL_TRACE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntltrace">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntltrace</a></li><li>SQLITE_FCNTL_VFS_POINTER - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlvfspointer">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlvfspointer</a></li><li>SQLITE_FCNTL_VFSNAME - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlvfsname">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlvfsname</a></li><li>SQLITE_FCNTL_WAL_BLOCK - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwalblock">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwalblock</a></li><li>SQLITE_FCNTL_WIN32_AV_RETRY - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwin32avretry">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwin32avretry</a></li><li>SQLITE_FCNTL_WIN32_GET_HANDLE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwin32gethandle">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwin32gethandle</a></li><li>SQLITE_FCNTL_WIN32_SET_HANDLE - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwin32sethandle">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlwin32sethandle</a></li><li>SQLITE_FCNTL_ZIPVFS - <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlzipvfs">c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlzipvfs</a></li><li>SQLITE_FLOAT - <a href="c3ref/c_blob.html">c3ref/c_blob.html</a></li><li>SQLITE_FORMAT - <a href="rescode.html#format">rescode.html#format</a></li><li>SQLITE_FTS3_MAX_EXPR_DEPTH - <a href="compile.html#fts3_max_expr_depth">compile.html#fts3_max_expr_depth</a></li><li>SQLITE_FULL - <a href="rescode.html#full">rescode.html#full</a></li><li>SQLITE_FUNCTION - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_HAVE_ISNAN - <a href="compile.html#have_isnan">compile.html#have_isnan</a></li><li>SQLITE_HAVE_ZLIB - <a href="compile.html#have_zlib">compile.html#have_zlib</a></li><li>SQLITE_IGNORE - <a href="c3ref/c_deny.html">c3ref/c_deny.html</a></li><li>SQLITE_INDEX_CONSTRAINT_EQ - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_FUNCTION - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_GE - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_GLOB - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_GT - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_IS - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_ISNOT - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_ISNOTNULL - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_ISNULL - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_LE - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_LIKE - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_LIMIT - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_LT - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_MATCH - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_NE - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_OFFSET - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_CONSTRAINT_REGEXP - <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a></li><li>SQLITE_INDEX_SCAN_UNIQUE - <a href="c3ref/c_index_scan_unique.html">c3ref/c_index_scan_unique.html</a></li><li>SQLITE_INNOCUOUS - <a href="c3ref/c_deterministic.html#sqliteinnocuous">c3ref/c_deterministic.html#sqliteinnocuous</a></li><li>SQLITE_INSERT - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>sqlite_int64 - <a href="c3ref/int64.html">c3ref/int64.html</a></li><li>SQLITE_INTEGER - <a href="c3ref/c_blob.html">c3ref/c_blob.html</a></li><li>SQLITE_INTERNAL - <a href="rescode.html#internal">rescode.html#internal</a></li><li>SQLITE_INTERRUPT - <a href="rescode.html#interrupt">rescode.html#interrupt</a></li><li>SQLITE_INTROSPECTION_PRAGMAS - <a href="compile.html#introspection_pragmas">compile.html#introspection_pragmas</a></li><li>SQLITE_IOCAP_ATOMIC - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC1K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC2K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC4K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC8K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC16K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC32K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC64K - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_ATOMIC512 - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_BATCH_ATOMIC - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_IMMUTABLE - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_POWERSAFE_OVERWRITE - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_SAFE_APPEND - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_SEQUENTIAL - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN - <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a></li><li>SQLITE_IOERR - <a href="rescode.html#ioerr">rescode.html#ioerr</a></li><li>SQLITE_IOERR_ACCESS - <a href="rescode.html#ioerr_access">rescode.html#ioerr_access</a></li><li>SQLITE_IOERR_AUTH - <a href="rescode.html#ioerr_auth">rescode.html#ioerr_auth</a></li><li>SQLITE_IOERR_BEGIN_ATOMIC - <a href="rescode.html#ioerr_begin_atomic">rescode.html#ioerr_begin_atomic</a></li><li>SQLITE_IOERR_BLOCKED - <a href="rescode.html#ioerr_blocked">rescode.html#ioerr_blocked</a></li><li>SQLITE_IOERR_CHECKRESERVEDLOCK - <a href="rescode.html#ioerr_checkreservedlock">rescode.html#ioerr_checkreservedlock</a></li><li>SQLITE_IOERR_CLOSE - <a href="rescode.html#ioerr_close">rescode.html#ioerr_close</a></li><li>SQLITE_IOERR_COMMIT_ATOMIC - <a href="rescode.html#ioerr_commit_atomic">rescode.html#ioerr_commit_atomic</a></li><li>SQLITE_IOERR_CONVPATH - <a href="rescode.html#ioerr_convpath">rescode.html#ioerr_convpath</a></li><li>SQLITE_IOERR_CORRUPTFS - <a href="rescode.html#ioerr_corruptfs">rescode.html#ioerr_corruptfs</a></li><li>SQLITE_IOERR_DATA - <a href="rescode.html#ioerr_data">rescode.html#ioerr_data</a></li><li>SQLITE_IOERR_DELETE - <a href="rescode.html#ioerr_delete">rescode.html#ioerr_delete</a></li><li>SQLITE_IOERR_DELETE_NOENT - <a href="rescode.html#ioerr_delete_noent">rescode.html#ioerr_delete_noent</a></li><li>SQLITE_IOERR_DIR_CLOSE - <a href="rescode.html#ioerr_dir_close">rescode.html#ioerr_dir_close</a></li><li>SQLITE_IOERR_DIR_FSYNC - <a href="rescode.html#ioerr_dir_fsync">rescode.html#ioerr_dir_fsync</a></li><li>SQLITE_IOERR_FSTAT - <a href="rescode.html#ioerr_fstat">rescode.html#ioerr_fstat</a></li><li>SQLITE_IOERR_FSYNC - <a href="rescode.html#ioerr_fsync">rescode.html#ioerr_fsync</a></li><li>SQLITE_IOERR_GETTEMPPATH - <a href="rescode.html#ioerr_gettemppath">rescode.html#ioerr_gettemppath</a></li><li>SQLITE_IOERR_IN_PAGE - <a href="c3ref/c_abort_rollback.html">c3ref/c_abort_rollback.html</a></li><li>SQLITE_IOERR_LOCK - <a href="rescode.html#ioerr_lock">rescode.html#ioerr_lock</a></li><li>SQLITE_IOERR_MMAP - <a href="rescode.html#ioerr_mmap">rescode.html#ioerr_mmap</a></li><li>SQLITE_IOERR_NOMEM - <a href="rescode.html#ioerr_nomem">rescode.html#ioerr_nomem</a></li><li>SQLITE_IOERR_RDLOCK - <a href="rescode.html#ioerr_rdlock">rescode.html#ioerr_rdlock</a></li><li>SQLITE_IOERR_READ - <a href="rescode.html#ioerr_read">rescode.html#ioerr_read</a></li><li>SQLITE_IOERR_ROLLBACK_ATOMIC - <a href="rescode.html#ioerr_rollback_atomic">rescode.html#ioerr_rollback_atomic</a></li><li>SQLITE_IOERR_SEEK - <a href="rescode.html#ioerr_seek">rescode.html#ioerr_seek</a></li><li>SQLITE_IOERR_SHMLOCK - <a href="rescode.html#ioerr_shmlock">rescode.html#ioerr_shmlock</a></li><li>SQLITE_IOERR_SHMMAP - <a href="rescode.html#ioerr_shmmap">rescode.html#ioerr_shmmap</a></li><li>SQLITE_IOERR_SHMOPEN - <a href="rescode.html#ioerr_shmopen">rescode.html#ioerr_shmopen</a></li><li>SQLITE_IOERR_SHMSIZE - <a href="rescode.html#ioerr_shmsize">rescode.html#ioerr_shmsize</a></li><li>SQLITE_IOERR_SHORT_READ - <a href="rescode.html#ioerr_short_read">rescode.html#ioerr_short_read</a></li><li>SQLITE_IOERR_TRUNCATE - <a href="rescode.html#ioerr_truncate">rescode.html#ioerr_truncate</a></li><li>SQLITE_IOERR_UNLOCK - <a href="rescode.html#ioerr_unlock">rescode.html#ioerr_unlock</a></li><li>SQLITE_IOERR_VNODE - <a href="rescode.html#ioerr_vnode">rescode.html#ioerr_vnode</a></li><li>SQLITE_IOERR_WRITE - <a href="rescode.html#ioerr_write">rescode.html#ioerr_write</a></li><li>SQLITE_JSON_MAX_DEPTH - <a href="compile.html#json_max_depth">compile.html#json_max_depth</a></li><li>SQLITE_LIKE_DOESNT_MATCH_BLOBS - <a href="compile.html#like_doesnt_match_blobs">compile.html#like_doesnt_match_blobs</a></li><li>SQLITE_LIMIT_ATTACHED - <a href="c3ref/c_limit_attached.html#sqlitelimitattached">c3ref/c_limit_attached.html#sqlitelimitattached</a></li><li>SQLITE_LIMIT_COLUMN - <a href="c3ref/c_limit_attached.html#sqlitelimitcolumn">c3ref/c_limit_attached.html#sqlitelimitcolumn</a></li><li>SQLITE_LIMIT_COMPOUND_SELECT - <a href="c3ref/c_limit_attached.html#sqlitelimitcompoundselect">c3ref/c_limit_attached.html#sqlitelimitcompoundselect</a></li><li>SQLITE_LIMIT_EXPR_DEPTH - <a href="c3ref/c_limit_attached.html#sqlitelimitexprdepth">c3ref/c_limit_attached.html#sqlitelimitexprdepth</a></li><li>SQLITE_LIMIT_FUNCTION_ARG - <a href="c3ref/c_limit_attached.html#sqlitelimitfunctionarg">c3ref/c_limit_attached.html#sqlitelimitfunctionarg</a></li><li>SQLITE_LIMIT_LENGTH - <a href="c3ref/c_limit_attached.html#sqlitelimitlength">c3ref/c_limit_attached.html#sqlitelimitlength</a></li><li>SQLITE_LIMIT_LIKE_PATTERN_LENGTH - <a href="c3ref/c_limit_attached.html#sqlitelimitlikepatternlength">c3ref/c_limit_attached.html#sqlitelimitlikepatternlength</a></li><li>SQLITE_LIMIT_SQL_LENGTH - <a href="c3ref/c_limit_attached.html#sqlitelimitsqllength">c3ref/c_limit_attached.html#sqlitelimitsqllength</a></li><li>SQLITE_LIMIT_TRIGGER_DEPTH - <a href="c3ref/c_limit_attached.html#sqlitelimittriggerdepth">c3ref/c_limit_attached.html#sqlitelimittriggerdepth</a></li><li>SQLITE_LIMIT_VARIABLE_NUMBER - <a href="c3ref/c_limit_attached.html#sqlitelimitvariablenumber">c3ref/c_limit_attached.html#sqlitelimitvariablenumber</a></li><li>SQLITE_LIMIT_VDBE_OP - <a href="c3ref/c_limit_attached.html#sqlitelimitvdbeop">c3ref/c_limit_attached.html#sqlitelimitvdbeop</a></li><li>SQLITE_LIMIT_WORKER_THREADS - <a href="c3ref/c_limit_attached.html#sqlitelimitworkerthreads">c3ref/c_limit_attached.html#sqlitelimitworkerthreads</a></li><li>SQLITE_LOCK_EXCLUSIVE - <a href="c3ref/c_lock_exclusive.html">c3ref/c_lock_exclusive.html</a></li><li>SQLITE_LOCK_NONE - <a href="c3ref/c_lock_exclusive.html">c3ref/c_lock_exclusive.html</a></li><li>SQLITE_LOCK_PENDING - <a href="c3ref/c_lock_exclusive.html">c3ref/c_lock_exclusive.html</a></li><li>SQLITE_LOCK_RESERVED - <a href="c3ref/c_lock_exclusive.html">c3ref/c_lock_exclusive.html</a></li><li>SQLITE_LOCK_SHARED - <a href="c3ref/c_lock_exclusive.html">c3ref/c_lock_exclusive.html</a></li><li>SQLITE_LOCKED - <a href="rescode.html#locked">rescode.html#locked</a></li><li>SQLITE_LOCKED_SHAREDCACHE - <a href="rescode.html#locked_sharedcache">rescode.html#locked_sharedcache</a></li><li>SQLITE_LOCKED_VTAB - <a href="rescode.html#locked_vtab">rescode.html#locked_vtab</a></li><li>sqlite_master table - <a href="schematab.html">schematab.html</a></li><li>SQLITE_MAX_ALLOCATION_SIZE - <a href="compile.html#max_allocation_size">compile.html#max_allocation_size</a></li><li>SQLITE_MAX_ATTACHED - <a href="limits.html#max_attached">limits.html#max_attached</a></li><li>SQLITE_MAX_COLUMN - <a href="limits.html#max_column">limits.html#max_column</a></li><li>SQLITE_MAX_COMPOUND_SELECT - <a href="limits.html#max_compound_select">limits.html#max_compound_select</a></li><li>SQLITE_MAX_EXPR_DEPTH - <a href="limits.html#max_expr_depth">limits.html#max_expr_depth</a></li><li>SQLITE_MAX_FUNCTION_ARG - <a href="limits.html#max_function_arg">limits.html#max_function_arg</a></li><li>SQLITE_MAX_LENGTH - <a href="limits.html#max_length">limits.html#max_length</a></li><li>SQLITE_MAX_LIKE_PATTERN_LENGTH - <a href="limits.html#max_like_pattern_length">limits.html#max_like_pattern_length</a></li><li>SQLITE_MAX_MEMORY - <a href="compile.html#max_memory">compile.html#max_memory</a></li><li>SQLITE_MAX_MMAP_SIZE - <a href="compile.html#max_mmap_size">compile.html#max_mmap_size</a></li><li>SQLITE_MAX_PAGE_COUNT - <a href="limits.html#max_page_count">limits.html#max_page_count</a></li><li>SQLITE_MAX_SCHEMA_RETRY - <a href="compile.html#max_schema_retry">compile.html#max_schema_retry</a></li><li>SQLITE_MAX_SQL_LENGTH - <a href="limits.html#max_sql_length">limits.html#max_sql_length</a></li><li>SQLITE_MAX_TRIGGER_DEPTH - <a href="limits.html#max_trigger_depth">limits.html#max_trigger_depth</a></li><li>SQLITE_MAX_VARIABLE_NUMBER - <a href="limits.html#max_variable_number">limits.html#max_variable_number</a></li><li>SQLITE_MAX_WORKER_THREADS - <a href="compile.html#max_worker_threads">compile.html#max_worker_threads</a></li><li>SQLITE_MEMDB_DEFAULT_MAXSIZE - <a href="compile.html#memdb_default_maxsize">compile.html#memdb_default_maxsize</a></li><li>SQLITE_MEMDEBUG - <a href="compile.html#memdebug">compile.html#memdebug</a></li><li>sqlite_memstat - <a href="memstat.html">memstat.html</a></li><li>SQLITE_MEMSTAT virtual table - <a href="memstat.html">memstat.html</a></li><li>SQLITE_MINIMUM_FILE_DESCRIPTOR - <a href="compile.html#minimum_file_descriptor">compile.html#minimum_file_descriptor</a></li><li>SQLITE_MISMATCH - <a href="rescode.html#mismatch">rescode.html#mismatch</a></li><li>SQLITE_MISUSE - <a href="rescode.html#misuse">rescode.html#misuse</a></li><li>SQLITE_MUTEX_FAST - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_RECURSIVE - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_APP1 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_APP2 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_APP3 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_LRU - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_LRU2 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_MAIN - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_MEM - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_MEM2 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_OPEN - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_PMEM - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_PRNG - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_VFS1 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_VFS2 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_MUTEX_STATIC_VFS3 - <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a></li><li>SQLITE_NOLFS - <a href="rescode.html#nolfs">rescode.html#nolfs</a></li><li>SQLITE_NOMEM - <a href="rescode.html#nomem">rescode.html#nomem</a></li><li>SQLITE_NOTADB - <a href="rescode.html#notadb">rescode.html#notadb</a></li><li>SQLITE_NOTFOUND - <a href="rescode.html#notfound">rescode.html#notfound</a></li><li>SQLITE_NOTICE - <a href="rescode.html#notice">rescode.html#notice</a></li><li>SQLITE_NOTICE_RBU - <a href="c3ref/c_abort_rollback.html">c3ref/c_abort_rollback.html</a></li><li>SQLITE_NOTICE_RECOVER_ROLLBACK - <a href="rescode.html#notice_recover_rollback">rescode.html#notice_recover_rollback</a></li><li>SQLITE_NOTICE_RECOVER_WAL - <a href="rescode.html#notice_recover_wal">rescode.html#notice_recover_wal</a></li><li>SQLITE_NULL - <a href="c3ref/c_blob.html">c3ref/c_blob.html</a></li><li>sqlite_offset - <a href="lang_corefunc.html#sqlite_offset">lang_corefunc.html#sqlite_offset</a></li><li>sqlite_offset SQL function - <a href="lang_corefunc.html#sqlite_offset">lang_corefunc.html#sqlite_offset</a></li><li>SQLITE_OK - <a href="rescode.html#ok">rescode.html#ok</a></li><li>SQLITE_OK_LOAD_PERMANENTLY - <a href="rescode.html#ok_load_permanently">rescode.html#ok_load_permanently</a></li><li>SQLITE_OK_SYMLINK - <a href="c3ref/c_abort_rollback.html">c3ref/c_abort_rollback.html</a></li><li>SQLITE_OMIT_ALTERTABLE - <a href="compile.html#omit_altertable">compile.html#omit_altertable</a></li><li>SQLITE_OMIT_ANALYZE - <a href="compile.html#omit_analyze">compile.html#omit_analyze</a></li><li>SQLITE_OMIT_ATTACH - <a href="compile.html#omit_attach">compile.html#omit_attach</a></li><li>SQLITE_OMIT_AUTHORIZATION - <a href="compile.html#omit_authorization">compile.html#omit_authorization</a></li><li>SQLITE_OMIT_AUTOINCREMENT - <a href="compile.html#omit_autoincrement">compile.html#omit_autoincrement</a></li><li>SQLITE_OMIT_AUTOINIT - <a href="compile.html#omit_autoinit">compile.html#omit_autoinit</a></li><li>SQLITE_OMIT_AUTOMATIC_INDEX - <a href="compile.html#omit_automatic_index">compile.html#omit_automatic_index</a></li><li>SQLITE_OMIT_AUTORESET - <a href="compile.html#omit_autoreset">compile.html#omit_autoreset</a></li><li>SQLITE_OMIT_AUTOVACUUM - <a href="compile.html#omit_autovacuum">compile.html#omit_autovacuum</a></li><li>SQLITE_OMIT_BETWEEN_OPTIMIZATION - <a href="compile.html#omit_between_optimization">compile.html#omit_between_optimization</a></li><li>SQLITE_OMIT_BLOB_LITERAL - <a href="compile.html#omit_blob_literal">compile.html#omit_blob_literal</a></li><li>SQLITE_OMIT_BTREECOUNT - <a href="compile.html#omit_btreecount">compile.html#omit_btreecount</a></li><li>SQLITE_OMIT_BUILTIN_TEST - <a href="compile.html#omit_builtin_test">compile.html#omit_builtin_test</a></li><li>SQLITE_OMIT_CASE_SENSITIVE_LIKE_PRAGMA - <a href="compile.html#omit_case_sensitive_like_pragma">compile.html#omit_case_sensitive_like_pragma</a></li><li>SQLITE_OMIT_CAST - <a href="compile.html#omit_cast">compile.html#omit_cast</a></li><li>SQLITE_OMIT_CHECK - <a href="compile.html#omit_check">compile.html#omit_check</a></li><li>SQLITE_OMIT_COMPILEOPTION_DIAGS - <a href="compile.html#omit_compileoption_diags">compile.html#omit_compileoption_diags</a></li><li>SQLITE_OMIT_COMPLETE - <a href="compile.html#omit_complete">compile.html#omit_complete</a></li><li>SQLITE_OMIT_COMPOUND_SELECT - <a href="compile.html#omit_compound_select">compile.html#omit_compound_select</a></li><li>SQLITE_OMIT_CTE - <a href="compile.html#omit_cte">compile.html#omit_cte</a></li><li>SQLITE_OMIT_DATETIME_FUNCS - <a href="compile.html#omit_datetime_funcs">compile.html#omit_datetime_funcs</a></li><li>SQLITE_OMIT_DECLTYPE - <a href="compile.html#omit_decltype">compile.html#omit_decltype</a></li><li>SQLITE_OMIT_DEPRECATED - <a href="compile.html#omit_deprecated">compile.html#omit_deprecated</a></li><li>SQLITE_OMIT_DESERIALIZE - <a href="compile.html#omit_deserialize">compile.html#omit_deserialize</a></li><li>SQLITE_OMIT_DISKIO - <a href="compile.html#omit_diskio">compile.html#omit_diskio</a></li><li>SQLITE_OMIT_EXPLAIN - <a href="compile.html#omit_explain">compile.html#omit_explain</a></li><li>SQLITE_OMIT_FLAG_PRAGMAS - <a href="compile.html#omit_flag_pragmas">compile.html#omit_flag_pragmas</a></li><li>SQLITE_OMIT_FLOATING_POINT - <a href="compile.html#omit_floating_point">compile.html#omit_floating_point</a></li><li>SQLITE_OMIT_FOREIGN_KEY - <a href="compile.html#omit_foreign_key">compile.html#omit_foreign_key</a></li><li>SQLITE_OMIT_GENERATED_COLUMNS - <a href="compile.html#omit_generated_columns">compile.html#omit_generated_columns</a></li><li>SQLITE_OMIT_GET_TABLE - <a href="compile.html#omit_get_table">compile.html#omit_get_table</a></li><li>SQLITE_OMIT_HEX_INTEGER - <a href="compile.html#omit_hex_integer">compile.html#omit_hex_integer</a></li><li>SQLITE_OMIT_INCRBLOB - <a href="compile.html#omit_incrblob">compile.html#omit_incrblob</a></li><li>SQLITE_OMIT_INTEGRITY_CHECK - <a href="compile.html#omit_integrity_check">compile.html#omit_integrity_check</a></li><li>SQLITE_OMIT_INTROSPECTION_PRAGMAS - <a href="compile.html#omit_introspection_pragmas">compile.html#omit_introspection_pragmas</a></li><li>SQLITE_OMIT_JSON - <a href="compile.html#omit_json">compile.html#omit_json</a></li><li>SQLITE_OMIT_LIKE_OPTIMIZATION - <a href="compile.html#omit_like_optimization">compile.html#omit_like_optimization</a></li><li>SQLITE_OMIT_LOAD_EXTENSION - <a href="compile.html#omit_load_extension">compile.html#omit_load_extension</a></li><li>SQLITE_OMIT_LOCALTIME - <a href="compile.html#omit_localtime">compile.html#omit_localtime</a></li><li>SQLITE_OMIT_LOOKASIDE - <a href="compile.html#omit_lookaside">compile.html#omit_lookaside</a></li><li>SQLITE_OMIT_MEMORYDB - <a href="compile.html#omit_memorydb">compile.html#omit_memorydb</a></li><li>SQLITE_OMIT_OR_OPTIMIZATION - <a href="compile.html#omit_or_optimization">compile.html#omit_or_optimization</a></li><li>SQLITE_OMIT_PAGER_PRAGMAS - <a href="compile.html#omit_pager_pragmas">compile.html#omit_pager_pragmas</a></li><li>SQLITE_OMIT_PRAGMA - <a href="compile.html#omit_pragma">compile.html#omit_pragma</a></li><li>SQLITE_OMIT_PROGRESS_CALLBACK - <a href="compile.html#omit_progress_callback">compile.html#omit_progress_callback</a></li><li>SQLITE_OMIT_QUICKBALANCE - <a href="compile.html#omit_quickbalance">compile.html#omit_quickbalance</a></li><li>SQLITE_OMIT_REINDEX - <a href="compile.html#omit_reindex">compile.html#omit_reindex</a></li><li>SQLITE_OMIT_SCHEMA_PRAGMAS - <a href="compile.html#omit_schema_pragmas">compile.html#omit_schema_pragmas</a></li><li>SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS - <a href="compile.html#omit_schema_version_pragmas">compile.html#omit_schema_version_pragmas</a></li><li>SQLITE_OMIT_SHARED_CACHE - <a href="compile.html#omit_shared_cache">compile.html#omit_shared_cache</a></li><li>SQLITE_OMIT_SUBQUERY - <a href="compile.html#omit_subquery">compile.html#omit_subquery</a></li><li>SQLITE_OMIT_TCL_VARIABLE - <a href="compile.html#omit_tcl_variable">compile.html#omit_tcl_variable</a></li><li>SQLITE_OMIT_TEMPDB - <a href="compile.html#omit_tempdb">compile.html#omit_tempdb</a></li><li>SQLITE_OMIT_TRACE - <a href="compile.html#omit_trace">compile.html#omit_trace</a></li><li>SQLITE_OMIT_TRIGGER - <a href="compile.html#omit_trigger">compile.html#omit_trigger</a></li><li>SQLITE_OMIT_TRUNCATE_OPTIMIZATION - <a href="compile.html#omit_truncate_optimization">compile.html#omit_truncate_optimization</a></li><li>SQLITE_OMIT_UTF16 - <a href="compile.html#omit_utf16">compile.html#omit_utf16</a></li><li>SQLITE_OMIT_VACUUM - <a href="compile.html#omit_vacuum">compile.html#omit_vacuum</a></li><li>SQLITE_OMIT_VIEW - <a href="compile.html#omit_view">compile.html#omit_view</a></li><li>SQLITE_OMIT_VIRTUALTABLE - <a href="compile.html#omit_virtualtable">compile.html#omit_virtualtable</a></li><li>SQLITE_OMIT_WAL - <a href="compile.html#omit_wal">compile.html#omit_wal</a></li><li>SQLITE_OMIT_WINDOWFUNC - <a href="compile.html#omit_windowfunc">compile.html#omit_windowfunc</a></li><li>SQLITE_OMIT_WSD - <a href="compile.html#omit_wsd">compile.html#omit_wsd</a></li><li>SQLITE_OMIT_XFER_OPT - <a href="compile.html#omit_xfer_opt">compile.html#omit_xfer_opt</a></li><li>SQLITE_OPEN_AUTOPROXY - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_CREATE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_DELETEONCLOSE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_EXCLUSIVE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_EXRESCODE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_FULLMUTEX - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_MAIN_DB - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_MAIN_JOURNAL - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_MEMORY - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_NOFOLLOW - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_NOMUTEX - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_PRIVATECACHE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_READONLY - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_READWRITE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_SHAREDCACHE - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_SUBJOURNAL - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_SUPER_JOURNAL - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_TEMP_DB - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_TEMP_JOURNAL - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_TRANSIENT_DB - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_URI - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OPEN_WAL - <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a></li><li>SQLITE_OS_OTHER - <a href="compile.html#os_other">compile.html#os_other</a></li><li>SQLITE_PERM - <a href="rescode.html#perm">rescode.html#perm</a></li><li>SQLITE_POWERSAFE_OVERWRITE - <a href="compile.html#powersafe_overwrite">compile.html#powersafe_overwrite</a></li><li>SQLITE_PRAGMA - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_PREPARE_NO_VTAB - <a href="c3ref/c_prepare_normalize.html#sqlitepreparenovtab">c3ref/c_prepare_normalize.html#sqlitepreparenovtab</a></li><li>SQLITE_PREPARE_NORMALIZE - <a href="c3ref/c_prepare_normalize.html#sqlitepreparenormalize">c3ref/c_prepare_normalize.html#sqlitepreparenormalize</a></li><li>SQLITE_PREPARE_PERSISTENT - <a href="c3ref/c_prepare_normalize.html#sqlitepreparepersistent">c3ref/c_prepare_normalize.html#sqlitepreparepersistent</a></li><li>SQLITE_PRINTF_PRECISION_LIMIT - <a href="compile.html#printf_precision_limit">compile.html#printf_precision_limit</a></li><li>SQLITE_PROTOCOL - <a href="rescode.html#protocol">rescode.html#protocol</a></li><li>SQLITE_QUERY_PLANNER_LIMIT - <a href="compile.html#query_planner_limit">compile.html#query_planner_limit</a></li><li>SQLITE_QUERY_PLANNER_LIMIT_INCR - <a href="compile.html#query_planner_limit_incr">compile.html#query_planner_limit_incr</a></li><li>SQLITE_RANGE - <a href="rescode.html#range">rescode.html#range</a></li><li>SQLITE_READ - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_READONLY - <a href="rescode.html#readonly">rescode.html#readonly</a></li><li>SQLITE_READONLY_CANTINIT - <a href="rescode.html#readonly_cantinit">rescode.html#readonly_cantinit</a></li><li>SQLITE_READONLY_CANTLOCK - <a href="rescode.html#readonly_cantlock">rescode.html#readonly_cantlock</a></li><li>SQLITE_READONLY_DBMOVED - <a href="rescode.html#readonly_dbmoved">rescode.html#readonly_dbmoved</a></li><li>SQLITE_READONLY_DIRECTORY - <a href="rescode.html#readonly_directory">rescode.html#readonly_directory</a></li><li>SQLITE_READONLY_RECOVERY - <a href="rescode.html#readonly_recovery">rescode.html#readonly_recovery</a></li><li>SQLITE_READONLY_ROLLBACK - <a href="rescode.html#readonly_rollback">rescode.html#readonly_rollback</a></li><li>SQLITE_RECURSIVE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_REINDEX - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_REPLACE - <a href="c3ref/c_fail.html">c3ref/c_fail.html</a></li><li>SQLITE_RESULT_SUBTYPE - <a href="c3ref/c_deterministic.html#sqliteresultsubtype">c3ref/c_deterministic.html#sqliteresultsubtype</a></li><li>SQLITE_REVERSE_UNORDERED_SELECTS - <a href="compile.html#reverse_unordered_selects">compile.html#reverse_unordered_selects</a></li><li>SQLITE_ROLLBACK - <a href="c3ref/c_fail.html">c3ref/c_fail.html</a></li><li>SQLITE_ROW - <a href="rescode.html#row">rescode.html#row</a></li><li>SQLITE_RTREE_INT_ONLY - <a href="compile.html#rtree_int_only">compile.html#rtree_int_only</a></li><li>SQLITE_SAVEPOINT - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_SCANSTAT_COMPLEX - <a href="c3ref/c_scanstat_complex.html">c3ref/c_scanstat_complex.html</a></li><li>SQLITE_SCANSTAT_EST - <a href="c3ref/c_scanstat_est.html#sqlitescanstatest">c3ref/c_scanstat_est.html#sqlitescanstatest</a></li><li>SQLITE_SCANSTAT_EXPLAIN - <a href="c3ref/c_scanstat_est.html#sqlitescanstatexplain">c3ref/c_scanstat_est.html#sqlitescanstatexplain</a></li><li>SQLITE_SCANSTAT_NAME - <a href="c3ref/c_scanstat_est.html#sqlitescanstatname">c3ref/c_scanstat_est.html#sqlitescanstatname</a></li><li>SQLITE_SCANSTAT_NCYCLE - <a href="c3ref/c_scanstat_est.html#sqlitescanstatncycle">c3ref/c_scanstat_est.html#sqlitescanstatncycle</a></li><li>SQLITE_SCANSTAT_NLOOP - <a href="c3ref/c_scanstat_est.html#sqlitescanstatnloop">c3ref/c_scanstat_est.html#sqlitescanstatnloop</a></li><li>SQLITE_SCANSTAT_NVISIT - <a href="c3ref/c_scanstat_est.html#sqlitescanstatnvisit">c3ref/c_scanstat_est.html#sqlitescanstatnvisit</a></li><li>SQLITE_SCANSTAT_PARENTID - <a href="c3ref/c_scanstat_est.html#sqlitescanstatparentid">c3ref/c_scanstat_est.html#sqlitescanstatparentid</a></li><li>SQLITE_SCANSTAT_SELECTID - <a href="c3ref/c_scanstat_est.html#sqlitescanstatselectid">c3ref/c_scanstat_est.html#sqlitescanstatselectid</a></li><li>SQLITE_SCHEMA - <a href="rescode.html#schema">rescode.html#schema</a></li><li>sqlite_schema - <a href="schematab.html">schematab.html</a></li><li>sqlite_schema table - <a href="schematab.html">schematab.html</a></li><li>SQLITE_SECURE_DELETE - <a href="compile.html#secure_delete">compile.html#secure_delete</a></li><li>SQLITE_SELECT - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>sqlite_sequence - <a href="fileformat2.html#seqtab">fileformat2.html#seqtab</a></li><li>SQLITE_SERIALIZE_NOCOPY - <a href="c3ref/c_serialize_nocopy.html">c3ref/c_serialize_nocopy.html</a></li><li>SQLITE_SESSION_CONFIG_STRMSIZE - <a href="session/c_session_config_strmsize.html">session/c_session_config_strmsize.html</a></li><li>SQLITE_SESSION_OBJCONFIG_ROWID - <a href="session/c_session_objconfig_rowid.html">session/c_session_objconfig_rowid.html</a></li><li>SQLITE_SESSION_OBJCONFIG_SIZE - <a href="session/c_session_objconfig_rowid.html">session/c_session_objconfig_rowid.html</a></li><li>SQLITE_SHM_EXCLUSIVE - <a href="c3ref/c_shm_exclusive.html">c3ref/c_shm_exclusive.html</a></li><li>SQLITE_SHM_LOCK - <a href="c3ref/c_shm_exclusive.html">c3ref/c_shm_exclusive.html</a></li><li>SQLITE_SHM_NLOCK - <a href="c3ref/c_shm_nlock.html">c3ref/c_shm_nlock.html</a></li><li>SQLITE_SHM_SHARED - <a href="c3ref/c_shm_exclusive.html">c3ref/c_shm_exclusive.html</a></li><li>SQLITE_SHM_UNLOCK - <a href="c3ref/c_shm_exclusive.html">c3ref/c_shm_exclusive.html</a></li><li>SQLITE_SORTER_PMASZ - <a href="compile.html#sorter_pmasz">compile.html#sorter_pmasz</a></li><li>SQLITE_SOUNDEX - <a href="compile.html#soundex">compile.html#soundex</a></li><li>SQLITE_SOURCE_ID - <a href="c3ref/c_source_id.html">c3ref/c_source_id.html</a></li><li>sqlite_source_id - <a href="lang_corefunc.html#sqlite_source_id">lang_corefunc.html#sqlite_source_id</a></li><li>sqlite_source_id SQL function - <a href="lang_corefunc.html#sqlite_source_id">lang_corefunc.html#sqlite_source_id</a></li><li>SQLITE_STAT1 - <a href="fileformat2.html#stat1tab">fileformat2.html#stat1tab</a></li><li>sqlite_stat1 - <a href="fileformat2.html#stat1tab">fileformat2.html#stat1tab</a></li><li>sqlite_stat2 - <a href="fileformat2.html#stat2tab">fileformat2.html#stat2tab</a></li><li>SQLITE_STAT3 - <a href="fileformat2.html#stat3tab">fileformat2.html#stat3tab</a></li><li>sqlite_stat3 - <a href="fileformat2.html#stat3tab">fileformat2.html#stat3tab</a></li><li>SQLITE_STAT4 - <a href="fileformat2.html#stat4tab">fileformat2.html#stat4tab</a></li><li>sqlite_stat4 - <a href="fileformat2.html#stat4tab">fileformat2.html#stat4tab</a></li><li>SQLITE_STATIC - <a href="c3ref/c_static.html">c3ref/c_static.html</a></li><li>SQLITE_STATUS_MALLOC_COUNT - <a href="c3ref/c_status_malloc_count.html#sqlitestatusmalloccount">c3ref/c_status_malloc_count.html#sqlitestatusmalloccount</a></li><li>SQLITE_STATUS_MALLOC_SIZE - <a href="c3ref/c_status_malloc_count.html#sqlitestatusmallocsize">c3ref/c_status_malloc_count.html#sqlitestatusmallocsize</a></li><li>SQLITE_STATUS_MEMORY_USED - <a href="c3ref/c_status_malloc_count.html#sqlitestatusmemoryused">c3ref/c_status_malloc_count.html#sqlitestatusmemoryused</a></li><li>SQLITE_STATUS_PAGECACHE_OVERFLOW - <a href="c3ref/c_status_malloc_count.html#sqlitestatuspagecacheoverflow">c3ref/c_status_malloc_count.html#sqlitestatuspagecacheoverflow</a></li><li>SQLITE_STATUS_PAGECACHE_SIZE - <a href="c3ref/c_status_malloc_count.html#sqlitestatuspagecachesize">c3ref/c_status_malloc_count.html#sqlitestatuspagecachesize</a></li><li>SQLITE_STATUS_PAGECACHE_USED - <a href="c3ref/c_status_malloc_count.html#sqlitestatuspagecacheused">c3ref/c_status_malloc_count.html#sqlitestatuspagecacheused</a></li><li>SQLITE_STATUS_PARSER_STACK - <a href="c3ref/c_status_malloc_count.html#sqlitestatusparserstack">c3ref/c_status_malloc_count.html#sqlitestatusparserstack</a></li><li>SQLITE_STATUS_SCRATCH_OVERFLOW - <a href="c3ref/c_status_malloc_count.html#sqlitestatusscratchoverflow">c3ref/c_status_malloc_count.html#sqlitestatusscratchoverflow</a></li><li>SQLITE_STATUS_SCRATCH_SIZE - <a href="c3ref/c_status_malloc_count.html#sqlitestatusscratchsize">c3ref/c_status_malloc_count.html#sqlitestatusscratchsize</a></li><li>SQLITE_STATUS_SCRATCH_USED - <a href="c3ref/c_status_malloc_count.html#sqlitestatusscratchused">c3ref/c_status_malloc_count.html#sqlitestatusscratchused</a></li><li>SQLITE_STDCALL - <a href="compile.html#stdcall">compile.html#stdcall</a></li><li>sqlite_stmt - <a href="stmt.html">stmt.html</a></li><li>SQLITE_STMT virtual table - <a href="stmt.html">stmt.html</a></li><li>SQLITE_STMTJRNL_SPILL - <a href="compile.html#stmtjrnl_spill">compile.html#stmtjrnl_spill</a></li><li>SQLITE_STMTSTATUS counter - <a href="c3ref/c_stmtstatus_counter.html">c3ref/c_stmtstatus_counter.html</a></li><li>SQLITE_STMTSTATUS counters - <a href="c3ref/c_stmtstatus_counter.html">c3ref/c_stmtstatus_counter.html</a></li><li>SQLITE_STMTSTATUS_AUTOINDEX - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusautoindex">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusautoindex</a></li><li>SQLITE_STMTSTATUS_FILTER HIT - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusfilterhit">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusfilterhit</a></li><li>SQLITE_STMTSTATUS_FILTER_HIT - <a href="c3ref/c_stmtstatus_counter.html">c3ref/c_stmtstatus_counter.html</a></li><li>SQLITE_STMTSTATUS_FILTER_MISS - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusfiltermiss">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusfiltermiss</a></li><li>SQLITE_STMTSTATUS_FULLSCAN_STEP - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusfullscanstep">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusfullscanstep</a></li><li>SQLITE_STMTSTATUS_MEMUSED - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusmemused">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusmemused</a></li><li>SQLITE_STMTSTATUS_REPREPARE - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusreprepare">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusreprepare</a></li><li>SQLITE_STMTSTATUS_RUN - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusrun">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusrun</a></li><li>SQLITE_STMTSTATUS_SORT - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatussort">c3ref/c_stmtstatus_counter.html#sqlitestmtstatussort</a></li><li>SQLITE_STMTSTATUS_VM_STEP - <a href="c3ref/c_stmtstatus_counter.html#sqlitestmtstatusvmstep">c3ref/c_stmtstatus_counter.html#sqlitestmtstatusvmstep</a></li><li>SQLITE_STRICT_SUBTYPE - <a href="compile.html#strict_subtype">compile.html#strict_subtype</a></li><li>SQLITE_SUBTYPE - <a href="c3ref/c_deterministic.html#sqlitesubtype">c3ref/c_deterministic.html#sqlitesubtype</a></li><li>SQLITE_SYNC_DATAONLY - <a href="c3ref/c_sync_dataonly.html">c3ref/c_sync_dataonly.html</a></li><li>SQLITE_SYNC_FULL - <a href="c3ref/c_sync_dataonly.html">c3ref/c_sync_dataonly.html</a></li><li>SQLITE_SYNC_NORMAL - <a href="c3ref/c_sync_dataonly.html">c3ref/c_sync_dataonly.html</a></li><li>SQLITE_SYSAPI - <a href="compile.html#sysapi">compile.html#sysapi</a></li><li>SQLITE_TCLAPI - <a href="compile.html#tclapi">compile.html#tclapi</a></li><li>sqlite_temp_schema - <a href="schematab.html">schematab.html</a></li><li>SQLITE_TEMP_STORE - <a href="compile.html#temp_store">compile.html#temp_store</a></li><li>SQLITE_TESTCTRL_ALWAYS - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_ASSERT - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_BITVEC_TEST - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_BYTEORDER - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_EXPLAIN_STMT - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_FAULT_INSTALL - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_FIRST - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_FK_NO_ACTION - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_IMPOSTER - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_INTERNAL_FUNCTIONS - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_ISINIT - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_ISKEYWORD - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_JSON_SELFCHECK - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_LAST - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_LOCALTIME_FAULT - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_LOGEST - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_NEVER_CORRUPT - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_OPTIMIZATIONS - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_PARSER_COVERAGE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_PENDING_BYTE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_PRNG_RESET - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_PRNG_RESTORE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_PRNG_SAVE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_PRNG_SEED - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_RESERVE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_RESULT_INTREAL - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_SCRATCHMALLOC - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_SEEK_COUNT - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_SORTER_MMAP - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_TRACEFLAGS - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_TUNE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_USELONGDOUBLE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TESTCTRL_VDBE_COVERAGE - <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a></li><li>SQLITE_TEXT - <a href="c3ref/c_blob.html">c3ref/c_blob.html</a></li><li>SQLITE_THREADSAFE - <a href="compile.html#threadsafe">compile.html#threadsafe</a></li><li>SQLITE_TOOBIG - <a href="rescode.html#toobig">rescode.html#toobig</a></li><li>SQLITE_TRACE - <a href="c3ref/c_trace.html">c3ref/c_trace.html</a></li><li>SQLITE_TRACE_CLOSE - <a href="c3ref/c_trace.html#sqlitetraceclose">c3ref/c_trace.html#sqlitetraceclose</a></li><li>SQLITE_TRACE_PROFILE - <a href="c3ref/c_trace.html#sqlitetraceprofile">c3ref/c_trace.html#sqlitetraceprofile</a></li><li>SQLITE_TRACE_ROW - <a href="c3ref/c_trace.html#sqlitetracerow">c3ref/c_trace.html#sqlitetracerow</a></li><li>SQLITE_TRACE_SIZE_LIMIT - <a href="compile.html#trace_size_limit">compile.html#trace_size_limit</a></li><li>SQLITE_TRACE_STMT - <a href="c3ref/c_trace.html#sqlitetracestmt">c3ref/c_trace.html#sqlitetracestmt</a></li><li>SQLITE_TRANSACTION - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_TRANSIENT - <a href="c3ref/c_static.html">c3ref/c_static.html</a></li><li>SQLITE_TRUSTED_SCHEMA - <a href="compile.html#trusted_schema">compile.html#trusted_schema</a></li><li>SQLITE_TXN_NONE - <a href="c3ref/c_txn_none.html#sqlitetxnnone">c3ref/c_txn_none.html#sqlitetxnnone</a></li><li>SQLITE_TXN_READ - <a href="c3ref/c_txn_none.html#sqlitetxnread">c3ref/c_txn_none.html#sqlitetxnread</a></li><li>SQLITE_TXN_WRITE - <a href="c3ref/c_txn_none.html#sqlitetxnwrite">c3ref/c_txn_none.html#sqlitetxnwrite</a></li><li>sqlite_uint64 - <a href="c3ref/int64.html">c3ref/int64.html</a></li><li>SQLITE_UNTESTABLE - <a href="compile.html#untestable">compile.html#untestable</a></li><li>SQLITE_UPDATE - <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a></li><li>SQLITE_USE_ALLOCA - <a href="compile.html#use_alloca">compile.html#use_alloca</a></li><li>SQLITE_USE_FCNTL_TRACE - <a href="compile.html#use_fcntl_trace">compile.html#use_fcntl_trace</a></li><li>SQLITE_USE_SEH - <a href="compile.html#use_seh">compile.html#use_seh</a></li><li>SQLITE_USE_URI - <a href="compile.html#use_uri">compile.html#use_uri</a></li><li>SQLITE_UTF8 - <a href="c3ref/c_any.html">c3ref/c_any.html</a></li><li>SQLITE_UTF16 - <a href="c3ref/c_any.html">c3ref/c_any.html</a></li><li>SQLITE_UTF16_ALIGNED - <a href="c3ref/c_any.html">c3ref/c_any.html</a></li><li>SQLITE_UTF16BE - <a href="c3ref/c_any.html">c3ref/c_any.html</a></li><li>SQLITE_UTF16LE - <a href="c3ref/c_any.html">c3ref/c_any.html</a></li><li>SQLITE_VERSION - <a href="c3ref/c_source_id.html">c3ref/c_source_id.html</a></li><li>sqlite_version - <a href="lang_corefunc.html#sqlite_version">lang_corefunc.html#sqlite_version</a></li><li>sqlite_version SQL function - <a href="lang_corefunc.html#sqlite_version">lang_corefunc.html#sqlite_version</a></li><li>SQLITE_VERSION_NUMBER - <a href="c3ref/c_source_id.html">c3ref/c_source_id.html</a></li><li>SQLITE_VTAB_CONSTRAINT_SUPPORT - <a href="c3ref/c_vtab_constraint_support.html#sqlitevtabconstraintsupport">c3ref/c_vtab_constraint_support.html#sqlitevtabconstraintsupport</a></li><li>SQLITE_VTAB_DIRECTONLY - <a href="c3ref/c_vtab_constraint_support.html#sqlitevtabdirectonly">c3ref/c_vtab_constraint_support.html#sqlitevtabdirectonly</a></li><li>SQLITE_VTAB_INNOCUOUS - <a href="c3ref/c_vtab_constraint_support.html#sqlitevtabinnocuous">c3ref/c_vtab_constraint_support.html#sqlitevtabinnocuous</a></li><li>SQLITE_VTAB_USES_ALL_SCHEMAS - <a href="c3ref/c_vtab_constraint_support.html#sqlitevtabusesallschemas">c3ref/c_vtab_constraint_support.html#sqlitevtabusesallschemas</a></li><li>SQLITE_WARNING - <a href="rescode.html#warning">rescode.html#warning</a></li><li>SQLITE_WARNING_AUTOINDEX - <a href="rescode.html#warning_autoindex">rescode.html#warning_autoindex</a></li><li>SQLITE_WIN32_DATA_DIRECTORY_TYPE - <a href="c3ref/c_win32_data_directory_type.html">c3ref/c_win32_data_directory_type.html</a></li><li>SQLITE_WIN32_HEAP_CREATE - <a href="compile.html#win32_heap_create">compile.html#win32_heap_create</a></li><li>SQLITE_WIN32_MALLOC - <a href="compile.html#win32_malloc">compile.html#win32_malloc</a></li><li>SQLITE_WIN32_MALLOC_VALIDATE - <a href="compile.html#win32_malloc_validate">compile.html#win32_malloc_validate</a></li><li>SQLITE_WIN32_TEMP_DIRECTORY_TYPE - <a href="c3ref/c_win32_data_directory_type.html">c3ref/c_win32_data_directory_type.html</a></li><li>SQLITE_ZERO_MALLOC - <a href="compile.html#zero_malloc">compile.html#zero_malloc</a></li><li>sqrt - <a href="lang_mathfunc.html#sqrt">lang_mathfunc.html#sqrt</a></li><li>sqrt SQL function - <a href="lang_mathfunc.html#sqrt">lang_mathfunc.html#sqrt</a></li><li>stale file descriptor - <a href="howtocorrupt.html#stalefd">howtocorrupt.html#stalefd</a></li><li>standard query parameters - <a href="uri.html#coreqp">uri.html#coreqp</a></li><li>statement journal - <a href="tempfiles.html#stmtjrnl">tempfiles.html#stmtjrnl</a></li><li>Statement journals - <a href="tempfiles.html#stmtjrnl">tempfiles.html#stmtjrnl</a></li><li>statement journals - <a href="tempfiles.html#stmtjrnl">tempfiles.html#stmtjrnl</a></li><li>static ANALYZE results - <a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a></li><li>statically linked extensions - <a href="loadext.html#statext">loadext.html#statext</a></li><li>stats - <a href="pragma.html#pragma_stats">pragma.html#pragma_stats</a></li><li>stats pragma - <a href="pragma.html#pragma_stats">pragma.html#pragma_stats</a></li><li>status method - <a href="tclsqlite.html#status">tclsqlite.html#status</a></li><li>status parameters - <a href="c3ref/c_status_malloc_count.html">c3ref/c_status_malloc_count.html</a></li><li>storage class - <a href="datatype3.html#storageclasses">datatype3.html#storageclasses</a></li><li>strategies - <a href="queryplanner.html#searching">queryplanner.html#searching</a></li><li>strftime - <a href="lang_datefunc.html#strftm">lang_datefunc.html#strftm</a></li><li>strftime SQL function - <a href="lang_datefunc.html#strftm">lang_datefunc.html#strftm</a></li><li>STRICT - <a href="stricttables.html">stricttables.html</a></li><li>STRICT table - <a href="stricttables.html">stricttables.html</a></li><li>STRICT tables - <a href="stricttables.html">stricttables.html</a></li><li>strict type checking - <a href="stricttables.html">stricttables.html</a></li><li>string_agg - <a href="lang_aggfunc.html#group_concat">lang_aggfunc.html#group_concat</a></li><li>string_agg aggregate function - <a href="lang_aggfunc.html#group_concat">lang_aggfunc.html#group_concat</a></li><li>subprograms - <a href="opcode.html#subprog">opcode.html#subprog</a></li><li>Subqueries - <a href="lang_expr.html#subq">lang_expr.html#subq</a></li><li>subquery co-routines - <a href="optoverview.html#coroutines">optoverview.html#coroutines</a></li><li>subsec modifier - <a href="lang_datefunc.html#subsec">lang_datefunc.html#subsec</a></li><li>subsecond modifier - <a href="lang_datefunc.html#subsec">lang_datefunc.html#subsec</a></li><li>substr - <a href="lang_corefunc.html#substr">lang_corefunc.html#substr</a></li><li>substr SQL function - <a href="lang_corefunc.html#substr">lang_corefunc.html#substr</a></li><li>sum - <a href="lang_aggfunc.html#sumunc">lang_aggfunc.html#sumunc</a></li><li>sum aggregate function - <a href="lang_aggfunc.html#sumunc">lang_aggfunc.html#sumunc</a></li><li>sumFunc - <a href="lang_aggfunc.html#sumunc">lang_aggfunc.html#sumunc</a></li><li>super-journal - <a href="tempfiles.html#superjrnl">tempfiles.html#superjrnl</a></li><li>swarmvtab - <a href="swarmvtab.html#overview">swarmvtab.html#overview</a></li><li>swarmvtab context - <a href="swarmvtab.html#component_table_context_values">swarmvtab.html#component_table_context_values</a></li><li>synchronous - <a href="pragma.html#pragma_synchronous">pragma.html#pragma_synchronous</a></li><li>synchronous pragma - <a href="pragma.html#pragma_synchronous">pragma.html#pragma_synchronous</a></li><li>syntax diagrams - <a href="syntaxdiagrams.html">syntaxdiagrams.html</a></li><li>table b-tree - <a href="fileformat2.html#btypes">fileformat2.html#btypes</a></li><li>table data format - <a href="fileformat2.html##sqltab">fileformat2.html##sqltab</a></li><li>table-constraint - <a href="syntax/table-constraint.html">syntax/table-constraint.html</a></li><li>table-constraint syntax diagram - <a href="syntax/table-constraint.html">syntax/table-constraint.html</a></li><li>table-options - <a href="syntax/table-options.html">syntax/table-options.html</a></li><li>table-options syntax diagram - <a href="syntax/table-options.html">syntax/table-options.html</a></li><li>table-or-subquery - <a href="syntax/table-or-subquery.html">syntax/table-or-subquery.html</a></li><li>table-or-subquery syntax diagram - <a href="syntax/table-or-subquery.html">syntax/table-or-subquery.html</a></li><li>table-valued function - <a href="vtab.html#tabfunc2">vtab.html#tabfunc2</a></li><li>table-valued functions - <a href="vtab.html#tabfunc2">vtab.html#tabfunc2</a></li><li>table-valued functions in the FROM clause - <a href="lang_select.html#tabfunc1">lang_select.html#tabfunc1</a></li><li>table_info - <a href="pragma.html#pragma_table_info">pragma.html#pragma_table_info</a></li><li>table_info pragma - <a href="pragma.html#pragma_table_info">pragma.html#pragma_table_info</a></li><li>table_list - <a href="pragma.html#pragma_table_list">pragma.html#pragma_table_list</a></li><li>table_list pragma - <a href="pragma.html#pragma_table_list">pragma.html#pragma_table_list</a></li><li>table_xinfo - <a href="pragma.html#pragma_table_xinfo">pragma.html#pragma_table_xinfo</a></li><li>table_xinfo pragma - <a href="pragma.html#pragma_table_xinfo">pragma.html#pragma_table_xinfo</a></li><li>tables_used virtual table - <a href="bytecodevtab.html">bytecodevtab.html</a></li><li>tan - <a href="lang_mathfunc.html#tan">lang_mathfunc.html#tan</a></li><li>tan SQL function - <a href="lang_mathfunc.html#tan">lang_mathfunc.html#tan</a></li><li>tanh - <a href="lang_mathfunc.html#tanh">lang_mathfunc.html#tanh</a></li><li>tanh SQL function - <a href="lang_mathfunc.html#tanh">lang_mathfunc.html#tanh</a></li><li>Tcl extension - <a href="tclsqlite.html">tclsqlite.html</a></li><li>TCL Interface - <a href="tclsqlite.html">tclsqlite.html</a></li><li>TCL interface authorizer method - <a href="tclsqlite.html#authorizer">tclsqlite.html#authorizer</a></li><li>TCL interface backup method - <a href="tclsqlite.html#backup">tclsqlite.html#backup</a></li><li>TCL interface bind_fallback method - <a href="tclsqlite.html#bind_fallback">tclsqlite.html#bind_fallback</a></li><li>TCL interface busy method - <a href="tclsqlite.html#busy">tclsqlite.html#busy</a></li><li>TCL interface cache method - <a href="tclsqlite.html#cache">tclsqlite.html#cache</a></li><li>TCL interface changes method - <a href="tclsqlite.html#changes">tclsqlite.html#changes</a></li><li>TCL interface close method - <a href="tclsqlite.html#close">tclsqlite.html#close</a></li><li>TCL interface collate method - <a href="tclsqlite.html#collate">tclsqlite.html#collate</a></li><li>TCL interface collation_needed method - <a href="tclsqlite.html#collation_needed">tclsqlite.html#collation_needed</a></li><li>TCL interface commit_hook method - <a href="tclsqlite.html#commit_hook">tclsqlite.html#commit_hook</a></li><li>TCL interface complete method - <a href="tclsqlite.html#complete">tclsqlite.html#complete</a></li><li>TCL interface config method - <a href="tclsqlite.html#config">tclsqlite.html#config</a></li><li>TCL interface copy method - <a href="tclsqlite.html#copy">tclsqlite.html#copy</a></li><li>TCL interface deserialize method - <a href="tclsqlite.html#deserialize">tclsqlite.html#deserialize</a></li><li>TCL interface enable_load_extension method - <a href="tclsqlite.html#enable_load_extension">tclsqlite.html#enable_load_extension</a></li><li>TCL interface errorcode method - <a href="tclsqlite.html#errorcode">tclsqlite.html#errorcode</a></li><li>TCL interface eval method - <a href="tclsqlite.html#eval">tclsqlite.html#eval</a></li><li>TCL interface exists method - <a href="tclsqlite.html#exists">tclsqlite.html#exists</a></li><li>TCL interface function method - <a href="tclsqlite.html#function">tclsqlite.html#function</a></li><li>TCL interface incrblob method - <a href="tclsqlite.html#incrblob">tclsqlite.html#incrblob</a></li><li>TCL interface interrupt method - <a href="tclsqlite.html#interrupt">tclsqlite.html#interrupt</a></li><li>TCL interface last_insert_rowid method - <a href="tclsqlite.html#last_insert_rowid">tclsqlite.html#last_insert_rowid</a></li><li>TCL interface nullvalue method - <a href="tclsqlite.html#nullvalue">tclsqlite.html#nullvalue</a></li><li>TCL interface onecolumn method - <a href="tclsqlite.html#onecolumn">tclsqlite.html#onecolumn</a></li><li>TCL interface preupdate method - <a href="tclsqlite.html#preupdate">tclsqlite.html#preupdate</a></li><li>TCL interface profile method - <a href="tclsqlite.html#profile">tclsqlite.html#profile</a></li><li>TCL interface progress method - <a href="tclsqlite.html#progress">tclsqlite.html#progress</a></li><li>TCL interface restore method - <a href="tclsqlite.html#restore">tclsqlite.html#restore</a></li><li>TCL interface rollback_hook method - <a href="tclsqlite.html#rollback_hook">tclsqlite.html#rollback_hook</a></li><li>TCL interface serialize method - <a href="tclsqlite.html#serialize">tclsqlite.html#serialize</a></li><li>TCL interface status method - <a href="tclsqlite.html#status">tclsqlite.html#status</a></li><li>TCL interface timeout method - <a href="tclsqlite.html#timeout">tclsqlite.html#timeout</a></li><li>TCL interface total_changes method - <a href="tclsqlite.html#total_changes">tclsqlite.html#total_changes</a></li><li>TCL interface trace method - <a href="tclsqlite.html#trace">tclsqlite.html#trace</a></li><li>TCL interface trace_v2 method - <a href="tclsqlite.html#trace_v2">tclsqlite.html#trace_v2</a></li><li>TCL interface transaction method - <a href="tclsqlite.html#transaction">tclsqlite.html#transaction</a></li><li>TCL interface unlock_notify method - <a href="tclsqlite.html#unlock_notify">tclsqlite.html#unlock_notify</a></li><li>TCL interface update_hook method - <a href="tclsqlite.html#update_hook">tclsqlite.html#update_hook</a></li><li>TCL interface version method - <a href="tclsqlite.html#version">tclsqlite.html#version</a></li><li>TCL interface wal_hook method - <a href="tclsqlite.html#wal_hook">tclsqlite.html#wal_hook</a></li><li>TCL test suite - <a href="testing.html#tcl">testing.html#tcl</a></li><li>TCL variable substitution - <a href="tclsqlite.html#varsubst">tclsqlite.html#varsubst</a></li><li>TEA tarball - <a href="download.html">download.html</a></li><li>TEMP triggers on non-TEMP tables - <a href="lang_createtrigger.html#temptrig">lang_createtrigger.html#temptrig</a></li><li>temp_store - <a href="pragma.html#pragma_temp_store">pragma.html#pragma_temp_store</a></li><li>temp_store pragma - <a href="pragma.html#pragma_temp_store">pragma.html#pragma_temp_store</a></li><li>temp_store_directory - <a href="pragma.html#pragma_temp_store_directory">pragma.html#pragma_temp_store_directory</a></li><li>temp_store_directory pragma - <a href="pragma.html#pragma_temp_store_directory">pragma.html#pragma_temp_store_directory</a></li><li>temporary databases - <a href="inmemorydb.html#temp_db">inmemorydb.html#temp_db</a></li><li>temporary directory search algorithm - <a href="tempfiles.html#tempdir">tempfiles.html#tempdir</a></li><li>temporary disk files - <a href="tempfiles.html">tempfiles.html</a></li><li>temporary tables - <a href="inmemorydb.html#temp_db">inmemorydb.html#temp_db</a></li><li>tempstore - <a href="tempfiles.html#tempstore">tempfiles.html#tempstore</a></li><li>test coverage - <a href="testing.html#coverage">testing.html#coverage</a></li><li>test harness - <a href="testing.html#harnesses">testing.html#harnesses</a></li><li>test suite - <a href="testing.html">testing.html</a></li><li>testcase macros - <a href="testing.html#testcase">testing.html#testcase</a></li><li>tested - <a href="testing.html">testing.html</a></li><li>testing - <a href="testing.html">testing.html</a></li><li>text encoding - <a href="fileformat2.html#enc">fileformat2.html#enc</a></li><li>TH3 - <a href="th3.html">th3.html</a></li><li>the - and - operators - <a href="json1.html#jptr">json1.html#jptr</a></li><li>the - operator - <a href="json1.html#jptr">json1.html#jptr</a></li><li>the .fullschema dot-command - <a href="cli.html#fullschema">cli.html#fullschema</a></li><li>the amalgamation - <a href="amalgamation.html">amalgamation.html</a></li><li>the ext3 barrier problem - <a href="lockingv3.html#ext3-barrier-problem">lockingv3.html#ext3-barrier-problem</a></li><li>The Fossil NGQP Upgrade Case Study - <a href="queryplanner-ng.html#fossilcasestudy">queryplanner-ng.html#fossilcasestudy</a></li><li>the json1 extension - <a href="json1.html">json1.html</a></li><li>the SQLITE_DBPAGE extension - <a href="dbpage.html">dbpage.html</a></li><li>the SQLITE_MEMSTAT extension - <a href="memstat.html">memstat.html</a></li><li>the SQLITE_STMT extension - <a href="stmt.html">stmt.html</a></li><li>The Use Of assert In SQLite - <a href="assert.html">assert.html</a></li><li>the xCachesize page cache method - <a href="c3ref/pcache_methods2.html#thexcachesizepagecachemethod">c3ref/pcache_methods2.html#thexcachesizepagecachemethod</a></li><li>the xCreate page cache methods - <a href="c3ref/pcache_methods2.html#thexcreatepagecachemethods">c3ref/pcache_methods2.html#thexcreatepagecachemethods</a></li><li>the xDestroy page cache method - <a href="c3ref/pcache_methods2.html#thexdestroypagecachemethod">c3ref/pcache_methods2.html#thexdestroypagecachemethod</a></li><li>the xFetch page cache methods - <a href="c3ref/pcache_methods2.html#thexfetchpagecachemethods">c3ref/pcache_methods2.html#thexfetchpagecachemethods</a></li><li>the xInit page cache method - <a href="c3ref/pcache_methods2.html#thexinitpagecachemethod">c3ref/pcache_methods2.html#thexinitpagecachemethod</a></li><li>the xPagecount page cache methods - <a href="c3ref/pcache_methods2.html#thexpagecountpagecachemethods">c3ref/pcache_methods2.html#thexpagecountpagecachemethods</a></li><li>the xRekey page cache methods - <a href="c3ref/pcache_methods2.html#thexrekeypagecachemethods">c3ref/pcache_methods2.html#thexrekeypagecachemethods</a></li><li>the xShrink page cache method - <a href="c3ref/pcache_methods2.html#thexshrinkpagecachemethod">c3ref/pcache_methods2.html#thexshrinkpagecachemethod</a></li><li>the xShutdown page cache method - <a href="c3ref/pcache_methods2.html#thexshutdownpagecachemethod">c3ref/pcache_methods2.html#thexshutdownpagecachemethod</a></li><li>the xUnpin page cache method - <a href="c3ref/pcache_methods2.html#thexunpinpagecachemethod">c3ref/pcache_methods2.html#thexunpinpagecachemethod</a></li><li>Things That Can Go Wrong - <a href="atomiccommit.html#sect_9_0">atomiccommit.html#sect_9_0</a></li><li>threading mode - <a href="threadsafe.html">threadsafe.html</a></li><li>threads - <a href="pragma.html#pragma_threads">pragma.html#pragma_threads</a></li><li>threads pragma - <a href="pragma.html#pragma_threads">pragma.html#pragma_threads</a></li><li>three test harnesses - <a href="testing.html#harnesses">testing.html#harnesses</a></li><li>time - <a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a></li><li>time shift modifiers - <a href="lang_datefunc.html#tmshf">lang_datefunc.html#tmshf</a></li><li>time SQL function - <a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a></li><li>time value - <a href="lang_datefunc.html#tmval">lang_datefunc.html#tmval</a></li><li>time values - <a href="lang_datefunc.html#tmval">lang_datefunc.html#tmval</a></li><li>time-value - <a href="lang_datefunc.html#tmval">lang_datefunc.html#tmval</a></li><li>time-values - <a href="lang_datefunc.html#tmval">lang_datefunc.html#tmval</a></li><li>timediff - <a href="lang_datefunc.html#tmdif">lang_datefunc.html#tmdif</a></li><li>timediff SQL function - <a href="lang_datefunc.html#tmdif">lang_datefunc.html#tmdif</a></li><li>timeout method - <a href="tclsqlite.html#timeout">tclsqlite.html#timeout</a></li><li>tokenizer - <a href="fts3.html#tokenizer">fts3.html#tokenizer</a></li><li>torn page - <a href="psow.html#tornpage">psow.html#tornpage</a></li><li>total - <a href="lang_aggfunc.html#sumunc">lang_aggfunc.html#sumunc</a></li><li>total aggregate function - <a href="lang_aggfunc.html#sumunc">lang_aggfunc.html#sumunc</a></li><li>total_changes - <a href="lang_corefunc.html#total_changes">lang_corefunc.html#total_changes</a></li><li>total_changes method - <a href="tclsqlite.html#total_changes">tclsqlite.html#total_changes</a></li><li>total_changes SQL function - <a href="lang_corefunc.html#total_changes">lang_corefunc.html#total_changes</a></li><li>trace method - <a href="tclsqlite.html#trace">tclsqlite.html#trace</a></li><li>trace_v2 method - <a href="tclsqlite.html#trace_v2">tclsqlite.html#trace_v2</a></li><li>transaction - <a href="lang_transaction.html">lang_transaction.html</a></li><li>transaction method - <a href="tclsqlite.html#transaction">tclsqlite.html#transaction</a></li><li>transaction state - <a href="c3ref/c_txn_none.html">c3ref/c_txn_none.html</a></li><li>transactional - <a href="transactional.html">transactional.html</a></li><li>treats the CROSS JOIN operator specially - <a href="lang_select.html#crossjoin">lang_select.html#crossjoin</a></li><li>trigger - <a href="lang_createtrigger.html">lang_createtrigger.html</a></li><li>triggers - <a href="lang_createtrigger.html">lang_createtrigger.html</a></li><li>trigram indexes - <a href="fts5.html#trigramidx">fts5.html#trigramidx</a></li><li>trigram tokenizer - <a href="fts5.html#trigramidx">fts5.html#trigramidx</a></li><li>trim - <a href="lang_corefunc.html#trim">lang_corefunc.html#trim</a></li><li>trim SQL function - <a href="lang_corefunc.html#trim">lang_corefunc.html#trim</a></li><li>trunc - <a href="lang_mathfunc.html#trunc">lang_mathfunc.html#trunc</a></li><li>trunc SQL function - <a href="lang_mathfunc.html#trunc">lang_mathfunc.html#trunc</a></li><li>truncate optimization - <a href="lang_delete.html#truncateopt">lang_delete.html#truncateopt</a></li><li>trusted_schema - <a href="pragma.html#pragma_trusted_schema">pragma.html#pragma_trusted_schema</a></li><li>trusted_schema pragma - <a href="pragma.html#pragma_trusted_schema">pragma.html#pragma_trusted_schema</a></li><li>type affinity - <a href="datatype3.html#affinity">datatype3.html#affinity</a></li><li>type-name - <a href="syntax/type-name.html">syntax/type-name.html</a></li><li>type-name syntax diagram - <a href="syntax/type-name.html">syntax/type-name.html</a></li><li>typeof - <a href="lang_corefunc.html#typeof">lang_corefunc.html#typeof</a></li><li>typeof SQL function - <a href="lang_corefunc.html#typeof">lang_corefunc.html#typeof</a></li><li>UINT - <a href="uintcseq.html">uintcseq.html</a></li><li>UINT collating sequence - <a href="uintcseq.html">uintcseq.html</a></li><li>undefined BEFORE trigger behavior - <a href="lang_createtrigger.html#undef_before">lang_createtrigger.html#undef_before</a></li><li>undo/redo - <a href="undoredo.html">undoredo.html</a></li><li>undoredo - <a href="undoredo.html">undoredo.html</a></li><li>unhex - <a href="lang_corefunc.html#unhex">lang_corefunc.html#unhex</a></li><li>unhex SQL function - <a href="lang_corefunc.html#unhex">lang_corefunc.html#unhex</a></li><li>unicode - <a href="lang_corefunc.html#unicode">lang_corefunc.html#unicode</a></li><li>unicode SQL function - <a href="lang_corefunc.html#unicode">lang_corefunc.html#unicode</a></li><li>unicode61 - <a href="fts3.html#unicode61">fts3.html#unicode61</a></li><li>Uniform Resource Identifier - <a href="uri.html">uri.html</a></li><li>unindexed - <a href="fts5.html#the_unindexed_column_option">fts5.html#the_unindexed_column_option</a></li><li>UNION virtual table - <a href="unionvtab.html">unionvtab.html</a></li><li>union-vtab - <a href="unionvtab.html">unionvtab.html</a></li><li>unionvtab - <a href="unionvtab.html">unionvtab.html</a></li><li>UNIQUE - <a href="lang_createtable.html#uniqueconst">lang_createtable.html#uniqueconst</a></li><li>UNIQUE constraint - <a href="lang_createtable.html#uniqueconst">lang_createtable.html#uniqueconst</a></li><li>unique constraint - <a href="lang_createtable.html#uniqueconst">lang_createtable.html#uniqueconst</a></li><li>UNIQUE constraints - <a href="lang_createtable.html#uniqueconst">lang_createtable.html#uniqueconst</a></li><li>unique index - <a href="lang_createindex.html#uniqueidx">lang_createindex.html#uniqueidx</a></li><li>unixepoch - <a href="lang_datefunc.html#uepch">lang_datefunc.html#uepch</a></li><li>unixepoch function - <a href="lang_datefunc.html#uepch">lang_datefunc.html#uepch</a></li><li>unixepoch modifier - <a href="lang_datefunc.html#jdmod">lang_datefunc.html#jdmod</a></li><li>unixepoch SQL function - <a href="lang_datefunc.html#uepch">lang_datefunc.html#uepch</a></li><li>unlikely - <a href="lang_corefunc.html#unlikely">lang_corefunc.html#unlikely</a></li><li>unlikely SQL function - <a href="lang_corefunc.html#unlikely">lang_corefunc.html#unlikely</a></li><li>unlink corruption - <a href="howtocorrupt.html#unlink">howtocorrupt.html#unlink</a></li><li>unlinked database files - <a href="howtocorrupt.html#unlink">howtocorrupt.html#unlink</a></li><li>unlock_notify method - <a href="tclsqlite.html#unlock_notify">tclsqlite.html#unlock_notify</a></li><li>unprotected sqlite3_value - <a href="c3ref/value.html">c3ref/value.html</a></li><li>unsafe-testing command-line option - <a href="cli.html#testing_mode">cli.html#testing_mode</a></li><li>untrusted database files - <a href="security.html#baddb">security.html#baddb</a></li><li>UPDATE - <a href="lang_update.html">lang_update.html</a></li><li>UPDATE FROM - <a href="lang_update.html#upfrom">lang_update.html#upfrom</a></li><li>UPDATE trigger - <a href="lang_createtrigger.html">lang_createtrigger.html</a></li><li>update-stmt - <a href="syntax/update-stmt.html">syntax/update-stmt.html</a></li><li>update-stmt syntax diagram - <a href="syntax/update-stmt.html">syntax/update-stmt.html</a></li><li>update-stmt-limited - <a href="syntax/update-stmt-limited.html">syntax/update-stmt-limited.html</a></li><li>update-stmt-limited syntax diagram - <a href="syntax/update-stmt-limited.html">syntax/update-stmt-limited.html</a></li><li>update_hook method - <a href="tclsqlite.html#update_hook">tclsqlite.html#update_hook</a></li><li>UPDATEs - <a href="lang_update.html">lang_update.html</a></li><li>upluscontrol - <a href="optoverview.html#uplus">optoverview.html#uplus</a></li><li>upper - <a href="lang_corefunc.html#upper">lang_corefunc.html#upper</a></li><li>upper SQL function - <a href="lang_corefunc.html#upper">lang_corefunc.html#upper</a></li><li>UPSERT - <a href="lang_upsert.html">lang_upsert.html</a></li><li>upsert - <a href="lang_upsert.html">lang_upsert.html</a></li><li>upsert clause - <a href="lang_upsert.html">lang_upsert.html</a></li><li>UPSERT parsing ambiguity - <a href="lang_upsert.html#parseambig">lang_upsert.html#parseambig</a></li><li>upsert-clause - <a href="syntax/upsert-clause.html">syntax/upsert-clause.html</a></li><li>upsert-clause syntax diagram - <a href="syntax/upsert-clause.html">syntax/upsert-clause.html</a></li><li>URI - <a href="uri.html">uri.html</a></li><li>URI filename - <a href="uri.html">uri.html</a></li><li>URI filename examples - <a href="c3ref/open.html#urifilenameexamples">c3ref/open.html#urifilenameexamples</a></li><li>URI filenames - <a href="uri.html">uri.html</a></li><li>URI filenames in sqlite3_open - <a href="c3ref/open.html#urifilenamesinsqlite3open">c3ref/open.html#urifilenamesinsqlite3open</a></li><li>URI query parameters - <a href="uri.html#coreqp">uri.html#coreqp</a></li><li>usable size - <a href="fileformat2.html#usable_size">fileformat2.html#usable_size</a></li><li>use of shared cache mode is discouraged - <a href="sharedcache.html#dontuse">sharedcache.html#dontuse</a></li><li>user-defined window functions - <a href="windowfunctions.html#udfwinfunc">windowfunctions.html#udfwinfunc</a></li><li>user_version - <a href="pragma.html#pragma_user_version">pragma.html#pragma_user_version</a></li><li>user_version pragma - <a href="pragma.html#pragma_user_version">pragma.html#pragma_user_version</a></li><li>using SQLite for websites - <a href="whentouse.html#website">whentouse.html#website</a></li><li>Using the SQLite Online Backup API - <a href="backup.html">backup.html</a></li><li>Using the SQLite Unlock Notification Feature - <a href="unlock_notify.html">unlock_notify.html</a></li><li>utc and localtime modifiers - <a href="lang_datefunc.html#localtime">lang_datefunc.html#localtime</a></li><li>utc modifier - <a href="lang_datefunc.html#localtime">lang_datefunc.html#localtime</a></li><li>VACUUM - <a href="lang_vacuum.html">lang_vacuum.html</a></li><li>vacuum - <a href="lang_vacuum.html">lang_vacuum.html</a></li><li>VACUUM INTO - <a href="lang_vacuum.html#vacuuminto">lang_vacuum.html#vacuuminto</a></li><li>vacuum-stmt - <a href="syntax/vacuum-stmt.html">syntax/vacuum-stmt.html</a></li><li>vacuum-stmt syntax diagram - <a href="syntax/vacuum-stmt.html">syntax/vacuum-stmt.html</a></li><li>value argument - <a href="json1.html#varg">json1.html#varg</a></li><li>VALUES - <a href="lang_select.html#values">lang_select.html#values</a></li><li>VALUES clause - <a href="lang_select.html#values">lang_select.html#values</a></li><li>variable-length integer - <a href="fileformat2.html#varint">fileformat2.html#varint</a></li><li>varint - <a href="fileformat2.html#varint">fileformat2.html#varint</a></li><li>VDBE - <a href="opcode.html">opcode.html</a></li><li>vdbe_addoptrace - <a href="pragma.html#pragma_vdbe_addoptrace">pragma.html#pragma_vdbe_addoptrace</a></li><li>vdbe_addoptrace pragma - <a href="pragma.html#pragma_vdbe_addoptrace">pragma.html#pragma_vdbe_addoptrace</a></li><li>vdbe_debug - <a href="pragma.html#pragma_vdbe_debug">pragma.html#pragma_vdbe_debug</a></li><li>vdbe_debug pragma - <a href="pragma.html#pragma_vdbe_debug">pragma.html#pragma_vdbe_debug</a></li><li>vdbe_listing - <a href="pragma.html#pragma_vdbe_listing">pragma.html#pragma_vdbe_listing</a></li><li>vdbe_listing pragma - <a href="pragma.html#pragma_vdbe_listing">pragma.html#pragma_vdbe_listing</a></li><li>vdbe_trace - <a href="pragma.html#pragma_vdbe_trace">pragma.html#pragma_vdbe_trace</a></li><li>vdbe_trace pragma - <a href="pragma.html#pragma_vdbe_trace">pragma.html#pragma_vdbe_trace</a></li><li>vectors - <a href="rowvalue.html">rowvalue.html</a></li><li>Version 3.0.0 - <a href="releaselog/3_0_0.html">releaselog/3_0_0.html</a></li><li>version 3.0.0 - <a href="releaselog/3_0_0.html">releaselog/3_0_0.html</a></li><li>Version 3.0.1 - <a href="releaselog/3_0_1.html">releaselog/3_0_1.html</a></li><li>version 3.0.1 - <a href="releaselog/3_0_1.html">releaselog/3_0_1.html</a></li><li>Version 3.0.2 - <a href="releaselog/3_0_2.html">releaselog/3_0_2.html</a></li><li>version 3.0.2 - <a href="releaselog/3_0_2.html">releaselog/3_0_2.html</a></li><li>Version 3.0.3 - <a href="releaselog/3_0_3.html">releaselog/3_0_3.html</a></li><li>version 3.0.3 - <a href="releaselog/3_0_3.html">releaselog/3_0_3.html</a></li><li>Version 3.0.4 - <a href="releaselog/3_0_4.html">releaselog/3_0_4.html</a></li><li>version 3.0.4 - <a href="releaselog/3_0_4.html">releaselog/3_0_4.html</a></li><li>Version 3.0.5 - <a href="releaselog/3_0_5.html">releaselog/3_0_5.html</a></li><li>version 3.0.5 - <a href="releaselog/3_0_5.html">releaselog/3_0_5.html</a></li><li>Version 3.0.6 - <a href="releaselog/3_0_6.html">releaselog/3_0_6.html</a></li><li>version 3.0.6 - <a href="releaselog/3_0_6.html">releaselog/3_0_6.html</a></li><li>Version 3.0.7 - <a href="releaselog/3_0_7.html">releaselog/3_0_7.html</a></li><li>version 3.0.7 - <a href="releaselog/3_0_7.html">releaselog/3_0_7.html</a></li><li>Version 3.0.8 - <a href="releaselog/3_0_8.html">releaselog/3_0_8.html</a></li><li>version 3.0.8 - <a href="releaselog/3_0_8.html">releaselog/3_0_8.html</a></li><li>Version 3.1.0 - <a href="releaselog/3_1_0.html">releaselog/3_1_0.html</a></li><li>version 3.1.0 - <a href="releaselog/3_1_0.html">releaselog/3_1_0.html</a></li><li>Version 3.1.1 - <a href="releaselog/3_1_1.html">releaselog/3_1_1.html</a></li><li>version 3.1.1 - <a href="releaselog/3_1_1.html">releaselog/3_1_1.html</a></li><li>Version 3.1.2 - <a href="releaselog/3_1_2.html">releaselog/3_1_2.html</a></li><li>version 3.1.2 - <a href="releaselog/3_1_2.html">releaselog/3_1_2.html</a></li><li>Version 3.1.3 - <a href="releaselog/3_1_3.html">releaselog/3_1_3.html</a></li><li>version 3.1.3 - <a href="releaselog/3_1_3.html">releaselog/3_1_3.html</a></li><li>Version 3.1.4 - <a href="releaselog/3_1_4.html">releaselog/3_1_4.html</a></li><li>version 3.1.4 - <a href="releaselog/3_1_4.html">releaselog/3_1_4.html</a></li><li>Version 3.1.5 - <a href="releaselog/3_1_5.html">releaselog/3_1_5.html</a></li><li>version 3.1.5 - <a href="releaselog/3_1_5.html">releaselog/3_1_5.html</a></li><li>Version 3.1.6 - <a href="releaselog/3_1_6.html">releaselog/3_1_6.html</a></li><li>version 3.1.6 - <a href="releaselog/3_1_6.html">releaselog/3_1_6.html</a></li><li>Version 3.2.0 - <a href="releaselog/3_2_0.html">releaselog/3_2_0.html</a></li><li>version 3.2.0 - <a href="releaselog/3_2_0.html">releaselog/3_2_0.html</a></li><li>Version 3.2.1 - <a href="releaselog/3_2_1.html">releaselog/3_2_1.html</a></li><li>version 3.2.1 - <a href="releaselog/3_2_1.html">releaselog/3_2_1.html</a></li><li>Version 3.2.2 - <a href="releaselog/3_2_2.html">releaselog/3_2_2.html</a></li><li>version 3.2.2 - <a href="releaselog/3_2_2.html">releaselog/3_2_2.html</a></li><li>Version 3.2.3 - <a href="releaselog/3_2_3.html">releaselog/3_2_3.html</a></li><li>version 3.2.3 - <a href="releaselog/3_2_3.html">releaselog/3_2_3.html</a></li><li>Version 3.2.4 - <a href="releaselog/3_2_4.html">releaselog/3_2_4.html</a></li><li>version 3.2.4 - <a href="releaselog/3_2_4.html">releaselog/3_2_4.html</a></li><li>Version 3.2.5 - <a href="releaselog/3_2_5.html">releaselog/3_2_5.html</a></li><li>version 3.2.5 - <a href="releaselog/3_2_5.html">releaselog/3_2_5.html</a></li><li>Version 3.2.6 - <a href="releaselog/3_2_6.html">releaselog/3_2_6.html</a></li><li>version 3.2.6 - <a href="releaselog/3_2_6.html">releaselog/3_2_6.html</a></li><li>Version 3.2.7 - <a href="releaselog/3_2_7.html">releaselog/3_2_7.html</a></li><li>version 3.2.7 - <a href="releaselog/3_2_7.html">releaselog/3_2_7.html</a></li><li>Version 3.2.8 - <a href="releaselog/3_2_8.html">releaselog/3_2_8.html</a></li><li>version 3.2.8 - <a href="releaselog/3_2_8.html">releaselog/3_2_8.html</a></li><li>Version 3.3.0 - <a href="releaselog/3_3_0.html">releaselog/3_3_0.html</a></li><li>version 3.3.0 - <a href="releaselog/3_3_0.html">releaselog/3_3_0.html</a></li><li>Version 3.3.0.0 - <a href="releaselog/3_3_0.html">releaselog/3_3_0.html</a></li><li>version 3.3.0.0 - <a href="releaselog/3_3_0.html">releaselog/3_3_0.html</a></li><li>Version 3.3.1 - <a href="releaselog/3_3_1.html">releaselog/3_3_1.html</a></li><li>version 3.3.1 - <a href="releaselog/3_3_1.html">releaselog/3_3_1.html</a></li><li>Version 3.3.1.0 - <a href="releaselog/3_3_1.html">releaselog/3_3_1.html</a></li><li>version 3.3.1.0 - <a href="releaselog/3_3_1.html">releaselog/3_3_1.html</a></li><li>Version 3.3.2 - <a href="releaselog/3_3_2.html">releaselog/3_3_2.html</a></li><li>version 3.3.2 - <a href="releaselog/3_3_2.html">releaselog/3_3_2.html</a></li><li>Version 3.3.2.0 - <a href="releaselog/3_3_2.html">releaselog/3_3_2.html</a></li><li>version 3.3.2.0 - <a href="releaselog/3_3_2.html">releaselog/3_3_2.html</a></li><li>Version 3.3.3 - <a href="releaselog/3_3_3.html">releaselog/3_3_3.html</a></li><li>version 3.3.3 - <a href="releaselog/3_3_3.html">releaselog/3_3_3.html</a></li><li>Version 3.3.3.0 - <a href="releaselog/3_3_3.html">releaselog/3_3_3.html</a></li><li>version 3.3.3.0 - <a href="releaselog/3_3_3.html">releaselog/3_3_3.html</a></li><li>Version 3.3.4 - <a href="releaselog/3_3_4.html">releaselog/3_3_4.html</a></li><li>version 3.3.4 - <a href="releaselog/3_3_4.html">releaselog/3_3_4.html</a></li><li>Version 3.3.4.0 - <a href="releaselog/3_3_4.html">releaselog/3_3_4.html</a></li><li>version 3.3.4.0 - <a href="releaselog/3_3_4.html">releaselog/3_3_4.html</a></li><li>Version 3.3.5 - <a href="releaselog/3_3_5.html">releaselog/3_3_5.html</a></li><li>version 3.3.5 - <a href="releaselog/3_3_5.html">releaselog/3_3_5.html</a></li><li>Version 3.3.5.0 - <a href="releaselog/3_3_5.html">releaselog/3_3_5.html</a></li><li>version 3.3.5.0 - <a href="releaselog/3_3_5.html">releaselog/3_3_5.html</a></li><li>Version 3.3.6 - <a href="releaselog/3_3_6.html">releaselog/3_3_6.html</a></li><li>version 3.3.6 - <a href="releaselog/3_3_6.html">releaselog/3_3_6.html</a></li><li>Version 3.3.6.0 - <a href="releaselog/3_3_6.html">releaselog/3_3_6.html</a></li><li>version 3.3.6.0 - <a href="releaselog/3_3_6.html">releaselog/3_3_6.html</a></li><li>Version 3.3.7 - <a href="releaselog/3_3_7.html">releaselog/3_3_7.html</a></li><li>version 3.3.7 - <a href="releaselog/3_3_7.html">releaselog/3_3_7.html</a></li><li>Version 3.3.7.0 - <a href="releaselog/3_3_7.html">releaselog/3_3_7.html</a></li><li>version 3.3.7.0 - <a href="releaselog/3_3_7.html">releaselog/3_3_7.html</a></li><li>Version 3.3.8 - <a href="releaselog/3_3_8.html">releaselog/3_3_8.html</a></li><li>version 3.3.8 - <a href="releaselog/3_3_8.html">releaselog/3_3_8.html</a></li><li>Version 3.3.8.0 - <a href="releaselog/3_3_8.html">releaselog/3_3_8.html</a></li><li>version 3.3.8.0 - <a href="releaselog/3_3_8.html">releaselog/3_3_8.html</a></li><li>Version 3.3.9 - <a href="releaselog/3_3_9.html">releaselog/3_3_9.html</a></li><li>version 3.3.9 - <a href="releaselog/3_3_9.html">releaselog/3_3_9.html</a></li><li>Version 3.3.9.0 - <a href="releaselog/3_3_9.html">releaselog/3_3_9.html</a></li><li>version 3.3.9.0 - <a href="releaselog/3_3_9.html">releaselog/3_3_9.html</a></li><li>Version 3.3.10 - <a href="releaselog/3_3_10.html">releaselog/3_3_10.html</a></li><li>version 3.3.10 - <a href="releaselog/3_3_10.html">releaselog/3_3_10.html</a></li><li>Version 3.3.10.0 - <a href="releaselog/3_3_10.html">releaselog/3_3_10.html</a></li><li>version 3.3.10.0 - <a href="releaselog/3_3_10.html">releaselog/3_3_10.html</a></li><li>Version 3.3.11 - <a href="releaselog/3_3_11.html">releaselog/3_3_11.html</a></li><li>version 3.3.11 - <a href="releaselog/3_3_11.html">releaselog/3_3_11.html</a></li><li>Version 3.3.11.0 - <a href="releaselog/3_3_11.html">releaselog/3_3_11.html</a></li><li>version 3.3.11.0 - <a href="releaselog/3_3_11.html">releaselog/3_3_11.html</a></li><li>Version 3.3.12 - <a href="releaselog/3_3_12.html">releaselog/3_3_12.html</a></li><li>version 3.3.12 - <a href="releaselog/3_3_12.html">releaselog/3_3_12.html</a></li><li>Version 3.3.12.0 - <a href="releaselog/3_3_12.html">releaselog/3_3_12.html</a></li><li>version 3.3.12.0 - <a href="releaselog/3_3_12.html">releaselog/3_3_12.html</a></li><li>Version 3.3.13 - <a href="releaselog/3_3_13.html">releaselog/3_3_13.html</a></li><li>version 3.3.13 - <a href="releaselog/3_3_13.html">releaselog/3_3_13.html</a></li><li>Version 3.3.13.0 - <a href="releaselog/3_3_13.html">releaselog/3_3_13.html</a></li><li>version 3.3.13.0 - <a href="releaselog/3_3_13.html">releaselog/3_3_13.html</a></li><li>Version 3.3.14 - <a href="releaselog/3_3_14.html">releaselog/3_3_14.html</a></li><li>version 3.3.14 - <a href="releaselog/3_3_14.html">releaselog/3_3_14.html</a></li><li>Version 3.3.14.0 - <a href="releaselog/3_3_14.html">releaselog/3_3_14.html</a></li><li>version 3.3.14.0 - <a href="releaselog/3_3_14.html">releaselog/3_3_14.html</a></li><li>Version 3.3.15 - <a href="releaselog/3_3_15.html">releaselog/3_3_15.html</a></li><li>version 3.3.15 - <a href="releaselog/3_3_15.html">releaselog/3_3_15.html</a></li><li>Version 3.3.15.0 - <a href="releaselog/3_3_15.html">releaselog/3_3_15.html</a></li><li>version 3.3.15.0 - <a href="releaselog/3_3_15.html">releaselog/3_3_15.html</a></li><li>Version 3.3.16 - <a href="releaselog/3_3_16.html">releaselog/3_3_16.html</a></li><li>version 3.3.16 - <a href="releaselog/3_3_16.html">releaselog/3_3_16.html</a></li><li>Version 3.3.16.0 - <a href="releaselog/3_3_16.html">releaselog/3_3_16.html</a></li><li>version 3.3.16.0 - <a href="releaselog/3_3_16.html">releaselog/3_3_16.html</a></li><li>Version 3.3.17 - <a href="releaselog/3_3_17.html">releaselog/3_3_17.html</a></li><li>version 3.3.17 - <a href="releaselog/3_3_17.html">releaselog/3_3_17.html</a></li><li>Version 3.3.17.0 - <a href="releaselog/3_3_17.html">releaselog/3_3_17.html</a></li><li>version 3.3.17.0 - <a href="releaselog/3_3_17.html">releaselog/3_3_17.html</a></li><li>Version 3.4.0 - <a href="releaselog/3_4_0.html">releaselog/3_4_0.html</a></li><li>version 3.4.0 - <a href="releaselog/3_4_0.html">releaselog/3_4_0.html</a></li><li>Version 3.4.1 - <a href="releaselog/3_4_1.html">releaselog/3_4_1.html</a></li><li>version 3.4.1 - <a href="releaselog/3_4_1.html">releaselog/3_4_1.html</a></li><li>Version 3.4.2 - <a href="releaselog/3_4_2.html">releaselog/3_4_2.html</a></li><li>version 3.4.2 - <a href="releaselog/3_4_2.html">releaselog/3_4_2.html</a></li><li>Version 3.5.0 - <a href="releaselog/3_5_0.html">releaselog/3_5_0.html</a></li><li>version 3.5.0 - <a href="releaselog/3_5_0.html">releaselog/3_5_0.html</a></li><li>Version 3.5.1 - <a href="releaselog/3_5_1.html">releaselog/3_5_1.html</a></li><li>version 3.5.1 - <a href="releaselog/3_5_1.html">releaselog/3_5_1.html</a></li><li>Version 3.5.2 - <a href="releaselog/3_5_2.html">releaselog/3_5_2.html</a></li><li>version 3.5.2 - <a href="releaselog/3_5_2.html">releaselog/3_5_2.html</a></li><li>Version 3.5.3 - <a href="releaselog/3_5_3.html">releaselog/3_5_3.html</a></li><li>version 3.5.3 - <a href="releaselog/3_5_3.html">releaselog/3_5_3.html</a></li><li>Version 3.5.4 - <a href="releaselog/3_5_4.html">releaselog/3_5_4.html</a></li><li>version 3.5.4 - <a href="releaselog/3_5_4.html">releaselog/3_5_4.html</a></li><li>Version 3.5.5 - <a href="releaselog/3_5_5.html">releaselog/3_5_5.html</a></li><li>version 3.5.5 - <a href="releaselog/3_5_5.html">releaselog/3_5_5.html</a></li><li>Version 3.5.6 - <a href="releaselog/3_5_6.html">releaselog/3_5_6.html</a></li><li>version 3.5.6 - <a href="releaselog/3_5_6.html">releaselog/3_5_6.html</a></li><li>Version 3.5.7 - <a href="releaselog/3_5_7.html">releaselog/3_5_7.html</a></li><li>version 3.5.7 - <a href="releaselog/3_5_7.html">releaselog/3_5_7.html</a></li><li>Version 3.5.8 - <a href="releaselog/3_5_8.html">releaselog/3_5_8.html</a></li><li>version 3.5.8 - <a href="releaselog/3_5_8.html">releaselog/3_5_8.html</a></li><li>Version 3.5.9 - <a href="releaselog/3_5_9.html">releaselog/3_5_9.html</a></li><li>version 3.5.9 - <a href="releaselog/3_5_9.html">releaselog/3_5_9.html</a></li><li>Version 3.6.0 - <a href="releaselog/3_6_0.html">releaselog/3_6_0.html</a></li><li>version 3.6.0 - <a href="releaselog/3_6_0.html">releaselog/3_6_0.html</a></li><li>Version 3.6.1 - <a href="releaselog/3_6_1.html">releaselog/3_6_1.html</a></li><li>version 3.6.1 - <a href="releaselog/3_6_1.html">releaselog/3_6_1.html</a></li><li>Version 3.6.2 - <a href="releaselog/3_6_2.html">releaselog/3_6_2.html</a></li><li>version 3.6.2 - <a href="releaselog/3_6_2.html">releaselog/3_6_2.html</a></li><li>Version 3.6.3 - <a href="releaselog/3_6_3.html">releaselog/3_6_3.html</a></li><li>version 3.6.3 - <a href="releaselog/3_6_3.html">releaselog/3_6_3.html</a></li><li>Version 3.6.4 - <a href="releaselog/3_6_4.html">releaselog/3_6_4.html</a></li><li>version 3.6.4 - <a href="releaselog/3_6_4.html">releaselog/3_6_4.html</a></li><li>Version 3.6.5 - <a href="releaselog/3_6_5.html">releaselog/3_6_5.html</a></li><li>version 3.6.5 - <a href="releaselog/3_6_5.html">releaselog/3_6_5.html</a></li><li>Version 3.6.6 - <a href="releaselog/3_6_6.html">releaselog/3_6_6.html</a></li><li>version 3.6.6 - <a href="releaselog/3_6_6.html">releaselog/3_6_6.html</a></li><li>Version 3.6.6.1 - <a href="releaselog/3_6_6_1.html">releaselog/3_6_6_1.html</a></li><li>version 3.6.6.1 - <a href="releaselog/3_6_6_1.html">releaselog/3_6_6_1.html</a></li><li>Version 3.6.6.2 - <a href="releaselog/3_6_6_2.html">releaselog/3_6_6_2.html</a></li><li>version 3.6.6.2 - <a href="releaselog/3_6_6_2.html">releaselog/3_6_6_2.html</a></li><li>Version 3.6.7 - <a href="releaselog/3_6_7.html">releaselog/3_6_7.html</a></li><li>version 3.6.7 - <a href="releaselog/3_6_7.html">releaselog/3_6_7.html</a></li><li>Version 3.6.8 - <a href="releaselog/3_6_8.html">releaselog/3_6_8.html</a></li><li>version 3.6.8 - <a href="releaselog/3_6_8.html">releaselog/3_6_8.html</a></li><li>Version 3.6.9 - <a href="releaselog/3_6_9.html">releaselog/3_6_9.html</a></li><li>version 3.6.9 - <a href="releaselog/3_6_9.html">releaselog/3_6_9.html</a></li><li>Version 3.6.10 - <a href="releaselog/3_6_10.html">releaselog/3_6_10.html</a></li><li>version 3.6.10 - <a href="releaselog/3_6_10.html">releaselog/3_6_10.html</a></li><li>Version 3.6.11 - <a href="releaselog/3_6_11.html">releaselog/3_6_11.html</a></li><li>version 3.6.11 - <a href="releaselog/3_6_11.html">releaselog/3_6_11.html</a></li><li>Version 3.6.12 - <a href="releaselog/3_6_12.html">releaselog/3_6_12.html</a></li><li>version 3.6.12 - <a href="releaselog/3_6_12.html">releaselog/3_6_12.html</a></li><li>Version 3.6.13 - <a href="releaselog/3_6_13.html">releaselog/3_6_13.html</a></li><li>version 3.6.13 - <a href="releaselog/3_6_13.html">releaselog/3_6_13.html</a></li><li>Version 3.6.14 - <a href="releaselog/3_6_14.html">releaselog/3_6_14.html</a></li><li>version 3.6.14 - <a href="releaselog/3_6_14.html">releaselog/3_6_14.html</a></li><li>Version 3.6.14.1 - <a href="releaselog/3_6_14_1.html">releaselog/3_6_14_1.html</a></li><li>version 3.6.14.1 - <a href="releaselog/3_6_14_1.html">releaselog/3_6_14_1.html</a></li><li>Version 3.6.14.2 - <a href="releaselog/3_6_14_2.html">releaselog/3_6_14_2.html</a></li><li>version 3.6.14.2 - <a href="releaselog/3_6_14_2.html">releaselog/3_6_14_2.html</a></li><li>Version 3.6.15 - <a href="releaselog/3_6_15.html">releaselog/3_6_15.html</a></li><li>version 3.6.15 - <a href="releaselog/3_6_15.html">releaselog/3_6_15.html</a></li><li>Version 3.6.16 - <a href="releaselog/3_6_16.html">releaselog/3_6_16.html</a></li><li>version 3.6.16 - <a href="releaselog/3_6_16.html">releaselog/3_6_16.html</a></li><li>Version 3.6.16.1 - <a href="releaselog/3_6_16_1.html">releaselog/3_6_16_1.html</a></li><li>version 3.6.16.1 - <a href="releaselog/3_6_16_1.html">releaselog/3_6_16_1.html</a></li><li>Version 3.6.17 - <a href="releaselog/3_6_17.html">releaselog/3_6_17.html</a></li><li>version 3.6.17 - <a href="releaselog/3_6_17.html">releaselog/3_6_17.html</a></li><li>Version 3.6.18 - <a href="releaselog/3_6_18.html">releaselog/3_6_18.html</a></li><li>version 3.6.18 - <a href="releaselog/3_6_18.html">releaselog/3_6_18.html</a></li><li>Version 3.6.19 - <a href="releaselog/3_6_19.html">releaselog/3_6_19.html</a></li><li>version 3.6.19 - <a href="releaselog/3_6_19.html">releaselog/3_6_19.html</a></li><li>Version 3.6.20 - <a href="releaselog/3_6_20.html">releaselog/3_6_20.html</a></li><li>version 3.6.20 - <a href="releaselog/3_6_20.html">releaselog/3_6_20.html</a></li><li>Version 3.6.21 - <a href="releaselog/3_6_21.html">releaselog/3_6_21.html</a></li><li>version 3.6.21 - <a href="releaselog/3_6_21.html">releaselog/3_6_21.html</a></li><li>Version 3.6.22 - <a href="releaselog/3_6_22.html">releaselog/3_6_22.html</a></li><li>version 3.6.22 - <a href="releaselog/3_6_22.html">releaselog/3_6_22.html</a></li><li>Version 3.6.23 - <a href="releaselog/3_6_23.html">releaselog/3_6_23.html</a></li><li>version 3.6.23 - <a href="releaselog/3_6_23.html">releaselog/3_6_23.html</a></li><li>Version 3.6.23.1 - <a href="releaselog/3_6_23_1.html">releaselog/3_6_23_1.html</a></li><li>version 3.6.23.1 - <a href="releaselog/3_6_23_1.html">releaselog/3_6_23_1.html</a></li><li>Version 3.6.23.1.0 - <a href="releaselog/3_6_23_1.html">releaselog/3_6_23_1.html</a></li><li>version 3.6.23.1.0 - <a href="releaselog/3_6_23_1.html">releaselog/3_6_23_1.html</a></li><li>Version 3.7.0 - <a href="releaselog/3_7_0.html">releaselog/3_7_0.html</a></li><li>version 3.7.0 - <a href="releaselog/3_7_0.html">releaselog/3_7_0.html</a></li><li>Version 3.7.0.1 - <a href="releaselog/3_7_0_1.html">releaselog/3_7_0_1.html</a></li><li>version 3.7.0.1 - <a href="releaselog/3_7_0_1.html">releaselog/3_7_0_1.html</a></li><li>Version 3.7.1 - <a href="releaselog/3_7_1.html">releaselog/3_7_1.html</a></li><li>version 3.7.1 - <a href="releaselog/3_7_1.html">releaselog/3_7_1.html</a></li><li>Version 3.7.2 - <a href="releaselog/3_7_2.html">releaselog/3_7_2.html</a></li><li>version 3.7.2 - <a href="releaselog/3_7_2.html">releaselog/3_7_2.html</a></li><li>Version 3.7.3 - <a href="releaselog/3_7_3.html">releaselog/3_7_3.html</a></li><li>version 3.7.3 - <a href="releaselog/3_7_3.html">releaselog/3_7_3.html</a></li><li>Version 3.7.4 - <a href="releaselog/3_7_4.html">releaselog/3_7_4.html</a></li><li>version 3.7.4 - <a href="releaselog/3_7_4.html">releaselog/3_7_4.html</a></li><li>Version 3.7.5 - <a href="releaselog/3_7_5.html">releaselog/3_7_5.html</a></li><li>version 3.7.5 - <a href="releaselog/3_7_5.html">releaselog/3_7_5.html</a></li><li>Version 3.7.6 - <a href="releaselog/3_7_6.html">releaselog/3_7_6.html</a></li><li>version 3.7.6 - <a href="releaselog/3_7_6.html">releaselog/3_7_6.html</a></li><li>Version 3.7.6.1 - <a href="releaselog/3_7_6_1.html">releaselog/3_7_6_1.html</a></li><li>version 3.7.6.1 - <a href="releaselog/3_7_6_1.html">releaselog/3_7_6_1.html</a></li><li>Version 3.7.6.2 - <a href="releaselog/3_7_6_2.html">releaselog/3_7_6_2.html</a></li><li>version 3.7.6.2 - <a href="releaselog/3_7_6_2.html">releaselog/3_7_6_2.html</a></li><li>Version 3.7.6.3 - <a href="releaselog/3_7_6_3.html">releaselog/3_7_6_3.html</a></li><li>version 3.7.6.3 - <a href="releaselog/3_7_6_3.html">releaselog/3_7_6_3.html</a></li><li>Version 3.7.7 - <a href="releaselog/3_7_7.html">releaselog/3_7_7.html</a></li><li>version 3.7.7 - <a href="releaselog/3_7_7.html">releaselog/3_7_7.html</a></li><li>Version 3.7.7.1 - <a href="releaselog/3_7_7_1.html">releaselog/3_7_7_1.html</a></li><li>version 3.7.7.1 - <a href="releaselog/3_7_7_1.html">releaselog/3_7_7_1.html</a></li><li>Version 3.7.8 - <a href="releaselog/3_7_8.html">releaselog/3_7_8.html</a></li><li>version 3.7.8 - <a href="releaselog/3_7_8.html">releaselog/3_7_8.html</a></li><li>Version 3.7.9 - <a href="releaselog/3_7_9.html">releaselog/3_7_9.html</a></li><li>version 3.7.9 - <a href="releaselog/3_7_9.html">releaselog/3_7_9.html</a></li><li>Version 3.7.10 - <a href="releaselog/3_7_10.html">releaselog/3_7_10.html</a></li><li>version 3.7.10 - <a href="releaselog/3_7_10.html">releaselog/3_7_10.html</a></li><li>Version 3.7.11 - <a href="releaselog/3_7_11.html">releaselog/3_7_11.html</a></li><li>version 3.7.11 - <a href="releaselog/3_7_11.html">releaselog/3_7_11.html</a></li><li>Version 3.7.12 - <a href="releaselog/3_7_12.html">releaselog/3_7_12.html</a></li><li>version 3.7.12 - <a href="releaselog/3_7_12.html">releaselog/3_7_12.html</a></li><li>Version 3.7.12.1 - <a href="releaselog/3_7_12_1.html">releaselog/3_7_12_1.html</a></li><li>version 3.7.12.1 - <a href="releaselog/3_7_12_1.html">releaselog/3_7_12_1.html</a></li><li>Version 3.7.13 - <a href="releaselog/3_7_13.html">releaselog/3_7_13.html</a></li><li>version 3.7.13 - <a href="releaselog/3_7_13.html">releaselog/3_7_13.html</a></li><li>Version 3.7.14 - <a href="releaselog/3_7_14.html">releaselog/3_7_14.html</a></li><li>version 3.7.14 - <a href="releaselog/3_7_14.html">releaselog/3_7_14.html</a></li><li>Version 3.7.14.1 - <a href="releaselog/3_7_14_1.html">releaselog/3_7_14_1.html</a></li><li>version 3.7.14.1 - <a href="releaselog/3_7_14_1.html">releaselog/3_7_14_1.html</a></li><li>Version 3.7.15 - <a href="releaselog/3_7_15.html">releaselog/3_7_15.html</a></li><li>version 3.7.15 - <a href="releaselog/3_7_15.html">releaselog/3_7_15.html</a></li><li>Version 3.7.15.1 - <a href="releaselog/3_7_15_1.html">releaselog/3_7_15_1.html</a></li><li>version 3.7.15.1 - <a href="releaselog/3_7_15_1.html">releaselog/3_7_15_1.html</a></li><li>Version 3.7.15.2 - <a href="releaselog/3_7_15_2.html">releaselog/3_7_15_2.html</a></li><li>version 3.7.15.2 - <a href="releaselog/3_7_15_2.html">releaselog/3_7_15_2.html</a></li><li>Version 3.7.16 - <a href="releaselog/3_7_16.html">releaselog/3_7_16.html</a></li><li>version 3.7.16 - <a href="releaselog/3_7_16.html">releaselog/3_7_16.html</a></li><li>Version 3.7.16.1 - <a href="releaselog/3_7_16_1.html">releaselog/3_7_16_1.html</a></li><li>version 3.7.16.1 - <a href="releaselog/3_7_16_1.html">releaselog/3_7_16_1.html</a></li><li>Version 3.7.16.2 - <a href="releaselog/3_7_16_2.html">releaselog/3_7_16_2.html</a></li><li>version 3.7.16.2 - <a href="releaselog/3_7_16_2.html">releaselog/3_7_16_2.html</a></li><li>Version 3.7.17 - <a href="releaselog/3_7_17.html">releaselog/3_7_17.html</a></li><li>version 3.7.17 - <a href="releaselog/3_7_17.html">releaselog/3_7_17.html</a></li><li>Version 3.8.0 - <a href="releaselog/3_8_0.html">releaselog/3_8_0.html</a></li><li>version 3.8.0 - <a href="releaselog/3_8_0.html">releaselog/3_8_0.html</a></li><li>Version 3.8.0.1 - <a href="releaselog/3_8_0_1.html">releaselog/3_8_0_1.html</a></li><li>version 3.8.0.1 - <a href="releaselog/3_8_0_1.html">releaselog/3_8_0_1.html</a></li><li>Version 3.8.0.2 - <a href="releaselog/3_8_0_2.html">releaselog/3_8_0_2.html</a></li><li>version 3.8.0.2 - <a href="releaselog/3_8_0_2.html">releaselog/3_8_0_2.html</a></li><li>Version 3.8.1 - <a href="releaselog/3_8_1.html">releaselog/3_8_1.html</a></li><li>version 3.8.1 - <a href="releaselog/3_8_1.html">releaselog/3_8_1.html</a></li><li>Version 3.8.2 - <a href="releaselog/3_8_2.html">releaselog/3_8_2.html</a></li><li>version 3.8.2 - <a href="releaselog/3_8_2.html">releaselog/3_8_2.html</a></li><li>Version 3.8.3 - <a href="releaselog/3_8_3.html">releaselog/3_8_3.html</a></li><li>version 3.8.3 - <a href="releaselog/3_8_3.html">releaselog/3_8_3.html</a></li><li>Version 3.8.3.1 - <a href="releaselog/3_8_3_1.html">releaselog/3_8_3_1.html</a></li><li>version 3.8.3.1 - <a href="releaselog/3_8_3_1.html">releaselog/3_8_3_1.html</a></li><li>Version 3.8.3.1.0 - <a href="releaselog/3_8_3_1.html">releaselog/3_8_3_1.html</a></li><li>version 3.8.3.1.0 - <a href="releaselog/3_8_3_1.html">releaselog/3_8_3_1.html</a></li><li>Version 3.8.4 - <a href="releaselog/3_8_4.html">releaselog/3_8_4.html</a></li><li>version 3.8.4 - <a href="releaselog/3_8_4.html">releaselog/3_8_4.html</a></li><li>Version 3.8.4.1 - <a href="releaselog/3_8_4_1.html">releaselog/3_8_4_1.html</a></li><li>version 3.8.4.1 - <a href="releaselog/3_8_4_1.html">releaselog/3_8_4_1.html</a></li><li>Version 3.8.4.2 - <a href="releaselog/3_8_4_2.html">releaselog/3_8_4_2.html</a></li><li>version 3.8.4.2 - <a href="releaselog/3_8_4_2.html">releaselog/3_8_4_2.html</a></li><li>Version 3.8.4.3 - <a href="releaselog/3_8_4_3.html">releaselog/3_8_4_3.html</a></li><li>version 3.8.4.3 - <a href="releaselog/3_8_4_3.html">releaselog/3_8_4_3.html</a></li><li>Version 3.8.5 - <a href="releaselog/3_8_5.html">releaselog/3_8_5.html</a></li><li>version 3.8.5 - <a href="releaselog/3_8_5.html">releaselog/3_8_5.html</a></li><li>Version 3.8.6 - <a href="releaselog/3_8_6.html">releaselog/3_8_6.html</a></li><li>version 3.8.6 - <a href="releaselog/3_8_6.html">releaselog/3_8_6.html</a></li><li>Version 3.8.7 - <a href="releaselog/3_8_7.html">releaselog/3_8_7.html</a></li><li>version 3.8.7 - <a href="releaselog/3_8_7.html">releaselog/3_8_7.html</a></li><li>Version 3.8.7.1 - <a href="releaselog/3_8_7_1.html">releaselog/3_8_7_1.html</a></li><li>version 3.8.7.1 - <a href="releaselog/3_8_7_1.html">releaselog/3_8_7_1.html</a></li><li>Version 3.8.7.2 - <a href="releaselog/3_8_7_2.html">releaselog/3_8_7_2.html</a></li><li>version 3.8.7.2 - <a href="releaselog/3_8_7_2.html">releaselog/3_8_7_2.html</a></li><li>Version 3.8.7.3 - <a href="releaselog/3_8_7_3.html">releaselog/3_8_7_3.html</a></li><li>version 3.8.7.3 - <a href="releaselog/3_8_7_3.html">releaselog/3_8_7_3.html</a></li><li>Version 3.8.7.4 - <a href="releaselog/3_8_7_4.html">releaselog/3_8_7_4.html</a></li><li>version 3.8.7.4 - <a href="releaselog/3_8_7_4.html">releaselog/3_8_7_4.html</a></li><li>Version 3.8.8 - <a href="releaselog/3_8_8.html">releaselog/3_8_8.html</a></li><li>version 3.8.8 - <a href="releaselog/3_8_8.html">releaselog/3_8_8.html</a></li><li>Version 3.8.8.1 - <a href="releaselog/3_8_8_1.html">releaselog/3_8_8_1.html</a></li><li>version 3.8.8.1 - <a href="releaselog/3_8_8_1.html">releaselog/3_8_8_1.html</a></li><li>Version 3.8.8.2 - <a href="releaselog/3_8_8_2.html">releaselog/3_8_8_2.html</a></li><li>version 3.8.8.2 - <a href="releaselog/3_8_8_2.html">releaselog/3_8_8_2.html</a></li><li>Version 3.8.8.3 - <a href="releaselog/3_8_8_3.html">releaselog/3_8_8_3.html</a></li><li>version 3.8.8.3 - <a href="releaselog/3_8_8_3.html">releaselog/3_8_8_3.html</a></li><li>Version 3.8.9 - <a href="releaselog/3_8_9.html">releaselog/3_8_9.html</a></li><li>version 3.8.9 - <a href="releaselog/3_8_9.html">releaselog/3_8_9.html</a></li><li>Version 3.8.10 - <a href="releaselog/3_8_10.html">releaselog/3_8_10.html</a></li><li>version 3.8.10 - <a href="releaselog/3_8_10.html">releaselog/3_8_10.html</a></li><li>Version 3.8.10.1 - <a href="releaselog/3_8_10_1.html">releaselog/3_8_10_1.html</a></li><li>version 3.8.10.1 - <a href="releaselog/3_8_10_1.html">releaselog/3_8_10_1.html</a></li><li>Version 3.8.10.2 - <a href="releaselog/3_8_10_2.html">releaselog/3_8_10_2.html</a></li><li>version 3.8.10.2 - <a href="releaselog/3_8_10_2.html">releaselog/3_8_10_2.html</a></li><li>Version 3.8.11 - <a href="releaselog/3_8_11.html">releaselog/3_8_11.html</a></li><li>version 3.8.11 - <a href="releaselog/3_8_11.html">releaselog/3_8_11.html</a></li><li>Version 3.8.11.1 - <a href="releaselog/3_8_11_1.html">releaselog/3_8_11_1.html</a></li><li>version 3.8.11.1 - <a href="releaselog/3_8_11_1.html">releaselog/3_8_11_1.html</a></li><li>Version 3.9.0 - <a href="releaselog/3_9_0.html">releaselog/3_9_0.html</a></li><li>version 3.9.0 - <a href="releaselog/3_9_0.html">releaselog/3_9_0.html</a></li><li>Version 3.9.1 - <a href="releaselog/3_9_1.html">releaselog/3_9_1.html</a></li><li>version 3.9.1 - <a href="releaselog/3_9_1.html">releaselog/3_9_1.html</a></li><li>Version 3.9.2 - <a href="releaselog/3_9_2.html">releaselog/3_9_2.html</a></li><li>version 3.9.2 - <a href="releaselog/3_9_2.html">releaselog/3_9_2.html</a></li><li>Version 3.9.3 - <a href="releaselog/3_9_3.html">releaselog/3_9_3.html</a></li><li>version 3.9.3 - <a href="releaselog/3_9_3.html">releaselog/3_9_3.html</a></li><li>Version 3.10.0 - <a href="releaselog/3_10_0.html">releaselog/3_10_0.html</a></li><li>version 3.10.0 - <a href="releaselog/3_10_0.html">releaselog/3_10_0.html</a></li><li>Version 3.10.1 - <a href="releaselog/3_10_1.html">releaselog/3_10_1.html</a></li><li>version 3.10.1 - <a href="releaselog/3_10_1.html">releaselog/3_10_1.html</a></li><li>Version 3.10.2 - <a href="releaselog/3_10_2.html">releaselog/3_10_2.html</a></li><li>version 3.10.2 - <a href="releaselog/3_10_2.html">releaselog/3_10_2.html</a></li><li>Version 3.11.0 - <a href="releaselog/3_11_0.html">releaselog/3_11_0.html</a></li><li>version 3.11.0 - <a href="releaselog/3_11_0.html">releaselog/3_11_0.html</a></li><li>Version 3.11.1 - <a href="releaselog/3_11_1.html">releaselog/3_11_1.html</a></li><li>version 3.11.1 - <a href="releaselog/3_11_1.html">releaselog/3_11_1.html</a></li><li>Version 3.12.0 - <a href="releaselog/3_12_0.html">releaselog/3_12_0.html</a></li><li>version 3.12.0 - <a href="releaselog/3_12_0.html">releaselog/3_12_0.html</a></li><li>version 3.12.0 page size change - <a href="pgszchng2016.html">pgszchng2016.html</a></li><li>Version 3.12.1 - <a href="releaselog/3_12_1.html">releaselog/3_12_1.html</a></li><li>version 3.12.1 - <a href="releaselog/3_12_1.html">releaselog/3_12_1.html</a></li><li>Version 3.12.2 - <a href="releaselog/3_12_2.html">releaselog/3_12_2.html</a></li><li>version 3.12.2 - <a href="releaselog/3_12_2.html">releaselog/3_12_2.html</a></li><li>Version 3.13.0 - <a href="releaselog/3_13_0.html">releaselog/3_13_0.html</a></li><li>version 3.13.0 - <a href="releaselog/3_13_0.html">releaselog/3_13_0.html</a></li><li>Version 3.13.0.0 - <a href="releaselog/3_13_0.html">releaselog/3_13_0.html</a></li><li>version 3.13.0.0 - <a href="releaselog/3_13_0.html">releaselog/3_13_0.html</a></li><li>Version 3.14 - <a href="releaselog/3_14.html">releaselog/3_14.html</a></li><li>version 3.14 - <a href="releaselog/3_14.html">releaselog/3_14.html</a></li><li>Version 3.14.0 - <a href="releaselog/3_14.html">releaselog/3_14.html</a></li><li>version 3.14.0 - <a href="releaselog/3_14.html">releaselog/3_14.html</a></li><li>Version 3.14.1 - <a href="releaselog/3_14_1.html">releaselog/3_14_1.html</a></li><li>version 3.14.1 - <a href="releaselog/3_14_1.html">releaselog/3_14_1.html</a></li><li>Version 3.14.2 - <a href="releaselog/3_14_2.html">releaselog/3_14_2.html</a></li><li>version 3.14.2 - <a href="releaselog/3_14_2.html">releaselog/3_14_2.html</a></li><li>Version 3.15.0 - <a href="releaselog/3_15_0.html">releaselog/3_15_0.html</a></li><li>version 3.15.0 - <a href="releaselog/3_15_0.html">releaselog/3_15_0.html</a></li><li>Version 3.15.1 - <a href="releaselog/3_15_1.html">releaselog/3_15_1.html</a></li><li>version 3.15.1 - <a href="releaselog/3_15_1.html">releaselog/3_15_1.html</a></li><li>Version 3.15.2 - <a href="releaselog/3_15_2.html">releaselog/3_15_2.html</a></li><li>version 3.15.2 - <a href="releaselog/3_15_2.html">releaselog/3_15_2.html</a></li><li>Version 3.16.0 - <a href="releaselog/3_16_0.html">releaselog/3_16_0.html</a></li><li>version 3.16.0 - <a href="releaselog/3_16_0.html">releaselog/3_16_0.html</a></li><li>Version 3.16.1 - <a href="releaselog/3_16_1.html">releaselog/3_16_1.html</a></li><li>version 3.16.1 - <a href="releaselog/3_16_1.html">releaselog/3_16_1.html</a></li><li>Version 3.16.2 - <a href="releaselog/3_16_2.html">releaselog/3_16_2.html</a></li><li>version 3.16.2 - <a href="releaselog/3_16_2.html">releaselog/3_16_2.html</a></li><li>Version 3.17.0 - <a href="releaselog/3_17_0.html">releaselog/3_17_0.html</a></li><li>version 3.17.0 - <a href="releaselog/3_17_0.html">releaselog/3_17_0.html</a></li><li>Version 3.18.0 - <a href="releaselog/3_18_0.html">releaselog/3_18_0.html</a></li><li>version 3.18.0 - <a href="releaselog/3_18_0.html">releaselog/3_18_0.html</a></li><li>Version 3.18.1 - <a href="releaselog/3_18_1.html">releaselog/3_18_1.html</a></li><li>version 3.18.1 - <a href="releaselog/3_18_1.html">releaselog/3_18_1.html</a></li><li>Version 3.18.2 - <a href="releaselog/3_18_2.html">releaselog/3_18_2.html</a></li><li>version 3.18.2 - <a href="releaselog/3_18_2.html">releaselog/3_18_2.html</a></li><li>Version 3.19.0 - <a href="releaselog/3_19_0.html">releaselog/3_19_0.html</a></li><li>version 3.19.0 - <a href="releaselog/3_19_0.html">releaselog/3_19_0.html</a></li><li>Version 3.19.1 - <a href="releaselog/3_19_1.html">releaselog/3_19_1.html</a></li><li>version 3.19.1 - <a href="releaselog/3_19_1.html">releaselog/3_19_1.html</a></li><li>Version 3.19.2 - <a href="releaselog/3_19_2.html">releaselog/3_19_2.html</a></li><li>version 3.19.2 - <a href="releaselog/3_19_2.html">releaselog/3_19_2.html</a></li><li>Version 3.19.3 - <a href="releaselog/3_19_3.html">releaselog/3_19_3.html</a></li><li>version 3.19.3 - <a href="releaselog/3_19_3.html">releaselog/3_19_3.html</a></li><li>Version 3.20.0 - <a href="releaselog/3_20_0.html">releaselog/3_20_0.html</a></li><li>version 3.20.0 - <a href="releaselog/3_20_0.html">releaselog/3_20_0.html</a></li><li>Version 3.20.1 - <a href="releaselog/3_20_1.html">releaselog/3_20_1.html</a></li><li>version 3.20.1 - <a href="releaselog/3_20_1.html">releaselog/3_20_1.html</a></li><li>Version 3.21.0 - <a href="releaselog/3_21_0.html">releaselog/3_21_0.html</a></li><li>version 3.21.0 - <a href="releaselog/3_21_0.html">releaselog/3_21_0.html</a></li><li>Version 3.22.0 - <a href="releaselog/3_22_0.html">releaselog/3_22_0.html</a></li><li>version 3.22.0 - <a href="releaselog/3_22_0.html">releaselog/3_22_0.html</a></li><li>Version 3.23.0 - <a href="releaselog/3_23_0.html">releaselog/3_23_0.html</a></li><li>version 3.23.0 - <a href="releaselog/3_23_0.html">releaselog/3_23_0.html</a></li><li>Version 3.23.0.0 - <a href="releaselog/3_23_0.html">releaselog/3_23_0.html</a></li><li>version 3.23.0.0 - <a href="releaselog/3_23_0.html">releaselog/3_23_0.html</a></li><li>Version 3.23.1 - <a href="releaselog/3_23_1.html">releaselog/3_23_1.html</a></li><li>version 3.23.1 - <a href="releaselog/3_23_1.html">releaselog/3_23_1.html</a></li><li>Version 3.23.1.0 - <a href="releaselog/3_23_1.html">releaselog/3_23_1.html</a></li><li>version 3.23.1.0 - <a href="releaselog/3_23_1.html">releaselog/3_23_1.html</a></li><li>Version 3.24.0 - <a href="releaselog/3_24_0.html">releaselog/3_24_0.html</a></li><li>version 3.24.0 - <a href="releaselog/3_24_0.html">releaselog/3_24_0.html</a></li><li>Version 3.25.0 - <a href="releaselog/3_25_0.html">releaselog/3_25_0.html</a></li><li>version 3.25.0 - <a href="releaselog/3_25_0.html">releaselog/3_25_0.html</a></li><li>Version 3.25.1 - <a href="releaselog/3_25_1.html">releaselog/3_25_1.html</a></li><li>version 3.25.1 - <a href="releaselog/3_25_1.html">releaselog/3_25_1.html</a></li><li>Version 3.25.2 - <a href="releaselog/3_25_2.html">releaselog/3_25_2.html</a></li><li>version 3.25.2 - <a href="releaselog/3_25_2.html">releaselog/3_25_2.html</a></li><li>Version 3.25.3 - <a href="releaselog/3_25_3.html">releaselog/3_25_3.html</a></li><li>version 3.25.3 - <a href="releaselog/3_25_3.html">releaselog/3_25_3.html</a></li><li>Version 3.26.0 - <a href="releaselog/3_26_0.html">releaselog/3_26_0.html</a></li><li>version 3.26.0 - <a href="releaselog/3_26_0.html">releaselog/3_26_0.html</a></li><li>Version 3.27.0 - <a href="releaselog/3_27_0.html">releaselog/3_27_0.html</a></li><li>version 3.27.0 - <a href="releaselog/3_27_0.html">releaselog/3_27_0.html</a></li><li>Version 3.27.1 - <a href="releaselog/3_27_1.html">releaselog/3_27_1.html</a></li><li>version 3.27.1 - <a href="releaselog/3_27_1.html">releaselog/3_27_1.html</a></li><li>Version 3.27.2 - <a href="releaselog/3_27_2.html">releaselog/3_27_2.html</a></li><li>version 3.27.2 - <a href="releaselog/3_27_2.html">releaselog/3_27_2.html</a></li><li>Version 3.28.0 - <a href="releaselog/3_28_0.html">releaselog/3_28_0.html</a></li><li>version 3.28.0 - <a href="releaselog/3_28_0.html">releaselog/3_28_0.html</a></li><li>Version 3.29.0 - <a href="releaselog/3_29_0.html">releaselog/3_29_0.html</a></li><li>version 3.29.0 - <a href="releaselog/3_29_0.html">releaselog/3_29_0.html</a></li><li>Version 3.30.0 - <a href="releaselog/3_30_0.html">releaselog/3_30_0.html</a></li><li>version 3.30.0 - <a href="releaselog/3_30_0.html">releaselog/3_30_0.html</a></li><li>Version 3.30.1 - <a href="releaselog/3_30_1.html">releaselog/3_30_1.html</a></li><li>version 3.30.1 - <a href="releaselog/3_30_1.html">releaselog/3_30_1.html</a></li><li>Version 3.31.0 - <a href="releaselog/3_31_0.html">releaselog/3_31_0.html</a></li><li>version 3.31.0 - <a href="releaselog/3_31_0.html">releaselog/3_31_0.html</a></li><li>Version 3.31.1 - <a href="releaselog/3_31_1.html">releaselog/3_31_1.html</a></li><li>version 3.31.1 - <a href="releaselog/3_31_1.html">releaselog/3_31_1.html</a></li><li>Version 3.32.0 - <a href="releaselog/3_32_0.html">releaselog/3_32_0.html</a></li><li>version 3.32.0 - <a href="releaselog/3_32_0.html">releaselog/3_32_0.html</a></li><li>Version 3.32.1 - <a href="releaselog/3_32_1.html">releaselog/3_32_1.html</a></li><li>version 3.32.1 - <a href="releaselog/3_32_1.html">releaselog/3_32_1.html</a></li><li>Version 3.32.2 - <a href="releaselog/3_32_2.html">releaselog/3_32_2.html</a></li><li>version 3.32.2 - <a href="releaselog/3_32_2.html">releaselog/3_32_2.html</a></li><li>Version 3.32.3 - <a href="releaselog/3_32_3.html">releaselog/3_32_3.html</a></li><li>version 3.32.3 - <a href="releaselog/3_32_3.html">releaselog/3_32_3.html</a></li><li>Version 3.33.0 - <a href="releaselog/3_33_0.html">releaselog/3_33_0.html</a></li><li>version 3.33.0 - <a href="releaselog/3_33_0.html">releaselog/3_33_0.html</a></li><li>Version 3.33.0.0 - <a href="releaselog/3_33_0.html">releaselog/3_33_0.html</a></li><li>version 3.33.0.0 - <a href="releaselog/3_33_0.html">releaselog/3_33_0.html</a></li><li>Version 3.34.0 - <a href="releaselog/3_34_0.html">releaselog/3_34_0.html</a></li><li>version 3.34.0 - <a href="releaselog/3_34_0.html">releaselog/3_34_0.html</a></li><li>Version 3.34.1 - <a href="releaselog/3_34_1.html">releaselog/3_34_1.html</a></li><li>version 3.34.1 - <a href="releaselog/3_34_1.html">releaselog/3_34_1.html</a></li><li>Version 3.35.0 - <a href="releaselog/3_35_0.html">releaselog/3_35_0.html</a></li><li>version 3.35.0 - <a href="releaselog/3_35_0.html">releaselog/3_35_0.html</a></li><li>Version 3.35.1 - <a href="releaselog/3_35_1.html">releaselog/3_35_1.html</a></li><li>version 3.35.1 - <a href="releaselog/3_35_1.html">releaselog/3_35_1.html</a></li><li>Version 3.35.2 - <a href="releaselog/3_35_2.html">releaselog/3_35_2.html</a></li><li>version 3.35.2 - <a href="releaselog/3_35_2.html">releaselog/3_35_2.html</a></li><li>Version 3.35.3 - <a href="releaselog/3_35_3.html">releaselog/3_35_3.html</a></li><li>version 3.35.3 - <a href="releaselog/3_35_3.html">releaselog/3_35_3.html</a></li><li>Version 3.35.4 - <a href="releaselog/3_35_4.html">releaselog/3_35_4.html</a></li><li>version 3.35.4 - <a href="releaselog/3_35_4.html">releaselog/3_35_4.html</a></li><li>Version 3.35.5 - <a href="releaselog/3_35_5.html">releaselog/3_35_5.html</a></li><li>version 3.35.5 - <a href="releaselog/3_35_5.html">releaselog/3_35_5.html</a></li><li>Version 3.36.0 - <a href="releaselog/3_36_0.html">releaselog/3_36_0.html</a></li><li>version 3.36.0 - <a href="releaselog/3_36_0.html">releaselog/3_36_0.html</a></li><li>Version 3.37.0 - <a href="releaselog/3_37_0.html">releaselog/3_37_0.html</a></li><li>version 3.37.0 - <a href="releaselog/3_37_0.html">releaselog/3_37_0.html</a></li><li>Version 3.37.1 - <a href="releaselog/3_37_1.html">releaselog/3_37_1.html</a></li><li>version 3.37.1 - <a href="releaselog/3_37_1.html">releaselog/3_37_1.html</a></li><li>Version 3.37.2 - <a href="releaselog/3_37_2.html">releaselog/3_37_2.html</a></li><li>version 3.37.2 - <a href="releaselog/3_37_2.html">releaselog/3_37_2.html</a></li><li>Version 3.38.0 - <a href="releaselog/3_38_0.html">releaselog/3_38_0.html</a></li><li>version 3.38.0 - <a href="releaselog/3_38_0.html">releaselog/3_38_0.html</a></li><li>Version 3.38.1 - <a href="releaselog/3_38_1.html">releaselog/3_38_1.html</a></li><li>version 3.38.1 - <a href="releaselog/3_38_1.html">releaselog/3_38_1.html</a></li><li>Version 3.38.2 - <a href="releaselog/3_38_2.html">releaselog/3_38_2.html</a></li><li>version 3.38.2 - <a href="releaselog/3_38_2.html">releaselog/3_38_2.html</a></li><li>Version 3.38.3 - <a href="releaselog/3_38_3.html">releaselog/3_38_3.html</a></li><li>version 3.38.3 - <a href="releaselog/3_38_3.html">releaselog/3_38_3.html</a></li><li>Version 3.38.4 - <a href="releaselog/3_38_4.html">releaselog/3_38_4.html</a></li><li>version 3.38.4 - <a href="releaselog/3_38_4.html">releaselog/3_38_4.html</a></li><li>Version 3.38.5 - <a href="releaselog/3_38_5.html">releaselog/3_38_5.html</a></li><li>version 3.38.5 - <a href="releaselog/3_38_5.html">releaselog/3_38_5.html</a></li><li>Version 3.39.0 - <a href="releaselog/3_39_0.html">releaselog/3_39_0.html</a></li><li>version 3.39.0 - <a href="releaselog/3_39_0.html">releaselog/3_39_0.html</a></li><li>Version 3.39.1 - <a href="releaselog/3_39_1.html">releaselog/3_39_1.html</a></li><li>version 3.39.1 - <a href="releaselog/3_39_1.html">releaselog/3_39_1.html</a></li><li>Version 3.39.2 - <a href="releaselog/3_39_2.html">releaselog/3_39_2.html</a></li><li>version 3.39.2 - <a href="releaselog/3_39_2.html">releaselog/3_39_2.html</a></li><li>Version 3.39.3 - <a href="releaselog/3_39_3.html">releaselog/3_39_3.html</a></li><li>version 3.39.3 - <a href="releaselog/3_39_3.html">releaselog/3_39_3.html</a></li><li>Version 3.39.4 - <a href="releaselog/3_39_4.html">releaselog/3_39_4.html</a></li><li>version 3.39.4 - <a href="releaselog/3_39_4.html">releaselog/3_39_4.html</a></li><li>Version 3.40.0 - <a href="releaselog/3_40_0.html">releaselog/3_40_0.html</a></li><li>version 3.40.0 - <a href="releaselog/3_40_0.html">releaselog/3_40_0.html</a></li><li>Version 3.40.1 - <a href="releaselog/3_40_1.html">releaselog/3_40_1.html</a></li><li>version 3.40.1 - <a href="releaselog/3_40_1.html">releaselog/3_40_1.html</a></li><li>Version 3.41.0 - <a href="releaselog/3_41_0.html">releaselog/3_41_0.html</a></li><li>version 3.41.0 - <a href="releaselog/3_41_0.html">releaselog/3_41_0.html</a></li><li>Version 3.41.1 - <a href="releaselog/3_41_1.html">releaselog/3_41_1.html</a></li><li>version 3.41.1 - <a href="releaselog/3_41_1.html">releaselog/3_41_1.html</a></li><li>Version 3.41.2 - <a href="releaselog/3_41_2.html">releaselog/3_41_2.html</a></li><li>version 3.41.2 - <a href="releaselog/3_41_2.html">releaselog/3_41_2.html</a></li><li>Version 3.42.0 - <a href="releaselog/3_42_0.html">releaselog/3_42_0.html</a></li><li>version 3.42.0 - <a href="releaselog/3_42_0.html">releaselog/3_42_0.html</a></li><li>Version 3.43.0 - <a href="releaselog/3_43_0.html">releaselog/3_43_0.html</a></li><li>version 3.43.0 - <a href="releaselog/3_43_0.html">releaselog/3_43_0.html</a></li><li>Version 3.43.0.0 - <a href="releaselog/3_43_0.html">releaselog/3_43_0.html</a></li><li>version 3.43.0.0 - <a href="releaselog/3_43_0.html">releaselog/3_43_0.html</a></li><li>Version 3.43.1 - <a href="releaselog/3_43_1.html">releaselog/3_43_1.html</a></li><li>version 3.43.1 - <a href="releaselog/3_43_1.html">releaselog/3_43_1.html</a></li><li>Version 3.43.1.0 - <a href="releaselog/3_43_1.html">releaselog/3_43_1.html</a></li><li>version 3.43.1.0 - <a href="releaselog/3_43_1.html">releaselog/3_43_1.html</a></li><li>Version 3.43.2 - <a href="releaselog/3_43_2.html">releaselog/3_43_2.html</a></li><li>version 3.43.2 - <a href="releaselog/3_43_2.html">releaselog/3_43_2.html</a></li><li>Version 3.43.2.0 - <a href="releaselog/3_43_2.html">releaselog/3_43_2.html</a></li><li>version 3.43.2.0 - <a href="releaselog/3_43_2.html">releaselog/3_43_2.html</a></li><li>Version 3.44.0 - <a href="releaselog/3_44_0.html">releaselog/3_44_0.html</a></li><li>version 3.44.0 - <a href="releaselog/3_44_0.html">releaselog/3_44_0.html</a></li><li>Version 3.44.1 - <a href="releaselog/3_44_1.html">releaselog/3_44_1.html</a></li><li>version 3.44.1 - <a href="releaselog/3_44_1.html">releaselog/3_44_1.html</a></li><li>Version 3.44.2 - <a href="releaselog/3_44_2.html">releaselog/3_44_2.html</a></li><li>version 3.44.2 - <a href="releaselog/3_44_2.html">releaselog/3_44_2.html</a></li><li>Version 3.45.0 - <a href="releaselog/3_45_0.html">releaselog/3_45_0.html</a></li><li>version 3.45.0 - <a href="releaselog/3_45_0.html">releaselog/3_45_0.html</a></li><li>Version 3.45.1 - <a href="releaselog/3_45_1.html">releaselog/3_45_1.html</a></li><li>version 3.45.1 - <a href="releaselog/3_45_1.html">releaselog/3_45_1.html</a></li><li>Version 3.45.2 - <a href="releaselog/3_45_2.html">releaselog/3_45_2.html</a></li><li>version 3.45.2 - <a href="releaselog/3_45_2.html">releaselog/3_45_2.html</a></li><li>Version 3.45.3 - <a href="releaselog/3_45_3.html">releaselog/3_45_3.html</a></li><li>version 3.45.3 - <a href="releaselog/3_45_3.html">releaselog/3_45_3.html</a></li><li>Version 3.46.0 - <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a></li><li>version 3.46.0 - <a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a></li><li>version method - <a href="tclsqlite.html#version">tclsqlite.html#version</a></li><li>version numbering conventions - <a href="versionnumbers.html">versionnumbers.html</a></li><li>version-valid-for number - <a href="fileformat2.html#validfor">fileformat2.html#validfor</a></li><li>VFS - <a href="vfs.html">vfs.html</a></li><li>vfs query parameter - <a href="uri.html#urivfs">uri.html#urivfs</a></li><li>VFS shim - <a href="vfs.html#shim">vfs.html#shim</a></li><li>VFS shims - <a href="vfs.html#shim">vfs.html#shim</a></li><li>VFSes - <a href="vfs.html">vfs.html</a></li><li>VIEW - <a href="lang_createview.html">lang_createview.html</a></li><li>view - <a href="lang_createview.html">lang_createview.html</a></li><li>views - <a href="lang_createview.html">lang_createview.html</a></li><li>virtual machine - <a href="opcode.html">opcode.html</a></li><li>virtual machine instructions - <a href="opcode.html">opcode.html</a></li><li>virtual table - <a href="vtab.html">vtab.html</a></li><li>virtual table configuration option - <a href="c3ref/c_vtab_constraint_support.html">c3ref/c_vtab_constraint_support.html</a></li><li>virtual table configuration options - <a href="c3ref/c_vtab_constraint_support.html">c3ref/c_vtab_constraint_support.html</a></li><li>virtual table cursor - <a href="c3ref/vtab_cursor.html">c3ref/vtab_cursor.html</a></li><li>virtual table list - <a href="vtablist.html">vtablist.html</a></li><li>virtual table module - <a href="c3ref/module.html">c3ref/module.html</a></li><li>virtual tables - <a href="vtab.html">vtab.html</a></li><li>vulnerabilities - <a href="cves.html">cves.html</a></li><li>w - <a href="printf.html#percentw">printf.html#percentw</a></li><li>WAL - <a href="wal.html">wal.html</a></li><li>WAL backwards compatibility - <a href="wal.html#bkwrds">wal.html#bkwrds</a></li><li>WAL checksum algorithm - <a href="fileformat2.html#walcksm">fileformat2.html#walcksm</a></li><li>WAL concurrency - <a href="wal.html#concurrency">wal.html#concurrency</a></li><li>WAL file - <a href="wal.html#walfile">wal.html#walfile</a></li><li>WAL file format - <a href="fileformat2.html#walformat">fileformat2.html#walformat</a></li><li>WAL format - <a href="fileformat2.html#walformat">fileformat2.html#walformat</a></li><li>WAL mode - <a href="wal.html">wal.html</a></li><li>WAL read algorithm - <a href="fileformat2.html#walread">fileformat2.html#walread</a></li><li>WAL reset - <a href="fileformat2.html#walreset">fileformat2.html#walreset</a></li><li>WAL without shared memory - <a href="wal.html#noshm">wal.html#noshm</a></li><li>wal-index - <a href="walformat.html#shm">walformat.html#shm</a></li><li>WAL-index File Format - <a href="walformat.html#walidxfmt">walformat.html#walidxfmt</a></li><li>WAL-index format - <a href="walformat.html#walidxfmt">walformat.html#walidxfmt</a></li><li>WAL-mode crash recovery - <a href="walformat.html#recovery">walformat.html#recovery</a></li><li>WAL-mode File Format - <a href="walformat.html">walformat.html</a></li><li>WAL-mode locks - <a href="walformat.html#locks">walformat.html#locks</a></li><li>WAL-mode read blocking - <a href="wal.html#busy">wal.html#busy</a></li><li>wal_autocheckpoint - <a href="pragma.html#pragma_wal_autocheckpoint">pragma.html#pragma_wal_autocheckpoint</a></li><li>wal_autocheckpoint pragma - <a href="pragma.html#pragma_wal_autocheckpoint">pragma.html#pragma_wal_autocheckpoint</a></li><li>wal_checkpoint - <a href="pragma.html#pragma_wal_checkpoint">pragma.html#pragma_wal_checkpoint</a></li><li>wal_checkpoint pragma - <a href="pragma.html#pragma_wal_checkpoint">pragma.html#pragma_wal_checkpoint</a></li><li>wal_hook method - <a href="tclsqlite.html#wal_hook">tclsqlite.html#wal_hook</a></li><li>Warranty of Title - <a href="copyright.html#warrantyoftitle">copyright.html#warrantyoftitle</a></li><li>What If OpenOffice Used SQLite - <a href="affcase1.html">affcase1.html</a></li><li>when to use WITHOUT ROWID - <a href="withoutrowid.html#wtu">withoutrowid.html#wtu</a></li><li>WHERE clause - <a href="lang_select.html#whereclause">lang_select.html#whereclause</a></li><li>WHERE-clause push-down optimization - <a href="optoverview.html#pushdown">optoverview.html#pushdown</a></li><li>why ALTER TABLE is so difficult - <a href="lang_altertable.html#altertableishard">lang_altertable.html#altertableishard</a></li><li>Why SQLite Uses Bytecode - <a href="whybytecode.html">whybytecode.html</a></li><li>Win32 native memory allocator - <a href="malloc.html#win32heap">malloc.html#win32heap</a></li><li>window chaining - <a href="windowfunctions.html#wchaining">windowfunctions.html#wchaining</a></li><li>window function - <a href="windowfunctions.html">windowfunctions.html</a></li><li>Window functions - <a href="windowfunctions.html">windowfunctions.html</a></li><li>window functions - <a href="windowfunctions.html">windowfunctions.html</a></li><li>window-defn - <a href="syntax/window-defn.html">syntax/window-defn.html</a></li><li>window-defn syntax diagram - <a href="syntax/window-defn.html">syntax/window-defn.html</a></li><li>window-function-invocation - <a href="syntax/window-function-invocation.html">syntax/window-function-invocation.html</a></li><li>window-function-invocation syntax diagram - <a href="syntax/window-function-invocation.html">syntax/window-function-invocation.html</a></li><li>winfunc - <a href="windowfunctions.html">windowfunctions.html</a></li><li>WITH - <a href="lang_with.html">lang_with.html</a></li><li>with - <a href="lang_with.html">lang_with.html</a></li><li>WITH clause - <a href="lang_with.html">lang_with.html</a></li><li>with-clause - <a href="syntax/with-clause.html">syntax/with-clause.html</a></li><li>with-clause syntax diagram - <a href="syntax/with-clause.html">syntax/with-clause.html</a></li><li>WITHOUT ROWID - <a href="withoutrowid.html">withoutrowid.html</a></li><li>WITHOUT rowid - <a href="withoutrowid.html">withoutrowid.html</a></li><li>WITHOUT ROWID virtual table - <a href="vtab.html#worid">vtab.html#worid</a></li><li>WITHOUT ROWID virtual tables - <a href="vtab.html#worid">vtab.html#worid</a></li><li>wrapping text - <a href="cli.html#wrap1">cli.html#wrap1</a></li><li>writable_schema - <a href="pragma.html#pragma_writable_schema">pragma.html#pragma_writable_schema</a></li><li>writable_schema pragma - <a href="pragma.html#pragma_writable_schema">pragma.html#pragma_writable_schema</a></li><li>write-ahead log - <a href="wal.html">wal.html</a></li><li>writer starvation - <a href="lockingv3.html#writer_starvation">lockingv3.html#writer_starvation</a></li><li>xBegin - <a href="vtab.html#xBegin">vtab.html#xBegin</a></li><li>xBestIndex - <a href="vtab.html#xbestindex">vtab.html#xbestindex</a></li><li>xColumn - <a href="vtab.html#xcolumn">vtab.html#xcolumn</a></li><li>xCommit - <a href="vtab.html#xcommit">vtab.html#xcommit</a></li><li>xConnect - <a href="vtab.html#xconnect">vtab.html#xconnect</a></li><li>xCreate - <a href="vtab.html#xcreate">vtab.html#xcreate</a></li><li>xDestroy - <a href="vtab.html#sqlite3_module.xDestroy">vtab.html#sqlite3_module.xDestroy</a></li><li>xDisconnect - <a href="vtab.html#xdisconnect">vtab.html#xdisconnect</a></li><li>xEof - <a href="vtab.html#xeof">vtab.html#xeof</a></li><li>xFilter - <a href="vtab.html#xfilter">vtab.html#xfilter</a></li><li>xFindFunction - <a href="vtab.html#xfindfunction">vtab.html#xfindfunction</a></li><li>xIntegrity - <a href="vtab.html#xintegrity">vtab.html#xintegrity</a></li><li>xIntegrity method - <a href="vtab.html#xintegrity">vtab.html#xintegrity</a></li><li>xNext - <a href="vtab.html#xnext">vtab.html#xnext</a></li><li>xQueryFunc RTree callback - <a href="rtree.html#xquery">rtree.html#xquery</a></li><li>xRelease - <a href="vtab.html#xsavepoint">vtab.html#xsavepoint</a></li><li>xRename - <a href="vtab.html#xrename">vtab.html#xrename</a></li><li>xRollback - <a href="vtab.html#xrollback">vtab.html#xrollback</a></li><li>xRollbackTo - <a href="vtab.html#xsavepoint">vtab.html#xsavepoint</a></li><li>xRowid - <a href="vtab.html#xrowid">vtab.html#xrowid</a></li><li>xSavepoint - <a href="vtab.html#xsavepoint">vtab.html#xsavepoint</a></li><li>xShadowName - <a href="vtab.html#xshadowname">vtab.html#xshadowname</a></li><li>xUpdate - <a href="vtab.html#xupdate">vtab.html#xupdate</a></li><li>YYSTACKDEPTH - <a href="compile.html#yystackdepth">compile.html#yystackdepth</a></li><li>YYTRACKMAXSTACKDEPTH - <a href="compile.html#yytrackmaxstackdepth">compile.html#yytrackmaxstackdepth</a></li><li>z - <a href="printf.html#percentz">printf.html#percentz</a></li><li>zero-configuration - <a href="zeroconf.html">zeroconf.html</a></li><li>zero-malloc memory allocator - <a href="malloc.html#memsys5">malloc.html#memsys5</a></li><li>zeroblob - <a href="lang_corefunc.html#zeroblob">lang_corefunc.html#zeroblob</a></li><li>zeroblob SQL function - <a href="lang_corefunc.html#zeroblob">lang_corefunc.html#zeroblob</a></li><li>ZIP file as database - <a href="cli.html#zipdb">cli.html#zipdb</a></li><li>zipfile - <a href="zipfile.html">zipfile.html</a></li><li>Zipfile virtual table - <a href="zipfile.html">zipfile.html</a></li></ul><p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/wrap.tcl?m=08af34fe24">2023-03-31 19:57:15</a> UTC </small></i></p> diff --git a/www/doc_pagelink_crossref.html b/www/doc_pagelink_crossref.html index cb003a0..3208c37 100644 --- a/www/doc_pagelink_crossref.html +++ b/www/doc_pagelink_crossref.html @@ -376,7 +376,7 @@ antiRobotDefense(); <li><a href="c3ref/int64.html">c3ref/int64.html</a> → <a href="c3ref/c_config_covering_index_scan.html">c3ref/c_config_covering_index_scan.html</a> <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a> <a href="c3ref/c_scanstat_est.html">c3ref/c_scanstat_est.html</a> <a href="c3ref/objlist.html">c3ref/objlist.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="windowfunctions.html">windowfunctions.html</a> </li> <li><a href="c3ref/interrupt.html">c3ref/interrupt.html</a> → -<a href="arch.html">arch.html</a> <a href="c3ref/funclist.html">c3ref/funclist.html</a> <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="pragma.html">pragma.html</a> <a href="rescode.html">rescode.html</a> <a href="security.html">security.html</a> <a href="tclsqlite.html">tclsqlite.html</a> </li> +<a href="arch.html">arch.html</a> <a href="c3ref/funclist.html">c3ref/funclist.html</a> <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="rescode.html">rescode.html</a> <a href="security.html">security.html</a> <a href="tclsqlite.html">tclsqlite.html</a> </li> <li><a href="c3ref/intro.html">c3ref/intro.html</a> → <a href="about.html">about.html</a> <a href="arch.html">arch.html</a> <a href="c3ref/aggregate_context.html">c3ref/aggregate_context.html</a> <a href="c3ref/aggregate_count.html">c3ref/aggregate_count.html</a> <a href="c3ref/api_routines.html">c3ref/api_routines.html</a> <a href="c3ref/auto_extension.html">c3ref/auto_extension.html</a> <a href="c3ref/autovacuum_pages.html">c3ref/autovacuum_pages.html</a> <a href="c3ref/backup.html">c3ref/backup.html</a> <a href="c3ref/backup_finish.html">c3ref/backup_finish.html</a> <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a> <a href="c3ref/bind_parameter_count.html">c3ref/bind_parameter_count.html</a> <a href="c3ref/bind_parameter_index.html">c3ref/bind_parameter_index.html</a> <a href="c3ref/bind_parameter_name.html">c3ref/bind_parameter_name.html</a> <a href="c3ref/blob.html">c3ref/blob.html</a> <a href="c3ref/blob_bytes.html">c3ref/blob_bytes.html</a> <a href="c3ref/blob_close.html">c3ref/blob_close.html</a> <a href="c3ref/blob_open.html">c3ref/blob_open.html</a> <a href="c3ref/blob_read.html">c3ref/blob_read.html</a> <a href="c3ref/blob_reopen.html">c3ref/blob_reopen.html</a> <a href="c3ref/blob_write.html">c3ref/blob_write.html</a> <a href="c3ref/busy_handler.html">c3ref/busy_handler.html</a> <a href="c3ref/busy_timeout.html">c3ref/busy_timeout.html</a> <a href="c3ref/c_abort.html">c3ref/c_abort.html</a> <a href="c3ref/c_abort_rollback.html">c3ref/c_abort_rollback.html</a> <a href="c3ref/c_access_exists.html">c3ref/c_access_exists.html</a> <a href="c3ref/c_alter_table.html">c3ref/c_alter_table.html</a> <a href="c3ref/c_any.html">c3ref/c_any.html</a> <a href="c3ref/c_blob.html">c3ref/c_blob.html</a> <a href="c3ref/c_checkpoint_full.html">c3ref/c_checkpoint_full.html</a> <a href="c3ref/c_config_covering_index_scan.html">c3ref/c_config_covering_index_scan.html</a> <a href="c3ref/c_dbconfig_defensive.html">c3ref/c_dbconfig_defensive.html</a> <a href="c3ref/c_dbstatus_options.html">c3ref/c_dbstatus_options.html</a> <a href="c3ref/c_deny.html">c3ref/c_deny.html</a> <a href="c3ref/c_deserialize_freeonclose.html">c3ref/c_deserialize_freeonclose.html</a> <a href="c3ref/c_deterministic.html">c3ref/c_deterministic.html</a> <a href="c3ref/c_fail.html">c3ref/c_fail.html</a> <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a> <a href="c3ref/c_index_constraint_eq.html">c3ref/c_index_constraint_eq.html</a> <a href="c3ref/c_index_scan_unique.html">c3ref/c_index_scan_unique.html</a> <a href="c3ref/c_iocap_atomic.html">c3ref/c_iocap_atomic.html</a> <a href="c3ref/c_limit_attached.html">c3ref/c_limit_attached.html</a> <a href="c3ref/c_lock_exclusive.html">c3ref/c_lock_exclusive.html</a> <a href="c3ref/c_mutex_fast.html">c3ref/c_mutex_fast.html</a> <a href="c3ref/c_open_autoproxy.html">c3ref/c_open_autoproxy.html</a> <a href="c3ref/c_prepare_normalize.html">c3ref/c_prepare_normalize.html</a> <a href="c3ref/c_scanstat_complex.html">c3ref/c_scanstat_complex.html</a> <a href="c3ref/c_scanstat_est.html">c3ref/c_scanstat_est.html</a> <a href="c3ref/c_serialize_nocopy.html">c3ref/c_serialize_nocopy.html</a> <a href="c3ref/c_shm_exclusive.html">c3ref/c_shm_exclusive.html</a> <a href="c3ref/c_shm_nlock.html">c3ref/c_shm_nlock.html</a> <a href="c3ref/c_source_id.html">c3ref/c_source_id.html</a> <a href="c3ref/c_static.html">c3ref/c_static.html</a> <a href="c3ref/c_status_malloc_count.html">c3ref/c_status_malloc_count.html</a> <a href="c3ref/c_stmtstatus_counter.html">c3ref/c_stmtstatus_counter.html</a> <a href="c3ref/c_sync_dataonly.html">c3ref/c_sync_dataonly.html</a> <a href="c3ref/c_testctrl_always.html">c3ref/c_testctrl_always.html</a> <a href="c3ref/c_trace.html">c3ref/c_trace.html</a> <a href="c3ref/c_txn_none.html">c3ref/c_txn_none.html</a> <a href="c3ref/c_vtab_constraint_support.html">c3ref/c_vtab_constraint_support.html</a> <a href="c3ref/c_win32_data_directory_type.html">c3ref/c_win32_data_directory_type.html</a> <a href="c3ref/cancel_auto_extension.html">c3ref/cancel_auto_extension.html</a> <a href="c3ref/clear_bindings.html">c3ref/clear_bindings.html</a> <a href="c3ref/close.html">c3ref/close.html</a> <a href="c3ref/collation_needed.html">c3ref/collation_needed.html</a> <a href="c3ref/column_blob.html">c3ref/column_blob.html</a> <a href="c3ref/column_count.html">c3ref/column_count.html</a> <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a> <a href="c3ref/column_decltype.html">c3ref/column_decltype.html</a> <a href="c3ref/column_name.html">c3ref/column_name.html</a> <a href="c3ref/commit_hook.html">c3ref/commit_hook.html</a> <a href="c3ref/compileoption_get.html">c3ref/compileoption_get.html</a> <a href="c3ref/complete.html">c3ref/complete.html</a> <a href="c3ref/config.html">c3ref/config.html</a> <a href="c3ref/constlist.html">c3ref/constlist.html</a> <a href="c3ref/context.html">c3ref/context.html</a> <a href="c3ref/context_db_handle.html">c3ref/context_db_handle.html</a> <a href="c3ref/create_collation.html">c3ref/create_collation.html</a> <a href="c3ref/create_filename.html">c3ref/create_filename.html</a> <a href="c3ref/create_function.html">c3ref/create_function.html</a> <a href="c3ref/create_module.html">c3ref/create_module.html</a> <a href="c3ref/data_count.html">c3ref/data_count.html</a> <a href="c3ref/data_directory.html">c3ref/data_directory.html</a> <a href="c3ref/database_file_object.html">c3ref/database_file_object.html</a> <a href="c3ref/db_cacheflush.html">c3ref/db_cacheflush.html</a> <a href="c3ref/db_config.html">c3ref/db_config.html</a> <a href="c3ref/db_filename.html">c3ref/db_filename.html</a> <a href="c3ref/db_handle.html">c3ref/db_handle.html</a> <a href="c3ref/db_mutex.html">c3ref/db_mutex.html</a> <a href="c3ref/db_name.html">c3ref/db_name.html</a> <a href="c3ref/db_readonly.html">c3ref/db_readonly.html</a> <a href="c3ref/db_release_memory.html">c3ref/db_release_memory.html</a> <a href="c3ref/db_status.html">c3ref/db_status.html</a> <a href="c3ref/declare_vtab.html">c3ref/declare_vtab.html</a> <a href="c3ref/deserialize.html">c3ref/deserialize.html</a> <a href="c3ref/drop_modules.html">c3ref/drop_modules.html</a> <a href="c3ref/enable_load_extension.html">c3ref/enable_load_extension.html</a> <a href="c3ref/enable_shared_cache.html">c3ref/enable_shared_cache.html</a> <a href="c3ref/errcode.html">c3ref/errcode.html</a> <a href="c3ref/exec.html">c3ref/exec.html</a> <a href="c3ref/expanded_sql.html">c3ref/expanded_sql.html</a> <a href="c3ref/experimental.html">c3ref/experimental.html</a> <a href="c3ref/extended_result_codes.html">c3ref/extended_result_codes.html</a> <a href="c3ref/file.html">c3ref/file.html</a> <a href="c3ref/file_control.html">c3ref/file_control.html</a> <a href="c3ref/filename.html">c3ref/filename.html</a> <a href="c3ref/filename_database.html">c3ref/filename_database.html</a> <a href="c3ref/finalize.html">c3ref/finalize.html</a> <a href="c3ref/free.html">c3ref/free.html</a> <a href="c3ref/free_table.html">c3ref/free_table.html</a> <a href="c3ref/funclist.html">c3ref/funclist.html</a> <a href="c3ref/get_autocommit.html">c3ref/get_autocommit.html</a> <a href="c3ref/get_auxdata.html">c3ref/get_auxdata.html</a> <a href="c3ref/get_clientdata.html">c3ref/get_clientdata.html</a> <a href="c3ref/hard_heap_limit64.html">c3ref/hard_heap_limit64.html</a> <a href="c3ref/index_info.html">c3ref/index_info.html</a> <a href="c3ref/initialize.html">c3ref/initialize.html</a> <a href="c3ref/int64.html">c3ref/int64.html</a> <a href="c3ref/interrupt.html">c3ref/interrupt.html</a> <a href="c3ref/io_methods.html">c3ref/io_methods.html</a> <a href="c3ref/keyword_check.html">c3ref/keyword_check.html</a> <a href="c3ref/last_insert_rowid.html">c3ref/last_insert_rowid.html</a> <a href="c3ref/libversion.html">c3ref/libversion.html</a> <a href="c3ref/limit.html">c3ref/limit.html</a> <a href="c3ref/load_extension.html">c3ref/load_extension.html</a> <a href="c3ref/log.html">c3ref/log.html</a> <a href="c3ref/mem_methods.html">c3ref/mem_methods.html</a> <a href="c3ref/memory_highwater.html">c3ref/memory_highwater.html</a> <a href="c3ref/module.html">c3ref/module.html</a> <a href="c3ref/mprintf.html">c3ref/mprintf.html</a> <a href="c3ref/mutex.html">c3ref/mutex.html</a> <a href="c3ref/mutex_alloc.html">c3ref/mutex_alloc.html</a> <a href="c3ref/mutex_held.html">c3ref/mutex_held.html</a> <a href="c3ref/mutex_methods.html">c3ref/mutex_methods.html</a> <a href="c3ref/next_stmt.html">c3ref/next_stmt.html</a> <a href="c3ref/objlist.html">c3ref/objlist.html</a> <a href="c3ref/open.html">c3ref/open.html</a> <a href="c3ref/overload_function.html">c3ref/overload_function.html</a> <a href="c3ref/pcache.html">c3ref/pcache.html</a> <a href="c3ref/pcache_methods2.html">c3ref/pcache_methods2.html</a> <a href="c3ref/pcache_page.html">c3ref/pcache_page.html</a> <a href="c3ref/prepare.html">c3ref/prepare.html</a> <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a> <a href="c3ref/profile.html">c3ref/profile.html</a> <a href="c3ref/progress_handler.html">c3ref/progress_handler.html</a> <a href="c3ref/randomness.html">c3ref/randomness.html</a> <a href="c3ref/release_memory.html">c3ref/release_memory.html</a> <a href="c3ref/reset.html">c3ref/reset.html</a> <a href="c3ref/reset_auto_extension.html">c3ref/reset_auto_extension.html</a> <a href="c3ref/result_blob.html">c3ref/result_blob.html</a> <a href="c3ref/result_subtype.html">c3ref/result_subtype.html</a> <a href="c3ref/serialize.html">c3ref/serialize.html</a> <a href="c3ref/set_authorizer.html">c3ref/set_authorizer.html</a> <a href="c3ref/set_last_insert_rowid.html">c3ref/set_last_insert_rowid.html</a> <a href="c3ref/sleep.html">c3ref/sleep.html</a> <a href="c3ref/snapshot.html">c3ref/snapshot.html</a> <a href="c3ref/snapshot_cmp.html">c3ref/snapshot_cmp.html</a> <a href="c3ref/snapshot_free.html">c3ref/snapshot_free.html</a> <a href="c3ref/snapshot_get.html">c3ref/snapshot_get.html</a> <a href="c3ref/snapshot_open.html">c3ref/snapshot_open.html</a> <a href="c3ref/snapshot_recover.html">c3ref/snapshot_recover.html</a> <a href="c3ref/soft_heap_limit.html">c3ref/soft_heap_limit.html</a> <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a> <a href="c3ref/status.html">c3ref/status.html</a> <a href="c3ref/step.html">c3ref/step.html</a> <a href="c3ref/stmt.html">c3ref/stmt.html</a> <a href="c3ref/stmt_busy.html">c3ref/stmt_busy.html</a> <a href="c3ref/stmt_explain.html">c3ref/stmt_explain.html</a> <a href="c3ref/stmt_isexplain.html">c3ref/stmt_isexplain.html</a> <a href="c3ref/stmt_readonly.html">c3ref/stmt_readonly.html</a> <a href="c3ref/stmt_scanstatus.html">c3ref/stmt_scanstatus.html</a> <a href="c3ref/stmt_scanstatus_reset.html">c3ref/stmt_scanstatus_reset.html</a> <a href="c3ref/stmt_status.html">c3ref/stmt_status.html</a> <a href="c3ref/str.html">c3ref/str.html</a> <a href="c3ref/str_append.html">c3ref/str_append.html</a> <a href="c3ref/str_errcode.html">c3ref/str_errcode.html</a> <a href="c3ref/str_finish.html">c3ref/str_finish.html</a> <a href="c3ref/str_new.html">c3ref/str_new.html</a> <a href="c3ref/strglob.html">c3ref/strglob.html</a> <a href="c3ref/stricmp.html">c3ref/stricmp.html</a> <a href="c3ref/strlike.html">c3ref/strlike.html</a> <a href="c3ref/system_errno.html">c3ref/system_errno.html</a> <a href="c3ref/table_column_metadata.html">c3ref/table_column_metadata.html</a> <a href="c3ref/temp_directory.html">c3ref/temp_directory.html</a> <a href="c3ref/test_control.html">c3ref/test_control.html</a> <a href="c3ref/threadsafe.html">c3ref/threadsafe.html</a> <a href="c3ref/trace_v2.html">c3ref/trace_v2.html</a> <a href="c3ref/txn_state.html">c3ref/txn_state.html</a> <a href="c3ref/unlock_notify.html">c3ref/unlock_notify.html</a> <a href="c3ref/update_hook.html">c3ref/update_hook.html</a> <a href="c3ref/uri_boolean.html">c3ref/uri_boolean.html</a> <a href="c3ref/user_data.html">c3ref/user_data.html</a> <a href="c3ref/value.html">c3ref/value.html</a> <a href="c3ref/value_blob.html">c3ref/value_blob.html</a> <a href="c3ref/value_dup.html">c3ref/value_dup.html</a> <a href="c3ref/value_encoding.html">c3ref/value_encoding.html</a> <a href="c3ref/value_subtype.html">c3ref/value_subtype.html</a> <a href="c3ref/vfs.html">c3ref/vfs.html</a> <a href="c3ref/vfs_find.html">c3ref/vfs_find.html</a> <a href="c3ref/vtab.html">c3ref/vtab.html</a> <a href="c3ref/vtab_collation.html">c3ref/vtab_collation.html</a> <a href="c3ref/vtab_config.html">c3ref/vtab_config.html</a> <a href="c3ref/vtab_cursor.html">c3ref/vtab_cursor.html</a> <a href="c3ref/vtab_distinct.html">c3ref/vtab_distinct.html</a> <a href="c3ref/vtab_in.html">c3ref/vtab_in.html</a> <a href="c3ref/vtab_in_first.html">c3ref/vtab_in_first.html</a> <a href="c3ref/vtab_nochange.html">c3ref/vtab_nochange.html</a> <a href="c3ref/vtab_on_conflict.html">c3ref/vtab_on_conflict.html</a> <a href="c3ref/vtab_rhs_value.html">c3ref/vtab_rhs_value.html</a> <a href="c3ref/wal_autocheckpoint.html">c3ref/wal_autocheckpoint.html</a> <a href="c3ref/wal_checkpoint.html">c3ref/wal_checkpoint.html</a> <a href="c3ref/wal_checkpoint_v2.html">c3ref/wal_checkpoint_v2.html</a> <a href="c3ref/wal_hook.html">c3ref/wal_hook.html</a> <a href="c3ref/win32_set_directory.html">c3ref/win32_set_directory.html</a> <a href="capi3.html">capi3.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="cintro.html">cintro.html</a> <a href="docs.html">docs.html</a> <a href="index.html">index.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="quickstart.html">quickstart.html</a> <a href="rescode.html">rescode.html</a> </li> <li><a href="c3ref/io_methods.html">c3ref/io_methods.html</a> → @@ -424,11 +424,11 @@ antiRobotDefense(); <li><a href="c3ref/pcache_page.html">c3ref/pcache_page.html</a> → <a href="c3ref/objlist.html">c3ref/objlist.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="keyword_index.html">keyword_index.html</a> </li> <li><a href="c3ref/prepare.html">c3ref/prepare.html</a> → -<a href="arch.html">arch.html</a> <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a> <a href="c3ref/bind_parameter_index.html">c3ref/bind_parameter_index.html</a> <a href="c3ref/bind_parameter_name.html">c3ref/bind_parameter_name.html</a> <a href="c3ref/c_limit_attached.html">c3ref/c_limit_attached.html</a> <a href="c3ref/c_prepare_normalize.html">c3ref/c_prepare_normalize.html</a> <a href="c3ref/column_blob.html">c3ref/column_blob.html</a> <a href="c3ref/commit_hook.html">c3ref/commit_hook.html</a> <a href="c3ref/db_handle.html">c3ref/db_handle.html</a> <a href="c3ref/exec.html">c3ref/exec.html</a> <a href="c3ref/expanded_sql.html">c3ref/expanded_sql.html</a> <a href="c3ref/funclist.html">c3ref/funclist.html</a> <a href="c3ref/progress_handler.html">c3ref/progress_handler.html</a> <a href="c3ref/set_authorizer.html">c3ref/set_authorizer.html</a> <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a> <a href="c3ref/step.html">c3ref/step.html</a> <a href="c3ref/stmt.html">c3ref/stmt.html</a> <a href="c3ref/stmt_explain.html">c3ref/stmt_explain.html</a> <a href="c3ref/update_hook.html">c3ref/update_hook.html</a> <a href="capi3.html">capi3.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="cintro.html">cintro.html</a> <a href="cli.html">cli.html</a> <a href="compile.html">compile.html</a> <a href="errlog.html">errlog.html</a> <a href="faq.html">faq.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang.html">lang.html</a> <a href="lang_comment.html">lang_comment.html</a> <a href="lang_explain.html">lang_explain.html</a> <a href="limits.html">limits.html</a> <a href="malloc.html">malloc.html</a> <a href="opcode.html">opcode.html</a> <a href="optoverview.html">optoverview.html</a> <a href="pragma.html">pragma.html</a> <a href="queryplanner-ng.html">queryplanner-ng.html</a> <a href="rescode.html">rescode.html</a> <a href="stmt.html">stmt.html</a> <a href="tclsqlite.html">tclsqlite.html</a> <a href="unlock_notify.html">unlock_notify.html</a> <a href="vfs.html">vfs.html</a> <a href="vtab.html">vtab.html</a> </li> +<a href="arch.html">arch.html</a> <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a> <a href="c3ref/bind_parameter_index.html">c3ref/bind_parameter_index.html</a> <a href="c3ref/bind_parameter_name.html">c3ref/bind_parameter_name.html</a> <a href="c3ref/c_limit_attached.html">c3ref/c_limit_attached.html</a> <a href="c3ref/c_prepare_normalize.html">c3ref/c_prepare_normalize.html</a> <a href="c3ref/column_blob.html">c3ref/column_blob.html</a> <a href="c3ref/commit_hook.html">c3ref/commit_hook.html</a> <a href="c3ref/db_handle.html">c3ref/db_handle.html</a> <a href="c3ref/exec.html">c3ref/exec.html</a> <a href="c3ref/expanded_sql.html">c3ref/expanded_sql.html</a> <a href="c3ref/funclist.html">c3ref/funclist.html</a> <a href="c3ref/progress_handler.html">c3ref/progress_handler.html</a> <a href="c3ref/set_authorizer.html">c3ref/set_authorizer.html</a> <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a> <a href="c3ref/step.html">c3ref/step.html</a> <a href="c3ref/stmt.html">c3ref/stmt.html</a> <a href="c3ref/stmt_explain.html">c3ref/stmt_explain.html</a> <a href="c3ref/update_hook.html">c3ref/update_hook.html</a> <a href="capi3.html">capi3.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="cintro.html">cintro.html</a> <a href="cli.html">cli.html</a> <a href="compile.html">compile.html</a> <a href="errlog.html">errlog.html</a> <a href="faq.html">faq.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang.html">lang.html</a> <a href="lang_comment.html">lang_comment.html</a> <a href="lang_explain.html">lang_explain.html</a> <a href="limits.html">limits.html</a> <a href="malloc.html">malloc.html</a> <a href="opcode.html">opcode.html</a> <a href="optoverview.html">optoverview.html</a> <a href="pragma.html">pragma.html</a> <a href="queryplanner-ng.html">queryplanner-ng.html</a> <a href="rescode.html">rescode.html</a> <a href="stmt.html">stmt.html</a> <a href="tclsqlite.html">tclsqlite.html</a> <a href="unlock_notify.html">unlock_notify.html</a> <a href="vfs.html">vfs.html</a> <a href="vtab.html">vtab.html</a> <a href="whybytecode.html">whybytecode.html</a> </li> <li><a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a> → <a href="c3ref/funclist.html">c3ref/funclist.html</a> <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a> <a href="c3ref/update_hook.html">c3ref/update_hook.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="session.html">session.html</a> <a href="session/sqlite3session_create.html">session/sqlite3session_create.html</a> </li> <li><a href="c3ref/profile.html">c3ref/profile.html</a> → -<a href="c3ref/c_trace.html">c3ref/c_trace.html</a> <a href="c3ref/funclist.html">c3ref/funclist.html</a> <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a> <a href="c3ref/trace_v2.html">c3ref/trace_v2.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="keyword_index.html">keyword_index.html</a> </li> +<a href="c3ref/c_trace.html">c3ref/c_trace.html</a> <a href="c3ref/trace_v2.html">c3ref/trace_v2.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="keyword_index.html">keyword_index.html</a> </li> <li><a href="c3ref/progress_handler.html">c3ref/progress_handler.html</a> → <a href="c3ref/funclist.html">c3ref/funclist.html</a> <a href="c3ref/sqlite3.html">c3ref/sqlite3.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="security.html">security.html</a> </li> <li><a href="c3ref/randomness.html">c3ref/randomness.html</a> → @@ -472,7 +472,7 @@ antiRobotDefense(); <li><a href="c3ref/step.html">c3ref/step.html</a> → <a href="arch.html">arch.html</a> <a href="backup.html">backup.html</a> <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a> <a href="c3ref/busy_timeout.html">c3ref/busy_timeout.html</a> <a href="c3ref/c_stmtstatus_counter.html">c3ref/c_stmtstatus_counter.html</a> <a href="c3ref/column_blob.html">c3ref/column_blob.html</a> <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a> <a href="c3ref/column_name.html">c3ref/column_name.html</a> <a href="c3ref/commit_hook.html">c3ref/commit_hook.html</a> <a href="c3ref/data_count.html">c3ref/data_count.html</a> <a href="c3ref/exec.html">c3ref/exec.html</a> <a href="c3ref/finalize.html">c3ref/finalize.html</a> <a href="c3ref/funclist.html">c3ref/funclist.html</a> <a href="c3ref/prepare.html">c3ref/prepare.html</a> <a href="c3ref/profile.html">c3ref/profile.html</a> <a href="c3ref/progress_handler.html">c3ref/progress_handler.html</a> <a href="c3ref/reset.html">c3ref/reset.html</a> <a href="c3ref/set_authorizer.html">c3ref/set_authorizer.html</a> <a href="c3ref/stmt.html">c3ref/stmt.html</a> <a href="c3ref/stmt_busy.html">c3ref/stmt_busy.html</a> <a href="c3ref/unlock_notify.html">c3ref/unlock_notify.html</a> <a href="c3ref/update_hook.html">c3ref/update_hook.html</a> <a href="capi3.html">capi3.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="cintro.html">cintro.html</a> <a href="compile.html">compile.html</a> <a href="eqp.html">eqp.html</a> <a href="errlog.html">errlog.html</a> <a href="faq.html">faq.html</a> <a href="isolation.html">isolation.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="lang_datefunc.html">lang_datefunc.html</a> <a href="lang_explain.html">lang_explain.html</a> <a href="lang_returning.html">lang_returning.html</a> <a href="malloc.html">malloc.html</a> <a href="opcode.html">opcode.html</a> <a href="optoverview.html">optoverview.html</a> <a href="pragma.html">pragma.html</a> <a href="rescode.html">rescode.html</a> <a href="stmt.html">stmt.html</a> <a href="unlock_notify.html">unlock_notify.html</a> <a href="vfs.html">vfs.html</a> </li> <li><a href="c3ref/stmt.html">c3ref/stmt.html</a> → -<a href="arch.html">arch.html</a> <a href="bytecodevtab.html">bytecodevtab.html</a> <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a> <a href="c3ref/bind_parameter_count.html">c3ref/bind_parameter_count.html</a> <a href="c3ref/bind_parameter_name.html">c3ref/bind_parameter_name.html</a> <a href="c3ref/busy_handler.html">c3ref/busy_handler.html</a> <a href="c3ref/c_config_covering_index_scan.html">c3ref/c_config_covering_index_scan.html</a> <a href="c3ref/c_limit_attached.html">c3ref/c_limit_attached.html</a> <a href="c3ref/c_trace.html">c3ref/c_trace.html</a> <a href="c3ref/clear_bindings.html">c3ref/clear_bindings.html</a> <a href="c3ref/close.html">c3ref/close.html</a> <a href="c3ref/column_blob.html">c3ref/column_blob.html</a> <a href="c3ref/column_count.html">c3ref/column_count.html</a> <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a> <a href="c3ref/column_decltype.html">c3ref/column_decltype.html</a> <a href="c3ref/column_name.html">c3ref/column_name.html</a> <a href="c3ref/data_count.html">c3ref/data_count.html</a> <a href="c3ref/db_handle.html">c3ref/db_handle.html</a> <a href="c3ref/expanded_sql.html">c3ref/expanded_sql.html</a> <a href="c3ref/finalize.html">c3ref/finalize.html</a> <a href="c3ref/intro.html">c3ref/intro.html</a> <a href="c3ref/next_stmt.html">c3ref/next_stmt.html</a> <a href="c3ref/objlist.html">c3ref/objlist.html</a> <a href="c3ref/prepare.html">c3ref/prepare.html</a> <a href="c3ref/reset.html">c3ref/reset.html</a> <a href="c3ref/set_authorizer.html">c3ref/set_authorizer.html</a> <a href="c3ref/step.html">c3ref/step.html</a> <a href="c3ref/stmt_busy.html">c3ref/stmt_busy.html</a> <a href="c3ref/stmt_explain.html">c3ref/stmt_explain.html</a> <a href="c3ref/stmt_readonly.html">c3ref/stmt_readonly.html</a> <a href="c3ref/stmt_status.html">c3ref/stmt_status.html</a> <a href="c3ref/value_blob.html">c3ref/value_blob.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="cintro.html">cintro.html</a> <a href="compile.html">compile.html</a> <a href="custombuild.html">custombuild.html</a> <a href="datatype3.html">datatype3.html</a> <a href="faq.html">faq.html</a> <a href="howitworks.html">howitworks.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_explain.html">lang_explain.html</a> <a href="malloc.html">malloc.html</a> <a href="opcode.html">opcode.html</a> <a href="optoverview.html">optoverview.html</a> <a href="pragma.html">pragma.html</a> <a href="rescode.html">rescode.html</a> <a href="stmt.html">stmt.html</a> <a href="tclsqlite.html">tclsqlite.html</a> <a href="threadsafe.html">threadsafe.html</a> <a href="unlock_notify.html">unlock_notify.html</a> <a href="vfs.html">vfs.html</a> <a href="vtablist.html">vtablist.html</a> </li> +<a href="arch.html">arch.html</a> <a href="bytecodevtab.html">bytecodevtab.html</a> <a href="c3ref/bind_blob.html">c3ref/bind_blob.html</a> <a href="c3ref/bind_parameter_count.html">c3ref/bind_parameter_count.html</a> <a href="c3ref/bind_parameter_name.html">c3ref/bind_parameter_name.html</a> <a href="c3ref/busy_handler.html">c3ref/busy_handler.html</a> <a href="c3ref/c_config_covering_index_scan.html">c3ref/c_config_covering_index_scan.html</a> <a href="c3ref/c_limit_attached.html">c3ref/c_limit_attached.html</a> <a href="c3ref/c_trace.html">c3ref/c_trace.html</a> <a href="c3ref/clear_bindings.html">c3ref/clear_bindings.html</a> <a href="c3ref/close.html">c3ref/close.html</a> <a href="c3ref/column_blob.html">c3ref/column_blob.html</a> <a href="c3ref/column_count.html">c3ref/column_count.html</a> <a href="c3ref/column_database_name.html">c3ref/column_database_name.html</a> <a href="c3ref/column_decltype.html">c3ref/column_decltype.html</a> <a href="c3ref/column_name.html">c3ref/column_name.html</a> <a href="c3ref/data_count.html">c3ref/data_count.html</a> <a href="c3ref/db_handle.html">c3ref/db_handle.html</a> <a href="c3ref/expanded_sql.html">c3ref/expanded_sql.html</a> <a href="c3ref/finalize.html">c3ref/finalize.html</a> <a href="c3ref/intro.html">c3ref/intro.html</a> <a href="c3ref/next_stmt.html">c3ref/next_stmt.html</a> <a href="c3ref/objlist.html">c3ref/objlist.html</a> <a href="c3ref/prepare.html">c3ref/prepare.html</a> <a href="c3ref/reset.html">c3ref/reset.html</a> <a href="c3ref/set_authorizer.html">c3ref/set_authorizer.html</a> <a href="c3ref/step.html">c3ref/step.html</a> <a href="c3ref/stmt_busy.html">c3ref/stmt_busy.html</a> <a href="c3ref/stmt_explain.html">c3ref/stmt_explain.html</a> <a href="c3ref/stmt_readonly.html">c3ref/stmt_readonly.html</a> <a href="c3ref/stmt_status.html">c3ref/stmt_status.html</a> <a href="c3ref/value_blob.html">c3ref/value_blob.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="cintro.html">cintro.html</a> <a href="compile.html">compile.html</a> <a href="custombuild.html">custombuild.html</a> <a href="datatype3.html">datatype3.html</a> <a href="faq.html">faq.html</a> <a href="howitworks.html">howitworks.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_explain.html">lang_explain.html</a> <a href="malloc.html">malloc.html</a> <a href="opcode.html">opcode.html</a> <a href="optoverview.html">optoverview.html</a> <a href="pragma.html">pragma.html</a> <a href="rescode.html">rescode.html</a> <a href="stmt.html">stmt.html</a> <a href="tclsqlite.html">tclsqlite.html</a> <a href="threadsafe.html">threadsafe.html</a> <a href="unlock_notify.html">unlock_notify.html</a> <a href="vfs.html">vfs.html</a> <a href="vtablist.html">vtablist.html</a> <a href="whybytecode.html">whybytecode.html</a> </li> <li><a href="c3ref/stmt_busy.html">c3ref/stmt_busy.html</a> → <a href="c3ref/funclist.html">c3ref/funclist.html</a> <a href="c3ref/stmt.html">c3ref/stmt.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="keyword_index.html">keyword_index.html</a> </li> <li><a href="c3ref/stmt_explain.html">c3ref/stmt_explain.html</a> → @@ -584,7 +584,7 @@ antiRobotDefense(); <li><a href="cksumvfs.html">cksumvfs.html</a> → <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="doclist.html">doclist.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="rescode.html">rescode.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="cli.html">cli.html</a> → -<a href="bytecodevtab.html">bytecodevtab.html</a> <a href="c3ref/c_deterministic.html">c3ref/c_deterministic.html</a> <a href="c_interface.html">c_interface.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="completion.html">completion.html</a> <a href="csv.html">csv.html</a> <a href="cves.html">cves.html</a> <a href="dbpage.html">dbpage.html</a> <a href="debugging.html">debugging.html</a> <a href="doclist.html">doclist.html</a> <a href="eqp.html">eqp.html</a> <a href="features.html">features.html</a> <a href="floatingpoint.html">floatingpoint.html</a> <a href="howtocompile.html">howtocompile.html</a> <a href="imposter.html">imposter.html</a> <a href="json1.html">json1.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_with.html">lang_with.html</a> <a href="loadext.html">loadext.html</a> <a href="nulinstr.html">nulinstr.html</a> <a href="opcode.html">opcode.html</a> <a href="profile.html">profile.html</a> <a href="qmplan.html">qmplan.html</a> <a href="quickstart.html">quickstart.html</a> <a href="quirks.html">quirks.html</a> <a href="recovery.html">recovery.html</a> <a href="series.html">series.html</a> <a href="sitemap.html">sitemap.html</a> <a href="sqlanalyze.html">sqlanalyze.html</a> <a href="sqlar.html">sqlar.html</a> <a href="stmt.html">stmt.html</a> <a href="stricttables.html">stricttables.html</a> <a href="uintcseq.html">uintcseq.html</a> <a href="vfs.html">vfs.html</a> <a href="vtab.html">vtab.html</a> <a href="vtablist.html">vtablist.html</a> <a href="wal.html">wal.html</a> <a href="whentouse.html">whentouse.html</a> <a href="zipfile.html">zipfile.html</a> </li> +<a href="bytecodevtab.html">bytecodevtab.html</a> <a href="c3ref/c_deterministic.html">c3ref/c_deterministic.html</a> <a href="c_interface.html">c_interface.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="completion.html">completion.html</a> <a href="csv.html">csv.html</a> <a href="cves.html">cves.html</a> <a href="dbpage.html">dbpage.html</a> <a href="debugging.html">debugging.html</a> <a href="doclist.html">doclist.html</a> <a href="eqp.html">eqp.html</a> <a href="features.html">features.html</a> <a href="floatingpoint.html">floatingpoint.html</a> <a href="howtocompile.html">howtocompile.html</a> <a href="imposter.html">imposter.html</a> <a href="json1.html">json1.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_analyze.html">lang_analyze.html</a> <a href="lang_with.html">lang_with.html</a> <a href="loadext.html">loadext.html</a> <a href="nulinstr.html">nulinstr.html</a> <a href="opcode.html">opcode.html</a> <a href="profile.html">profile.html</a> <a href="qmplan.html">qmplan.html</a> <a href="quickstart.html">quickstart.html</a> <a href="quirks.html">quirks.html</a> <a href="recovery.html">recovery.html</a> <a href="series.html">series.html</a> <a href="sitemap.html">sitemap.html</a> <a href="sqlanalyze.html">sqlanalyze.html</a> <a href="sqlar.html">sqlar.html</a> <a href="stmt.html">stmt.html</a> <a href="stricttables.html">stricttables.html</a> <a href="uintcseq.html">uintcseq.html</a> <a href="vfs.html">vfs.html</a> <a href="vtab.html">vtab.html</a> <a href="vtablist.html">vtablist.html</a> <a href="wal.html">wal.html</a> <a href="whentouse.html">whentouse.html</a> <a href="zipfile.html">zipfile.html</a> </li> <li><a href="codeofconduct.html">codeofconduct.html</a> → <a href="keyword_index.html">keyword_index.html</a> </li> <li><a href="codeofethics.html">codeofethics.html</a> → @@ -642,7 +642,7 @@ antiRobotDefense(); <li><a href="faq.html">faq.html</a> → <a href="doclist.html">doclist.html</a> <a href="docs.html">docs.html</a> <a href="index.html">index.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="fasterthanfs.html">fasterthanfs.html</a> → -<a href="about.html">about.html</a> <a href="aff_short.html">aff_short.html</a> <a href="appfileformat.html">appfileformat.html</a> <a href="doclist.html">doclist.html</a> <a href="features.html">features.html</a> <a href="howitworks.html">howitworks.html</a> <a href="index.html">index.html</a> <a href="intern-v-extern-blob.html">intern-v-extern-blob.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="sitemap.html">sitemap.html</a> <a href="whentouse.html">whentouse.html</a> <a href="whyc.html">whyc.html</a> </li> +<a href="about.html">about.html</a> <a href="aff_short.html">aff_short.html</a> <a href="appfileformat.html">appfileformat.html</a> <a href="doclist.html">doclist.html</a> <a href="features.html">features.html</a> <a href="howitworks.html">howitworks.html</a> <a href="index.html">index.html</a> <a href="intern-v-extern-blob.html">intern-v-extern-blob.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="sitemap.html">sitemap.html</a> <a href="whentouse.html">whentouse.html</a> <a href="whybytecode.html">whybytecode.html</a> <a href="whyc.html">whyc.html</a> </li> <li><a href="features.html">features.html</a> → <a href="doclist.html">doclist.html</a> <a href="docs.html">docs.html</a> <a href="index.html">index.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="fileformat.html">fileformat.html</a> → @@ -694,7 +694,7 @@ antiRobotDefense(); <li><a href="isolation.html">isolation.html</a> → <a href="doclist.html">doclist.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="sitemap.html">sitemap.html</a> <a href="useovernet.html">useovernet.html</a> </li> <li><a href="json1.html">json1.html</a> → -<a href="amalgamation.html">amalgamation.html</a> <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="docs.html">docs.html</a> <a href="features.html">features.html</a> <a href="flextypegood.html">flextypegood.html</a> <a href="fullsql.html">fullsql.html</a> <a href="index.html">index.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_aggfunc.html">lang_aggfunc.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="lang_expr.html">lang_expr.html</a> <a href="loadext.html">loadext.html</a> <a href="sitemap.html">sitemap.html</a> <a href="testing.html">testing.html</a> <a href="vtab.html">vtab.html</a> <a href="vtablist.html">vtablist.html</a> </li> +<a href="amalgamation.html">amalgamation.html</a> <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="docs.html">docs.html</a> <a href="features.html">features.html</a> <a href="flextypegood.html">flextypegood.html</a> <a href="fullsql.html">fullsql.html</a> <a href="index.html">index.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang.html">lang.html</a> <a href="lang_aggfunc.html">lang_aggfunc.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="lang_expr.html">lang_expr.html</a> <a href="loadext.html">loadext.html</a> <a href="sitemap.html">sitemap.html</a> <a href="testing.html">testing.html</a> <a href="vtab.html">vtab.html</a> <a href="vtablist.html">vtablist.html</a> </li> <li><a href="keyword_index.html">keyword_index.html</a> → <a href="doclist.html">doclist.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="lang.html">lang.html</a> → @@ -714,7 +714,7 @@ antiRobotDefense(); <li><a href="lang_corefunc.html">lang_corefunc.html</a> → <a href="arch.html">arch.html</a> <a href="bindptr.html">bindptr.html</a> <a href="c3ref/blob_open.html">c3ref/blob_open.html</a> <a href="c3ref/c_dbconfig_defensive.html">c3ref/c_dbconfig_defensive.html</a> <a href="c3ref/c_deterministic.html">c3ref/c_deterministic.html</a> <a href="c3ref/c_source_id.html">c3ref/c_source_id.html</a> <a href="c3ref/compileoption_get.html">c3ref/compileoption_get.html</a> <a href="c3ref/create_function.html">c3ref/create_function.html</a> <a href="c3ref/enable_load_extension.html">c3ref/enable_load_extension.html</a> <a href="c3ref/last_insert_rowid.html">c3ref/last_insert_rowid.html</a> <a href="c3ref/libversion.html">c3ref/libversion.html</a> <a href="c3ref/load_extension.html">c3ref/load_extension.html</a> <a href="c3ref/mprintf.html">c3ref/mprintf.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="cli.html">cli.html</a> <a href="compile.html">compile.html</a> <a href="deterministic.html">deterministic.html</a> <a href="doclist.html">doclist.html</a> <a href="docs.html">docs.html</a> <a href="expridx.html">expridx.html</a> <a href="faq.html">faq.html</a> <a href="fts3.html">fts3.html</a> <a href="fts5.html">fts5.html</a> <a href="fullsql.html">fullsql.html</a> <a href="howtocompile.html">howtocompile.html</a> <a href="index.html">index.html</a> <a href="invalidutf.html">invalidutf.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang.html">lang.html</a> <a href="lang_aggfunc.html">lang_aggfunc.html</a> <a href="lang_createindex.html">lang_createindex.html</a> <a href="lang_datefunc.html">lang_datefunc.html</a> <a href="lang_expr.html">lang_expr.html</a> <a href="lang_mathfunc.html">lang_mathfunc.html</a> <a href="loadext.html">loadext.html</a> <a href="nulinstr.html">nulinstr.html</a> <a href="optoverview.html">optoverview.html</a> <a href="pragma.html">pragma.html</a> <a href="printf.html">printf.html</a> <a href="queryplanner-ng.html">queryplanner-ng.html</a> <a href="security.html">security.html</a> <a href="sitemap.html">sitemap.html</a> <a href="syntaxdiagrams.html">syntaxdiagrams.html</a> <a href="tclsqlite.html">tclsqlite.html</a> <a href="undoredo.html">undoredo.html</a> <a href="windowfunctions.html">windowfunctions.html</a> <a href="withoutrowid.html">withoutrowid.html</a> </li> <li><a href="lang_createindex.html">lang_createindex.html</a> → -<a href="aff_short.html">aff_short.html</a> <a href="appfileformat.html">appfileformat.html</a> <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="expridx.html">expridx.html</a> <a href="fileformat2.html">fileformat2.html</a> <a href="foreignkeys.html">foreignkeys.html</a> <a href="fullsql.html">fullsql.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang.html">lang.html</a> <a href="lang_altertable.html">lang_altertable.html</a> <a href="lang_dropindex.html">lang_dropindex.html</a> <a href="lang_upsert.html">lang_upsert.html</a> <a href="limits.html">limits.html</a> <a href="optoverview.html">optoverview.html</a> <a href="partialindex.html">partialindex.html</a> <a href="pragma.html">pragma.html</a> <a href="schematab.html">schematab.html</a> <a href="sitemap.html">sitemap.html</a> <a href="stricttables.html">stricttables.html</a> <a href="syntaxdiagrams.html">syntaxdiagrams.html</a> <a href="vtab.html">vtab.html</a> <a href="withoutrowid.html">withoutrowid.html</a> </li> +<a href="aff_short.html">aff_short.html</a> <a href="appfileformat.html">appfileformat.html</a> <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="expridx.html">expridx.html</a> <a href="fileformat2.html">fileformat2.html</a> <a href="foreignkeys.html">foreignkeys.html</a> <a href="fullsql.html">fullsql.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang.html">lang.html</a> <a href="lang_altertable.html">lang_altertable.html</a> <a href="lang_analyze.html">lang_analyze.html</a> <a href="lang_dropindex.html">lang_dropindex.html</a> <a href="lang_upsert.html">lang_upsert.html</a> <a href="limits.html">limits.html</a> <a href="optoverview.html">optoverview.html</a> <a href="partialindex.html">partialindex.html</a> <a href="pragma.html">pragma.html</a> <a href="schematab.html">schematab.html</a> <a href="sitemap.html">sitemap.html</a> <a href="stricttables.html">stricttables.html</a> <a href="syntaxdiagrams.html">syntaxdiagrams.html</a> <a href="vtab.html">vtab.html</a> <a href="withoutrowid.html">withoutrowid.html</a> </li> <li><a href="lang_createtable.html">lang_createtable.html</a> → <a href="autoinc.html">autoinc.html</a> <a href="c3ref/blob_open.html">c3ref/blob_open.html</a> <a href="c3ref/c_deterministic.html">c3ref/c_deterministic.html</a> <a href="c3ref/last_insert_rowid.html">c3ref/last_insert_rowid.html</a> <a href="c3ref/preupdate_blobwrite.html">c3ref/preupdate_blobwrite.html</a> <a href="c3ref/randomness.html">c3ref/randomness.html</a> <a href="c3ref/table_column_metadata.html">c3ref/table_column_metadata.html</a> <a href="c3ref/update_hook.html">c3ref/update_hook.html</a> <a href="c3ref/vtab_collation.html">c3ref/vtab_collation.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="conflict.html">conflict.html</a> <a href="csv.html">csv.html</a> <a href="datatype3.html">datatype3.html</a> <a href="deterministic.html">deterministic.html</a> <a href="doclist.html">doclist.html</a> <a href="eqp.html">eqp.html</a> <a href="expridx.html">expridx.html</a> <a href="faq.html">faq.html</a> <a href="fileformat2.html">fileformat2.html</a> <a href="foreignkeys.html">foreignkeys.html</a> <a href="fts3.html">fts3.html</a> <a href="fts5.html">fts5.html</a> <a href="fullsql.html">fullsql.html</a> <a href="gencol.html">gencol.html</a> <a href="imposter.html">imposter.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang.html">lang.html</a> <a href="lang_altertable.html">lang_altertable.html</a> <a href="lang_conflict.html">lang_conflict.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="lang_createindex.html">lang_createindex.html</a> <a href="lang_createvtab.html">lang_createvtab.html</a> <a href="lang_droptable.html">lang_droptable.html</a> <a href="lang_expr.html">lang_expr.html</a> <a href="lang_indexedby.html">lang_indexedby.html</a> <a href="lang_insert.html">lang_insert.html</a> <a href="lang_vacuum.html">lang_vacuum.html</a> <a href="optoverview.html">optoverview.html</a> <a href="pragma.html">pragma.html</a> <a href="queryplanner.html">queryplanner.html</a> <a href="quirks.html">quirks.html</a> <a href="rbu.html">rbu.html</a> <a href="rescode.html">rescode.html</a> <a href="rowidtable.html">rowidtable.html</a> <a href="schematab.html">schematab.html</a> <a href="sitemap.html">sitemap.html</a> <a href="sqldiff.html">sqldiff.html</a> <a href="stricttables.html">stricttables.html</a> <a href="syntaxdiagrams.html">syntaxdiagrams.html</a> <a href="vtab.html">vtab.html</a> <a href="withoutrowid.html">withoutrowid.html</a> </li> <li><a href="lang_createtrigger.html">lang_createtrigger.html</a> → @@ -748,7 +748,7 @@ antiRobotDefense(); <li><a href="lang_keywords.html">lang_keywords.html</a> → <a href="doclist.html">doclist.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang.html">lang.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="lang_mathfunc.html">lang_mathfunc.html</a> → -<a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="docs.html">docs.html</a> <a href="index.html">index.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="lang_expr.html">lang_expr.html</a> <a href="sitemap.html">sitemap.html</a> </li> +<a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="docs.html">docs.html</a> <a href="index.html">index.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang.html">lang.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="lang_expr.html">lang_expr.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="lang_naming.html">lang_naming.html</a> → <a href="doclist.html">doclist.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_dropview.html">lang_dropview.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="lang_reindex.html">lang_reindex.html</a> → @@ -802,7 +802,7 @@ antiRobotDefense(); <li><a href="onefile.html">onefile.html</a> → <a href="doclist.html">doclist.html</a> <a href="features.html">features.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="opcode.html">opcode.html</a> → -<a href="arch.html">arch.html</a> <a href="bytecodevtab.html">bytecodevtab.html</a> <a href="c3ref/progress_handler.html">c3ref/progress_handler.html</a> <a href="c3ref/vtab_distinct.html">c3ref/vtab_distinct.html</a> <a href="c3ref/vtab_in.html">c3ref/vtab_in.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="debugging.html">debugging.html</a> <a href="different.html">different.html</a> <a href="doclist.html">doclist.html</a> <a href="howitworks.html">howitworks.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="lang_explain.html">lang_explain.html</a> <a href="lts.html">lts.html</a> <a href="rowvalue.html">rowvalue.html</a> <a href="sitemap.html">sitemap.html</a> <a href="stmt.html">stmt.html</a> <a href="vdbe.html">vdbe.html</a> <a href="vtab.html">vtab.html</a> </li> +<a href="arch.html">arch.html</a> <a href="bytecodevtab.html">bytecodevtab.html</a> <a href="c3ref/progress_handler.html">c3ref/progress_handler.html</a> <a href="c3ref/vtab_distinct.html">c3ref/vtab_distinct.html</a> <a href="c3ref/vtab_in.html">c3ref/vtab_in.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="debugging.html">debugging.html</a> <a href="different.html">different.html</a> <a href="doclist.html">doclist.html</a> <a href="howitworks.html">howitworks.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="lang_explain.html">lang_explain.html</a> <a href="lts.html">lts.html</a> <a href="rowvalue.html">rowvalue.html</a> <a href="sitemap.html">sitemap.html</a> <a href="stmt.html">stmt.html</a> <a href="vdbe.html">vdbe.html</a> <a href="vtab.html">vtab.html</a> <a href="whybytecode.html">whybytecode.html</a> </li> <li><a href="optoverview.html">optoverview.html</a> → <a href="arch.html">arch.html</a> <a href="cli.html">cli.html</a> <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="eqp.html">eqp.html</a> <a href="fileformat2.html">fileformat2.html</a> <a href="fts3.html">fts3.html</a> <a href="fullsql.html">fullsql.html</a> <a href="howitworks.html">howitworks.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_analyze.html">lang_analyze.html</a> <a href="lang_indexedby.html">lang_indexedby.html</a> <a href="lang_select.html">lang_select.html</a> <a href="lang_with.html">lang_with.html</a> <a href="pragma.html">pragma.html</a> <a href="profile.html">profile.html</a> <a href="queryplanner-ng.html">queryplanner-ng.html</a> <a href="queryplanner.html">queryplanner.html</a> <a href="rescode.html">rescode.html</a> <a href="sitemap.html">sitemap.html</a> <a href="stmt.html">stmt.html</a> </li> <li><a href="partialindex.html">partialindex.html</a> → @@ -810,7 +810,7 @@ antiRobotDefense(); <li><a href="pgszchng2016.html">pgszchng2016.html</a> → <a href="doclist.html">doclist.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="pragma.html">pragma.html</a> → -<a href="aff_short.html">aff_short.html</a> <a href="appfunc.html">appfunc.html</a> <a href="arch.html">arch.html</a> <a href="asyncvfs.html">asyncvfs.html</a> <a href="atomiccommit.html">atomiccommit.html</a> <a href="c3ref/busy_handler.html">c3ref/busy_handler.html</a> <a href="c3ref/busy_timeout.html">c3ref/busy_timeout.html</a> <a href="c3ref/c_access_exists.html">c3ref/c_access_exists.html</a> <a href="c3ref/c_config_covering_index_scan.html">c3ref/c_config_covering_index_scan.html</a> <a href="c3ref/c_dbconfig_defensive.html">c3ref/c_dbconfig_defensive.html</a> <a href="c3ref/c_deterministic.html">c3ref/c_deterministic.html</a> <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a> <a href="c3ref/c_sync_dataonly.html">c3ref/c_sync_dataonly.html</a> <a href="c3ref/compileoption_get.html">c3ref/compileoption_get.html</a> <a href="c3ref/data_count.html">c3ref/data_count.html</a> <a href="c3ref/data_directory.html">c3ref/data_directory.html</a> <a href="c3ref/hard_heap_limit64.html">c3ref/hard_heap_limit64.html</a> <a href="c3ref/limit.html">c3ref/limit.html</a> <a href="c3ref/pcache_methods2.html">c3ref/pcache_methods2.html</a> <a href="c3ref/set_authorizer.html">c3ref/set_authorizer.html</a> <a href="c3ref/snapshot_open.html">c3ref/snapshot_open.html</a> <a href="c3ref/temp_directory.html">c3ref/temp_directory.html</a> <a href="c3ref/wal_autocheckpoint.html">c3ref/wal_autocheckpoint.html</a> <a href="c3ref/wal_checkpoint_v2.html">c3ref/wal_checkpoint_v2.html</a> <a href="c3ref/wal_hook.html">c3ref/wal_hook.html</a> <a href="c_interface.html">c_interface.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="cli.html">cli.html</a> <a href="compile.html">compile.html</a> <a href="cves.html">cves.html</a> <a href="dbhash.html">dbhash.html</a> <a href="debugging.html">debugging.html</a> <a href="doclist.html">doclist.html</a> <a href="docs.html">docs.html</a> <a href="faq.html">faq.html</a> <a href="fasterthanfs.html">fasterthanfs.html</a> <a href="fileformat2.html">fileformat2.html</a> <a href="foreignkeys.html">foreignkeys.html</a> <a href="fts3.html">fts3.html</a> <a href="fts5.html">fts5.html</a> <a href="gencol.html">gencol.html</a> <a href="howtocorrupt.html">howtocorrupt.html</a> <a href="imposter.html">imposter.html</a> <a href="index.html">index.html</a> <a href="inmemorydb.html">inmemorydb.html</a> <a href="invalidutf.html">invalidutf.html</a> <a href="isolation.html">isolation.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang.html">lang.html</a> <a href="lang_altertable.html">lang_altertable.html</a> <a href="lang_analyze.html">lang_analyze.html</a> <a href="lang_attach.html">lang_attach.html</a> <a href="lang_conflict.html">lang_conflict.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="lang_createindex.html">lang_createindex.html</a> <a href="lang_createtable.html">lang_createtable.html</a> <a href="lang_createtrigger.html">lang_createtrigger.html</a> <a href="lang_delete.html">lang_delete.html</a> <a href="lang_explain.html">lang_explain.html</a> <a href="lang_expr.html">lang_expr.html</a> <a href="lang_transaction.html">lang_transaction.html</a> <a href="lang_vacuum.html">lang_vacuum.html</a> <a href="limits.html">limits.html</a> <a href="lockingv3.html">lockingv3.html</a> <a href="malloc.html">malloc.html</a> <a href="mmap.html">mmap.html</a> <a href="opcode.html">opcode.html</a> <a href="optoverview.html">optoverview.html</a> <a href="pgszchng2016.html">pgszchng2016.html</a> <a href="psow.html">psow.html</a> <a href="queryplanner-ng.html">queryplanner-ng.html</a> <a href="quirks.html">quirks.html</a> <a href="rescode.html">rescode.html</a> <a href="rtree.html">rtree.html</a> <a href="security.html">security.html</a> <a href="sharedcache.html">sharedcache.html</a> <a href="sitemap.html">sitemap.html</a> <a href="stricttables.html">stricttables.html</a> <a href="syntaxdiagrams.html">syntaxdiagrams.html</a> <a href="tclsqlite.html">tclsqlite.html</a> <a href="tempfiles.html">tempfiles.html</a> <a href="testing.html">testing.html</a> <a href="vdbe.html">vdbe.html</a> <a href="vtab.html">vtab.html</a> <a href="vtablist.html">vtablist.html</a> <a href="wal.html">wal.html</a> <a href="walformat.html">walformat.html</a> <a href="withoutrowid.html">withoutrowid.html</a> </li> +<a href="aff_short.html">aff_short.html</a> <a href="appfunc.html">appfunc.html</a> <a href="arch.html">arch.html</a> <a href="asyncvfs.html">asyncvfs.html</a> <a href="atomiccommit.html">atomiccommit.html</a> <a href="c3ref/busy_handler.html">c3ref/busy_handler.html</a> <a href="c3ref/busy_timeout.html">c3ref/busy_timeout.html</a> <a href="c3ref/c_access_exists.html">c3ref/c_access_exists.html</a> <a href="c3ref/c_config_covering_index_scan.html">c3ref/c_config_covering_index_scan.html</a> <a href="c3ref/c_dbconfig_defensive.html">c3ref/c_dbconfig_defensive.html</a> <a href="c3ref/c_deterministic.html">c3ref/c_deterministic.html</a> <a href="c3ref/c_fcntl_begin_atomic_write.html">c3ref/c_fcntl_begin_atomic_write.html</a> <a href="c3ref/c_sync_dataonly.html">c3ref/c_sync_dataonly.html</a> <a href="c3ref/compileoption_get.html">c3ref/compileoption_get.html</a> <a href="c3ref/data_count.html">c3ref/data_count.html</a> <a href="c3ref/data_directory.html">c3ref/data_directory.html</a> <a href="c3ref/hard_heap_limit64.html">c3ref/hard_heap_limit64.html</a> <a href="c3ref/limit.html">c3ref/limit.html</a> <a href="c3ref/pcache_methods2.html">c3ref/pcache_methods2.html</a> <a href="c3ref/set_authorizer.html">c3ref/set_authorizer.html</a> <a href="c3ref/snapshot_open.html">c3ref/snapshot_open.html</a> <a href="c3ref/temp_directory.html">c3ref/temp_directory.html</a> <a href="c3ref/wal_autocheckpoint.html">c3ref/wal_autocheckpoint.html</a> <a href="c3ref/wal_checkpoint_v2.html">c3ref/wal_checkpoint_v2.html</a> <a href="c3ref/wal_hook.html">c3ref/wal_hook.html</a> <a href="c_interface.html">c_interface.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="cli.html">cli.html</a> <a href="compile.html">compile.html</a> <a href="cves.html">cves.html</a> <a href="dbhash.html">dbhash.html</a> <a href="debugging.html">debugging.html</a> <a href="doclist.html">doclist.html</a> <a href="docs.html">docs.html</a> <a href="faq.html">faq.html</a> <a href="fasterthanfs.html">fasterthanfs.html</a> <a href="fileformat2.html">fileformat2.html</a> <a href="foreignkeys.html">foreignkeys.html</a> <a href="fts3.html">fts3.html</a> <a href="fts5.html">fts5.html</a> <a href="gencol.html">gencol.html</a> <a href="howtocorrupt.html">howtocorrupt.html</a> <a href="imposter.html">imposter.html</a> <a href="index.html">index.html</a> <a href="inmemorydb.html">inmemorydb.html</a> <a href="invalidutf.html">invalidutf.html</a> <a href="isolation.html">isolation.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang.html">lang.html</a> <a href="lang_altertable.html">lang_altertable.html</a> <a href="lang_analyze.html">lang_analyze.html</a> <a href="lang_attach.html">lang_attach.html</a> <a href="lang_conflict.html">lang_conflict.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="lang_createindex.html">lang_createindex.html</a> <a href="lang_createtable.html">lang_createtable.html</a> <a href="lang_createtrigger.html">lang_createtrigger.html</a> <a href="lang_delete.html">lang_delete.html</a> <a href="lang_explain.html">lang_explain.html</a> <a href="lang_expr.html">lang_expr.html</a> <a href="lang_transaction.html">lang_transaction.html</a> <a href="lang_vacuum.html">lang_vacuum.html</a> <a href="limits.html">limits.html</a> <a href="lockingv3.html">lockingv3.html</a> <a href="malloc.html">malloc.html</a> <a href="mmap.html">mmap.html</a> <a href="opcode.html">opcode.html</a> <a href="optoverview.html">optoverview.html</a> <a href="pgszchng2016.html">pgszchng2016.html</a> <a href="psow.html">psow.html</a> <a href="queryplanner-ng.html">queryplanner-ng.html</a> <a href="quirks.html">quirks.html</a> <a href="rescode.html">rescode.html</a> <a href="rtree.html">rtree.html</a> <a href="security.html">security.html</a> <a href="sharedcache.html">sharedcache.html</a> <a href="sitemap.html">sitemap.html</a> <a href="stricttables.html">stricttables.html</a> <a href="syntaxdiagrams.html">syntaxdiagrams.html</a> <a href="tclsqlite.html">tclsqlite.html</a> <a href="tempfiles.html">tempfiles.html</a> <a href="testing.html">testing.html</a> <a href="vdbe.html">vdbe.html</a> <a href="vtab.html">vtab.html</a> <a href="vtablist.html">vtablist.html</a> <a href="wal.html">wal.html</a> <a href="walformat.html">walformat.html</a> <a href="whybytecode.html">whybytecode.html</a> <a href="withoutrowid.html">withoutrowid.html</a> </li> <li><a href="printf.html">printf.html</a> → <a href="arch.html">arch.html</a> <a href="c3ref/mprintf.html">c3ref/mprintf.html</a> <a href="c3ref/str_append.html">c3ref/str_append.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="privatebranch.html">privatebranch.html</a> → @@ -824,7 +824,7 @@ antiRobotDefense(); <li><a href="qmplan.html">qmplan.html</a> → <a href="doclist.html">doclist.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="queryplanner-ng.html">queryplanner-ng.html</a> → -<a href="c3ref/c_dbconfig_defensive.html">c3ref/c_dbconfig_defensive.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="eqp.html">eqp.html</a> <a href="howitworks.html">howitworks.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_indexedby.html">lang_indexedby.html</a> <a href="limits.html">limits.html</a> <a href="optoverview.html">optoverview.html</a> <a href="queryplanner.html">queryplanner.html</a> <a href="sitemap.html">sitemap.html</a> <a href="versionnumbers.html">versionnumbers.html</a> </li> +<a href="c3ref/c_dbconfig_defensive.html">c3ref/c_dbconfig_defensive.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="eqp.html">eqp.html</a> <a href="howitworks.html">howitworks.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_analyze.html">lang_analyze.html</a> <a href="lang_indexedby.html">lang_indexedby.html</a> <a href="limits.html">limits.html</a> <a href="optoverview.html">optoverview.html</a> <a href="queryplanner.html">queryplanner.html</a> <a href="sitemap.html">sitemap.html</a> <a href="versionnumbers.html">versionnumbers.html</a> </li> <li><a href="queryplanner.html">queryplanner.html</a> → <a href="doclist.html">doclist.html</a> <a href="eqp.html">eqp.html</a> <a href="fullsql.html">fullsql.html</a> <a href="imposter.html">imposter.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lts.html">lts.html</a> <a href="optoverview.html">optoverview.html</a> <a href="queryplanner-ng.html">queryplanner-ng.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="quickstart.html">quickstart.html</a> → @@ -846,7 +846,7 @@ antiRobotDefense(); <li><a href="rtree.html">rtree.html</a> → <a href="aff_short.html">aff_short.html</a> <a href="amalgamation.html">amalgamation.html</a> <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="floatingpoint.html">floatingpoint.html</a> <a href="fts5.html">fts5.html</a> <a href="fullsql.html">fullsql.html</a> <a href="geopoly.html">geopoly.html</a> <a href="howtocompile.html">howtocompile.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="rescode.html">rescode.html</a> <a href="sitemap.html">sitemap.html</a> <a href="sqldiff.html">sqldiff.html</a> <a href="th3.html">th3.html</a> <a href="vtab.html">vtab.html</a> <a href="vtablist.html">vtablist.html</a> </li> <li><a href="schematab.html">schematab.html</a> → -<a href="atomiccommit.html">atomiccommit.html</a> <a href="cli.html">cli.html</a> <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="fileformat2.html">fileformat2.html</a> <a href="foreignkeys.html">foreignkeys.html</a> <a href="imposter.html">imposter.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_altertable.html">lang_altertable.html</a> <a href="lang_droptrigger.html">lang_droptrigger.html</a> <a href="lemon.html">lemon.html</a> <a href="pragma.html">pragma.html</a> <a href="security.html">security.html</a> <a href="sharedcache.html">sharedcache.html</a> <a href="sitemap.html">sitemap.html</a> <a href="unlock_notify.html">unlock_notify.html</a> </li> +<a href="atomiccommit.html">atomiccommit.html</a> <a href="cli.html">cli.html</a> <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="fileformat2.html">fileformat2.html</a> <a href="foreignkeys.html">foreignkeys.html</a> <a href="imposter.html">imposter.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_altertable.html">lang_altertable.html</a> <a href="lang_droptrigger.html">lang_droptrigger.html</a> <a href="lemon.html">lemon.html</a> <a href="pragma.html">pragma.html</a> <a href="security.html">security.html</a> <a href="sharedcache.html">sharedcache.html</a> <a href="sitemap.html">sitemap.html</a> <a href="unlock_notify.html">unlock_notify.html</a> <a href="whybytecode.html">whybytecode.html</a> </li> <li><a href="security.html">security.html</a> → <a href="cves.html">cves.html</a> <a href="doclist.html">doclist.html</a> <a href="hirely.html">hirely.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="selfcontained.html">selfcontained.html</a> → @@ -864,18 +864,20 @@ antiRobotDefense(); <li><a href="session/changegroup.html">session/changegroup.html</a> → <a href="keyword_index.html">keyword_index.html</a> <a href="session.html">session.html</a> <a href="session/objlist.html">session/objlist.html</a> <a href="sessionintro.html">sessionintro.html</a> </li> <li><a href="session/constlist.html">session/constlist.html</a> → -<a href="session/c_session_config_strmsize.html">session/c_session_config_strmsize.html</a> <a href="session/c_session_objconfig_rowid.html">session/c_session_objconfig_rowid.html</a> <a href="session/changegroup.html">session/changegroup.html</a> <a href="session/funclist.html">session/funclist.html</a> <a href="session/intro.html">session/intro.html</a> <a href="session/objlist.html">session/objlist.html</a> <a href="session/rebaser.html">session/rebaser.html</a> <a href="session/session.html">session/session.html</a> <a href="session/sqlite3changegroup_add.html">session/sqlite3changegroup_add.html</a> <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a> <a href="session/sqlite3changegroup_delete.html">session/sqlite3changegroup_delete.html</a> <a href="session/sqlite3changegroup_new.html">session/sqlite3changegroup_new.html</a> <a href="session/sqlite3changegroup_output.html">session/sqlite3changegroup_output.html</a> <a href="session/sqlite3changegroup_schema.html">session/sqlite3changegroup_schema.html</a> <a href="session/sqlite3rebaser_configure.html">session/sqlite3rebaser_configure.html</a> <a href="session/sqlite3rebaser_create.html">session/sqlite3rebaser_create.html</a> <a href="session/sqlite3rebaser_delete.html">session/sqlite3rebaser_delete.html</a> <a href="session/sqlite3rebaser_rebase.html">session/sqlite3rebaser_rebase.html</a> <a href="session/sqlite3session_attach.html">session/sqlite3session_attach.html</a> <a href="session/sqlite3session_config.html">session/sqlite3session_config.html</a> <a href="session/sqlite3session_create.html">session/sqlite3session_create.html</a> <a href="session/sqlite3session_delete.html">session/sqlite3session_delete.html</a> <a href="session/sqlite3session_diff.html">session/sqlite3session_diff.html</a> <a href="session/sqlite3session_enable.html">session/sqlite3session_enable.html</a> <a href="session/sqlite3session_indirect.html">session/sqlite3session_indirect.html</a> <a href="session/sqlite3session_isempty.html">session/sqlite3session_isempty.html</a> <a href="session/sqlite3session_memory_used.html">session/sqlite3session_memory_used.html</a> <a href="session/sqlite3session_object_config.html">session/sqlite3session_object_config.html</a> <a href="session/sqlite3session_patchset.html">session/sqlite3session_patchset.html</a> <a href="session/sqlite3session_table_filter.html">session/sqlite3session_table_filter.html</a> </li> +<a href="session/c_session_config_strmsize.html">session/c_session_config_strmsize.html</a> <a href="session/c_session_objconfig_rowid.html">session/c_session_objconfig_rowid.html</a> <a href="session/changegroup.html">session/changegroup.html</a> <a href="session/funclist.html">session/funclist.html</a> <a href="session/intro.html">session/intro.html</a> <a href="session/objlist.html">session/objlist.html</a> <a href="session/rebaser.html">session/rebaser.html</a> <a href="session/session.html">session/session.html</a> <a href="session/sqlite3changegroup_add.html">session/sqlite3changegroup_add.html</a> <a href="session/sqlite3changegroup_add_change.html">session/sqlite3changegroup_add_change.html</a> <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a> <a href="session/sqlite3changegroup_delete.html">session/sqlite3changegroup_delete.html</a> <a href="session/sqlite3changegroup_new.html">session/sqlite3changegroup_new.html</a> <a href="session/sqlite3changegroup_output.html">session/sqlite3changegroup_output.html</a> <a href="session/sqlite3changegroup_schema.html">session/sqlite3changegroup_schema.html</a> <a href="session/sqlite3rebaser_configure.html">session/sqlite3rebaser_configure.html</a> <a href="session/sqlite3rebaser_create.html">session/sqlite3rebaser_create.html</a> <a href="session/sqlite3rebaser_delete.html">session/sqlite3rebaser_delete.html</a> <a href="session/sqlite3rebaser_rebase.html">session/sqlite3rebaser_rebase.html</a> <a href="session/sqlite3session_attach.html">session/sqlite3session_attach.html</a> <a href="session/sqlite3session_config.html">session/sqlite3session_config.html</a> <a href="session/sqlite3session_create.html">session/sqlite3session_create.html</a> <a href="session/sqlite3session_delete.html">session/sqlite3session_delete.html</a> <a href="session/sqlite3session_diff.html">session/sqlite3session_diff.html</a> <a href="session/sqlite3session_enable.html">session/sqlite3session_enable.html</a> <a href="session/sqlite3session_indirect.html">session/sqlite3session_indirect.html</a> <a href="session/sqlite3session_isempty.html">session/sqlite3session_isempty.html</a> <a href="session/sqlite3session_memory_used.html">session/sqlite3session_memory_used.html</a> <a href="session/sqlite3session_object_config.html">session/sqlite3session_object_config.html</a> <a href="session/sqlite3session_patchset.html">session/sqlite3session_patchset.html</a> <a href="session/sqlite3session_table_filter.html">session/sqlite3session_table_filter.html</a> </li> <li><a href="session/funclist.html">session/funclist.html</a> → -<a href="keyword_index.html">keyword_index.html</a> <a href="session/c_session_config_strmsize.html">session/c_session_config_strmsize.html</a> <a href="session/c_session_objconfig_rowid.html">session/c_session_objconfig_rowid.html</a> <a href="session/changegroup.html">session/changegroup.html</a> <a href="session/constlist.html">session/constlist.html</a> <a href="session/intro.html">session/intro.html</a> <a href="session/objlist.html">session/objlist.html</a> <a href="session/rebaser.html">session/rebaser.html</a> <a href="session/session.html">session/session.html</a> <a href="session/sqlite3changegroup_add.html">session/sqlite3changegroup_add.html</a> <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a> <a href="session/sqlite3changegroup_delete.html">session/sqlite3changegroup_delete.html</a> <a href="session/sqlite3changegroup_new.html">session/sqlite3changegroup_new.html</a> <a href="session/sqlite3changegroup_output.html">session/sqlite3changegroup_output.html</a> <a href="session/sqlite3changegroup_schema.html">session/sqlite3changegroup_schema.html</a> <a href="session/sqlite3rebaser_configure.html">session/sqlite3rebaser_configure.html</a> <a href="session/sqlite3rebaser_create.html">session/sqlite3rebaser_create.html</a> <a href="session/sqlite3rebaser_delete.html">session/sqlite3rebaser_delete.html</a> <a href="session/sqlite3rebaser_rebase.html">session/sqlite3rebaser_rebase.html</a> <a href="session/sqlite3session_attach.html">session/sqlite3session_attach.html</a> <a href="session/sqlite3session_config.html">session/sqlite3session_config.html</a> <a href="session/sqlite3session_create.html">session/sqlite3session_create.html</a> <a href="session/sqlite3session_delete.html">session/sqlite3session_delete.html</a> <a href="session/sqlite3session_diff.html">session/sqlite3session_diff.html</a> <a href="session/sqlite3session_enable.html">session/sqlite3session_enable.html</a> <a href="session/sqlite3session_indirect.html">session/sqlite3session_indirect.html</a> <a href="session/sqlite3session_isempty.html">session/sqlite3session_isempty.html</a> <a href="session/sqlite3session_memory_used.html">session/sqlite3session_memory_used.html</a> <a href="session/sqlite3session_object_config.html">session/sqlite3session_object_config.html</a> <a href="session/sqlite3session_patchset.html">session/sqlite3session_patchset.html</a> <a href="session/sqlite3session_table_filter.html">session/sqlite3session_table_filter.html</a> </li> +<a href="keyword_index.html">keyword_index.html</a> <a href="session/c_session_config_strmsize.html">session/c_session_config_strmsize.html</a> <a href="session/c_session_objconfig_rowid.html">session/c_session_objconfig_rowid.html</a> <a href="session/changegroup.html">session/changegroup.html</a> <a href="session/constlist.html">session/constlist.html</a> <a href="session/intro.html">session/intro.html</a> <a href="session/objlist.html">session/objlist.html</a> <a href="session/rebaser.html">session/rebaser.html</a> <a href="session/session.html">session/session.html</a> <a href="session/sqlite3changegroup_add.html">session/sqlite3changegroup_add.html</a> <a href="session/sqlite3changegroup_add_change.html">session/sqlite3changegroup_add_change.html</a> <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a> <a href="session/sqlite3changegroup_delete.html">session/sqlite3changegroup_delete.html</a> <a href="session/sqlite3changegroup_new.html">session/sqlite3changegroup_new.html</a> <a href="session/sqlite3changegroup_output.html">session/sqlite3changegroup_output.html</a> <a href="session/sqlite3changegroup_schema.html">session/sqlite3changegroup_schema.html</a> <a href="session/sqlite3rebaser_configure.html">session/sqlite3rebaser_configure.html</a> <a href="session/sqlite3rebaser_create.html">session/sqlite3rebaser_create.html</a> <a href="session/sqlite3rebaser_delete.html">session/sqlite3rebaser_delete.html</a> <a href="session/sqlite3rebaser_rebase.html">session/sqlite3rebaser_rebase.html</a> <a href="session/sqlite3session_attach.html">session/sqlite3session_attach.html</a> <a href="session/sqlite3session_config.html">session/sqlite3session_config.html</a> <a href="session/sqlite3session_create.html">session/sqlite3session_create.html</a> <a href="session/sqlite3session_delete.html">session/sqlite3session_delete.html</a> <a href="session/sqlite3session_diff.html">session/sqlite3session_diff.html</a> <a href="session/sqlite3session_enable.html">session/sqlite3session_enable.html</a> <a href="session/sqlite3session_indirect.html">session/sqlite3session_indirect.html</a> <a href="session/sqlite3session_isempty.html">session/sqlite3session_isempty.html</a> <a href="session/sqlite3session_memory_used.html">session/sqlite3session_memory_used.html</a> <a href="session/sqlite3session_object_config.html">session/sqlite3session_object_config.html</a> <a href="session/sqlite3session_patchset.html">session/sqlite3session_patchset.html</a> <a href="session/sqlite3session_table_filter.html">session/sqlite3session_table_filter.html</a> </li> <li><a href="session/intro.html">session/intro.html</a> → -<a href="keyword_index.html">keyword_index.html</a> <a href="session.html">session.html</a> <a href="session/c_session_config_strmsize.html">session/c_session_config_strmsize.html</a> <a href="session/c_session_objconfig_rowid.html">session/c_session_objconfig_rowid.html</a> <a href="session/changegroup.html">session/changegroup.html</a> <a href="session/constlist.html">session/constlist.html</a> <a href="session/funclist.html">session/funclist.html</a> <a href="session/objlist.html">session/objlist.html</a> <a href="session/rebaser.html">session/rebaser.html</a> <a href="session/session.html">session/session.html</a> <a href="session/sqlite3changegroup_add.html">session/sqlite3changegroup_add.html</a> <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a> <a href="session/sqlite3changegroup_delete.html">session/sqlite3changegroup_delete.html</a> <a href="session/sqlite3changegroup_new.html">session/sqlite3changegroup_new.html</a> <a href="session/sqlite3changegroup_output.html">session/sqlite3changegroup_output.html</a> <a href="session/sqlite3changegroup_schema.html">session/sqlite3changegroup_schema.html</a> <a href="session/sqlite3rebaser_configure.html">session/sqlite3rebaser_configure.html</a> <a href="session/sqlite3rebaser_create.html">session/sqlite3rebaser_create.html</a> <a href="session/sqlite3rebaser_delete.html">session/sqlite3rebaser_delete.html</a> <a href="session/sqlite3rebaser_rebase.html">session/sqlite3rebaser_rebase.html</a> <a href="session/sqlite3session_attach.html">session/sqlite3session_attach.html</a> <a href="session/sqlite3session_config.html">session/sqlite3session_config.html</a> <a href="session/sqlite3session_create.html">session/sqlite3session_create.html</a> <a href="session/sqlite3session_delete.html">session/sqlite3session_delete.html</a> <a href="session/sqlite3session_diff.html">session/sqlite3session_diff.html</a> <a href="session/sqlite3session_enable.html">session/sqlite3session_enable.html</a> <a href="session/sqlite3session_indirect.html">session/sqlite3session_indirect.html</a> <a href="session/sqlite3session_isempty.html">session/sqlite3session_isempty.html</a> <a href="session/sqlite3session_memory_used.html">session/sqlite3session_memory_used.html</a> <a href="session/sqlite3session_object_config.html">session/sqlite3session_object_config.html</a> <a href="session/sqlite3session_patchset.html">session/sqlite3session_patchset.html</a> <a href="session/sqlite3session_table_filter.html">session/sqlite3session_table_filter.html</a> <a href="sessionintro.html">sessionintro.html</a> </li> +<a href="keyword_index.html">keyword_index.html</a> <a href="session.html">session.html</a> <a href="session/c_session_config_strmsize.html">session/c_session_config_strmsize.html</a> <a href="session/c_session_objconfig_rowid.html">session/c_session_objconfig_rowid.html</a> <a href="session/changegroup.html">session/changegroup.html</a> <a href="session/constlist.html">session/constlist.html</a> <a href="session/funclist.html">session/funclist.html</a> <a href="session/objlist.html">session/objlist.html</a> <a href="session/rebaser.html">session/rebaser.html</a> <a href="session/session.html">session/session.html</a> <a href="session/sqlite3changegroup_add.html">session/sqlite3changegroup_add.html</a> <a href="session/sqlite3changegroup_add_change.html">session/sqlite3changegroup_add_change.html</a> <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a> <a href="session/sqlite3changegroup_delete.html">session/sqlite3changegroup_delete.html</a> <a href="session/sqlite3changegroup_new.html">session/sqlite3changegroup_new.html</a> <a href="session/sqlite3changegroup_output.html">session/sqlite3changegroup_output.html</a> <a href="session/sqlite3changegroup_schema.html">session/sqlite3changegroup_schema.html</a> <a href="session/sqlite3rebaser_configure.html">session/sqlite3rebaser_configure.html</a> <a href="session/sqlite3rebaser_create.html">session/sqlite3rebaser_create.html</a> <a href="session/sqlite3rebaser_delete.html">session/sqlite3rebaser_delete.html</a> <a href="session/sqlite3rebaser_rebase.html">session/sqlite3rebaser_rebase.html</a> <a href="session/sqlite3session_attach.html">session/sqlite3session_attach.html</a> <a href="session/sqlite3session_config.html">session/sqlite3session_config.html</a> <a href="session/sqlite3session_create.html">session/sqlite3session_create.html</a> <a href="session/sqlite3session_delete.html">session/sqlite3session_delete.html</a> <a href="session/sqlite3session_diff.html">session/sqlite3session_diff.html</a> <a href="session/sqlite3session_enable.html">session/sqlite3session_enable.html</a> <a href="session/sqlite3session_indirect.html">session/sqlite3session_indirect.html</a> <a href="session/sqlite3session_isempty.html">session/sqlite3session_isempty.html</a> <a href="session/sqlite3session_memory_used.html">session/sqlite3session_memory_used.html</a> <a href="session/sqlite3session_object_config.html">session/sqlite3session_object_config.html</a> <a href="session/sqlite3session_patchset.html">session/sqlite3session_patchset.html</a> <a href="session/sqlite3session_table_filter.html">session/sqlite3session_table_filter.html</a> <a href="sessionintro.html">sessionintro.html</a> </li> <li><a href="session/objlist.html">session/objlist.html</a> → -<a href="session/c_session_config_strmsize.html">session/c_session_config_strmsize.html</a> <a href="session/c_session_objconfig_rowid.html">session/c_session_objconfig_rowid.html</a> <a href="session/changegroup.html">session/changegroup.html</a> <a href="session/constlist.html">session/constlist.html</a> <a href="session/funclist.html">session/funclist.html</a> <a href="session/intro.html">session/intro.html</a> <a href="session/rebaser.html">session/rebaser.html</a> <a href="session/session.html">session/session.html</a> <a href="session/sqlite3changegroup_add.html">session/sqlite3changegroup_add.html</a> <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a> <a href="session/sqlite3changegroup_delete.html">session/sqlite3changegroup_delete.html</a> <a href="session/sqlite3changegroup_new.html">session/sqlite3changegroup_new.html</a> <a href="session/sqlite3changegroup_output.html">session/sqlite3changegroup_output.html</a> <a href="session/sqlite3changegroup_schema.html">session/sqlite3changegroup_schema.html</a> <a href="session/sqlite3rebaser_configure.html">session/sqlite3rebaser_configure.html</a> <a href="session/sqlite3rebaser_create.html">session/sqlite3rebaser_create.html</a> <a href="session/sqlite3rebaser_delete.html">session/sqlite3rebaser_delete.html</a> <a href="session/sqlite3rebaser_rebase.html">session/sqlite3rebaser_rebase.html</a> <a href="session/sqlite3session_attach.html">session/sqlite3session_attach.html</a> <a href="session/sqlite3session_config.html">session/sqlite3session_config.html</a> <a href="session/sqlite3session_create.html">session/sqlite3session_create.html</a> <a href="session/sqlite3session_delete.html">session/sqlite3session_delete.html</a> <a href="session/sqlite3session_diff.html">session/sqlite3session_diff.html</a> <a href="session/sqlite3session_enable.html">session/sqlite3session_enable.html</a> <a href="session/sqlite3session_indirect.html">session/sqlite3session_indirect.html</a> <a href="session/sqlite3session_isempty.html">session/sqlite3session_isempty.html</a> <a href="session/sqlite3session_memory_used.html">session/sqlite3session_memory_used.html</a> <a href="session/sqlite3session_object_config.html">session/sqlite3session_object_config.html</a> <a href="session/sqlite3session_patchset.html">session/sqlite3session_patchset.html</a> <a href="session/sqlite3session_table_filter.html">session/sqlite3session_table_filter.html</a> </li> +<a href="session/c_session_config_strmsize.html">session/c_session_config_strmsize.html</a> <a href="session/c_session_objconfig_rowid.html">session/c_session_objconfig_rowid.html</a> <a href="session/changegroup.html">session/changegroup.html</a> <a href="session/constlist.html">session/constlist.html</a> <a href="session/funclist.html">session/funclist.html</a> <a href="session/intro.html">session/intro.html</a> <a href="session/rebaser.html">session/rebaser.html</a> <a href="session/session.html">session/session.html</a> <a href="session/sqlite3changegroup_add.html">session/sqlite3changegroup_add.html</a> <a href="session/sqlite3changegroup_add_change.html">session/sqlite3changegroup_add_change.html</a> <a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a> <a href="session/sqlite3changegroup_delete.html">session/sqlite3changegroup_delete.html</a> <a href="session/sqlite3changegroup_new.html">session/sqlite3changegroup_new.html</a> <a href="session/sqlite3changegroup_output.html">session/sqlite3changegroup_output.html</a> <a href="session/sqlite3changegroup_schema.html">session/sqlite3changegroup_schema.html</a> <a href="session/sqlite3rebaser_configure.html">session/sqlite3rebaser_configure.html</a> <a href="session/sqlite3rebaser_create.html">session/sqlite3rebaser_create.html</a> <a href="session/sqlite3rebaser_delete.html">session/sqlite3rebaser_delete.html</a> <a href="session/sqlite3rebaser_rebase.html">session/sqlite3rebaser_rebase.html</a> <a href="session/sqlite3session_attach.html">session/sqlite3session_attach.html</a> <a href="session/sqlite3session_config.html">session/sqlite3session_config.html</a> <a href="session/sqlite3session_create.html">session/sqlite3session_create.html</a> <a href="session/sqlite3session_delete.html">session/sqlite3session_delete.html</a> <a href="session/sqlite3session_diff.html">session/sqlite3session_diff.html</a> <a href="session/sqlite3session_enable.html">session/sqlite3session_enable.html</a> <a href="session/sqlite3session_indirect.html">session/sqlite3session_indirect.html</a> <a href="session/sqlite3session_isempty.html">session/sqlite3session_isempty.html</a> <a href="session/sqlite3session_memory_used.html">session/sqlite3session_memory_used.html</a> <a href="session/sqlite3session_object_config.html">session/sqlite3session_object_config.html</a> <a href="session/sqlite3session_patchset.html">session/sqlite3session_patchset.html</a> <a href="session/sqlite3session_table_filter.html">session/sqlite3session_table_filter.html</a> </li> <li><a href="session/rebaser.html">session/rebaser.html</a> → <a href="keyword_index.html">keyword_index.html</a> <a href="session.html">session.html</a> <a href="session/objlist.html">session/objlist.html</a> </li> <li><a href="session/session.html">session/session.html</a> → <a href="keyword_index.html">keyword_index.html</a> <a href="session.html">session.html</a> <a href="session/objlist.html">session/objlist.html</a> </li> <li><a href="session/sqlite3changegroup_add.html">session/sqlite3changegroup_add.html</a> → +<a href="keyword_index.html">keyword_index.html</a> <a href="session.html">session.html</a> <a href="session/changegroup.html">session/changegroup.html</a> <a href="session/funclist.html">session/funclist.html</a> <a href="session/sqlite3changegroup_add_change.html">session/sqlite3changegroup_add_change.html</a> </li> +<li><a href="session/sqlite3changegroup_add_change.html">session/sqlite3changegroup_add_change.html</a> → <a href="keyword_index.html">keyword_index.html</a> <a href="session.html">session.html</a> <a href="session/changegroup.html">session/changegroup.html</a> <a href="session/funclist.html">session/funclist.html</a> </li> <li><a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a> → <a href="keyword_index.html">keyword_index.html</a> <a href="session.html">session.html</a> <a href="session/funclist.html">session/funclist.html</a> </li> @@ -1133,12 +1135,14 @@ antiRobotDefense(); <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="fileformat2.html">fileformat2.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="rescode.html">rescode.html</a> <a href="sitemap.html">sitemap.html</a> <a href="vfs.html">vfs.html</a> <a href="wal.html">wal.html</a> </li> <li><a href="whentouse.html">whentouse.html</a> → <a href="doclist.html">doclist.html</a> <a href="docs.html">docs.html</a> <a href="famous.html">famous.html</a> <a href="features.html">features.html</a> <a href="index.html">index.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="np1queryprob.html">np1queryprob.html</a> <a href="quirks.html">quirks.html</a> <a href="sitemap.html">sitemap.html</a> <a href="tempfiles.html">tempfiles.html</a> </li> +<li><a href="whybytecode.html">whybytecode.html</a> → +<a href="doclist.html">doclist.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="opcode.html">opcode.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="whyc.html">whyc.html</a> → <a href="doclist.html">doclist.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="whynotgit.html">whynotgit.html</a> → <a href="doclist.html">doclist.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="windowfunctions.html">windowfunctions.html</a> → -<a href="appfunc.html">appfunc.html</a> <a href="c3ref/create_function.html">c3ref/create_function.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="docs.html">docs.html</a> <a href="features.html">features.html</a> <a href="fullsql.html">fullsql.html</a> <a href="index.html">index.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_aggfunc.html">lang_aggfunc.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="lang_expr.html">lang_expr.html</a> <a href="lang_returning.html">lang_returning.html</a> <a href="lang_with.html">lang_with.html</a> <a href="sitemap.html">sitemap.html</a> </li> +<a href="appfunc.html">appfunc.html</a> <a href="c3ref/create_function.html">c3ref/create_function.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="compile.html">compile.html</a> <a href="doclist.html">doclist.html</a> <a href="docs.html">docs.html</a> <a href="features.html">features.html</a> <a href="fullsql.html">fullsql.html</a> <a href="index.html">index.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang.html">lang.html</a> <a href="lang_aggfunc.html">lang_aggfunc.html</a> <a href="lang_corefunc.html">lang_corefunc.html</a> <a href="lang_expr.html">lang_expr.html</a> <a href="lang_returning.html">lang_returning.html</a> <a href="lang_with.html">lang_with.html</a> <a href="optoverview.html">optoverview.html</a> <a href="sitemap.html">sitemap.html</a> </li> <li><a href="withoutrowid.html">withoutrowid.html</a> → <a href="autoinc.html">autoinc.html</a> <a href="c3ref/last_insert_rowid.html">c3ref/last_insert_rowid.html</a> <a href="c3ref/table_column_metadata.html">c3ref/table_column_metadata.html</a> <a href="c3ref/update_hook.html">c3ref/update_hook.html</a> <a href="capi3ref.html">capi3ref.html</a> <a href="doclist.html">doclist.html</a> <a href="fileformat2.html">fileformat2.html</a> <a href="fullsql.html">fullsql.html</a> <a href="imposter.html">imposter.html</a> <a href="keyword_index.html">keyword_index.html</a> <a href="lang_createtable.html">lang_createtable.html</a> <a href="lang_expr.html">lang_expr.html</a> <a href="optoverview.html">optoverview.html</a> <a href="pragma.html">pragma.html</a> <a href="queryplanner.html">queryplanner.html</a> <a href="quirks.html">quirks.html</a> <a href="rowidtable.html">rowidtable.html</a> <a href="schematab.html">schematab.html</a> <a href="sessionintro.html">sessionintro.html</a> <a href="sitemap.html">sitemap.html</a> <a href="sqldiff.html">sqldiff.html</a> <a href="stricttables.html">stricttables.html</a> <a href="vtab.html">vtab.html</a> </li> <li><a href="zeroconf.html">zeroconf.html</a> → diff --git a/www/doc_target_crossref.html b/www/doc_target_crossref.html index 736ee11..dfcbedd 100644 --- a/www/doc_target_crossref.html +++ b/www/doc_target_crossref.html @@ -916,7 +916,6 @@ antiRobotDefense(); <li><a href="fts3.html#unicode61">fts3.html#unicode61</a> → unicode61</li> <li><a href="fts5.html">fts5.html</a> → FTS5 fts5</li> <li><a href="fts5.html#_auxiliary_functions_">fts5.html#_auxiliary_functions_</a> → {FTS5 auxiliary functions}</li> -<li><a href="fts5.html#_custom_auxiliary_functions_api_reference_">fts5.html#_custom_auxiliary_functions_api_reference_</a> → {custom auxiliary functions}</li> <li><a href="fts5.html#_summary_of_technical_differences_">fts5.html#_summary_of_technical_differences_</a> → {fts5 technical differences}</li> <li><a href="fts5.html#appendix_a">fts5.html#appendix_a</a> → {comparison with fts4}</li> <li><a href="fts5.html#carrotq">fts5.html#carrotq</a> → {FTS5 initial token}</li> @@ -925,6 +924,8 @@ antiRobotDefense(); <li><a href="fts5.html#contentless_delete_tables">fts5.html#contentless_delete_tables</a> → {FTS5 contentless-delete tables}</li> <li><a href="fts5.html#contentless_tables">fts5.html#contentless_tables</a> → {FTS5 contentless tables}</li> <li><a href="fts5.html#custom_auxiliary_functions">fts5.html#custom_auxiliary_functions</a> → {FTS5 custom auxiliary functions}</li> +<li><a href="fts5.html#custom_auxiliary_functions_api_overview">fts5.html#custom_auxiliary_functions_api_overview</a> → {custom auxiliary overview}</li> +<li><a href="fts5.html#custom_auxiliary_functions_api_reference">fts5.html#custom_auxiliary_functions_api_reference</a> → {custom auxiliary functions}</li> <li><a href="fts5.html#custom_tokenizers">fts5.html#custom_tokenizers</a> → {custom tokenizers}</li> <li><a href="fts5.html#extending_fts5">fts5.html#extending_fts5</a> → {Extending FTS5}</li> <li><a href="fts5.html#external_content_and_contentless_tables">fts5.html#external_content_and_contentless_tables</a> → {FTS5 content option}</li> @@ -1024,6 +1025,7 @@ antiRobotDefense(); <li><a href="json1.html#jobjb">json1.html#jobjb</a> → jsonb_object {jsonb_object SQL function}</li> <li><a href="json1.html#jpatch">json1.html#jpatch</a> → json_patch {json_patch SQL function}</li> <li><a href="json1.html#jpatchb">json1.html#jpatchb</a> → jsonb_patch {jsonb_patch SQL function}</li> +<li><a href="json1.html#jpretty">json1.html#jpretty</a> → json_pretty {json_pretty SQL function}</li> <li><a href="json1.html#jptr">json1.html#jptr</a> → {the - and - operators} {the - operator}</li> <li><a href="json1.html#jquote">json1.html#jquote</a> → json_quote {json_quote SQL function}</li> <li><a href="json1.html#jrepl">json1.html#jrepl</a> → json_replace {json_replace SQL function}</li> @@ -1057,9 +1059,11 @@ antiRobotDefense(); <li><a href="lang_altertable.html#altertabrename">lang_altertable.html#altertabrename</a> → {ALTER TABLE RENAME} {ALTER TABLE RENAME documentation} {rename table}</li> <li><a href="lang_altertable.html#otheralter">lang_altertable.html#otheralter</a> → {generalized ALTER TABLE procedure}</li> <li><a href="lang_analyze.html">lang_analyze.html</a> → ANALYZE analyze</li> -<li><a href="lang_analyze.html#approx">lang_analyze.html#approx</a> → {approximate ANALYZE}</li> -<li><a href="lang_analyze.html#autoanalyze">lang_analyze.html#autoanalyze</a> → {automatically running ANALYZE}</li> -<li><a href="lang_analyze.html#req">lang_analyze.html#req</a> → {recommended ANALYZE usage pattern}</li> +<li><a href="lang_analyze.html#approx">lang_analyze.html#approx</a> → {Approximate ANALYZE For Large Databases} {approximate ANALYZE}</li> +<li><a href="lang_analyze.html#autoanalyze">lang_analyze.html#autoanalyze</a> → {Automatically Running ANALYZE} {automatically running ANALYZE}</li> +<li><a href="lang_analyze.html#pragopt">lang_analyze.html#pragopt</a> → {running ANALYZE via PRAGMA optimize}</li> +<li><a href="lang_analyze.html#req">lang_analyze.html#req</a> → {Recommended usage patterns for ANALYZE}</li> +<li><a href="lang_analyze.html#statanal">lang_analyze.html#statanal</a> → {static ANALYZE results}</li> <li><a href="lang_attach.html">lang_attach.html</a> → ATTACH {ATTACH DATABASE} attach attached</li> <li><a href="lang_comment.html">lang_comment.html</a> → comment comments</li> <li><a href="lang_conflict.html">lang_conflict.html</a> → {ON CONFLICT} {ON CONFLICT clause} {ON CONFLICT clauses} conflict {conflict clause} {conflict resolution algorithm}</li> @@ -1134,15 +1138,17 @@ antiRobotDefense(); <li><a href="lang_createvtab.html">lang_createvtab.html</a> → {CREATE VIRTUAL TABLE} createvtab</li> <li><a href="lang_datefunc.html">lang_datefunc.html</a> → {Date And Time Functions} {date and time functions} datefunc</li> <li><a href="lang_datefunc.html#automod">lang_datefunc.html#automod</a> → {auto modifier}</li> +<li><a href="lang_datefunc.html#dtambg">lang_datefunc.html#dtambg</a> → {ambiguous dates}</li> <li><a href="lang_datefunc.html#dtmods">lang_datefunc.html#dtmods</a> → {date/time modifiers} modifiers</li> <li><a href="lang_datefunc.html#dttm">lang_datefunc.html#dttm</a> → date {date SQL function} datetime {datetime SQL function} time {time SQL function}</li> -<li><a href="lang_datefunc.html#jdmod">lang_datefunc.html#jdmod</a> → {julianday modifier}</li> +<li><a href="lang_datefunc.html#jdmod">lang_datefunc.html#jdmod</a> → {julianday modifier} {unixepoch modifier}</li> <li><a href="lang_datefunc.html#jlndy">lang_datefunc.html#jlndy</a> → julianday {julianday SQL function}</li> -<li><a href="lang_datefunc.html#localtime">lang_datefunc.html#localtime</a> → {localtime modifier} {utc modifier}</li> +<li><a href="lang_datefunc.html#localtime">lang_datefunc.html#localtime</a> → {localtime modifier} {utc and localtime modifiers} {utc modifier}</li> <li><a href="lang_datefunc.html#strftm">lang_datefunc.html#strftm</a> → strftime {strftime SQL function}</li> <li><a href="lang_datefunc.html#subsec">lang_datefunc.html#subsec</a> → {subsec modifier} {subsecond modifier}</li> <li><a href="lang_datefunc.html#tmdif">lang_datefunc.html#tmdif</a> → timediff {timediff SQL function}</li> <li><a href="lang_datefunc.html#tmshf">lang_datefunc.html#tmshf</a> → {time shift modifiers}</li> +<li><a href="lang_datefunc.html#tmval">lang_datefunc.html#tmval</a> → {time value} {time values} time-value time-values</li> <li><a href="lang_datefunc.html#uepch">lang_datefunc.html#uepch</a> → unixepoch {unixepoch SQL function} {unixepoch function}</li> <li><a href="lang_delete.html">lang_delete.html</a> → DELETE DELETEs delete</li> <li><a href="lang_delete.html#truncateopt">lang_delete.html#truncateopt</a> → {truncate optimization}</li> @@ -1169,7 +1175,7 @@ antiRobotDefense(); <li><a href="lang_expr.html#isdf">lang_expr.html#isdf</a> → {IS DISTINCT FROM} {IS NOT DISTINCT FROM}</li> <li><a href="lang_expr.html#isisnot">lang_expr.html#isisnot</a> → {IS NOT operator} {IS operator}</li> <li><a href="lang_expr.html#like">lang_expr.html#like</a> → ESCAPE LIKE</li> -<li><a href="lang_expr.html#litvalue">lang_expr.html#litvalue</a> → {literal value}</li> +<li><a href="lang_expr.html#litvalue">lang_expr.html#litvalue</a> → {literal value} {numeric literals}</li> <li><a href="lang_expr.html#match">lang_expr.html#match</a> → MATCH</li> <li><a href="lang_expr.html#regexp">lang_expr.html#regexp</a> → REGEXP</li> <li><a href="lang_expr.html#subq">lang_expr.html#subq</a> → Subqueries</li> @@ -1292,12 +1298,13 @@ antiRobotDefense(); <li><a href="opcode.html#codes">opcode.html#codes</a> → {list of current bytecodes} {opcode definitions}</li> <li><a href="opcode.html#subprog">opcode.html#subprog</a> → subprograms</li> <li><a href="optoverview.html">optoverview.html</a> → {SQLite query planner} optimizer {query planner}</li> -<li><a href="optoverview.html#autoindex">optoverview.html#autoindex</a> → {Automatic indexing} {automatic indexes} {automatic indexing}</li> +<li><a href="optoverview.html#autoindex">optoverview.html#autoindex</a> → {Automatic indexing} {Query-time indexes} {Query-time indexing} {automatic indexes} {automatic indexing} {query-time index} {query-time indexing}</li> <li><a href="optoverview.html#constprop">optoverview.html#constprop</a> → {constant-propagation optimization}</li> <li><a href="optoverview.html#coroutines">optoverview.html#coroutines</a> → co-routines {subquery co-routines}</li> <li><a href="optoverview.html#crossjoin">optoverview.html#crossjoin</a> → {CROSS JOIN} {Manual Control Of Query Plans Using CROSS JOIN}</li> <li><a href="optoverview.html#flattening">optoverview.html#flattening</a> → flattened {flattening optimization} {query flattener}</li> <li><a href="optoverview.html#hashjoin">optoverview.html#hashjoin</a> → {hash join}</li> +<li><a href="optoverview.html#joins">optoverview.html#joins</a> → {join order}</li> <li><a href="optoverview.html#leftjoinreduction">optoverview.html#leftjoinreduction</a> → {LEFT JOIN strength reduction optimization} {OUTER JOIN strength reduction} {OUTER JOIN strength reduction optimization}</li> <li><a href="optoverview.html#like_opt">optoverview.html#like_opt</a> → {LIKE optimization}</li> <li><a href="optoverview.html#manctrl">optoverview.html#manctrl</a> → {Manual Control Of Query Plans Using SQLITE_STAT Tables}</li> @@ -1305,10 +1312,9 @@ antiRobotDefense(); <li><a href="optoverview.html#omitnoopjoin">optoverview.html#omitnoopjoin</a> → {omit-left-join optimization} {omit-outer-join optimization}</li> <li><a href="optoverview.html#or_opt">optoverview.html#or_opt</a> → {OR optimization} {or optimization}</li> <li><a href="optoverview.html#partsort">optoverview.html#partsort</a> → {sorting subsets of the result}</li> -<li><a href="optoverview.html#pushdown">optoverview.html#pushdown</a> → {push-down optimization}</li> +<li><a href="optoverview.html#pushdown">optoverview.html#pushdown</a> → {WHERE-clause push-down optimization} {push-down optimization}</li> <li><a href="optoverview.html#rangequery">optoverview.html#rangequery</a> → {range query optimization}</li> <li><a href="optoverview.html#skipscan">optoverview.html#skipscan</a> → skip-scan {skip-scan optimization}</li> -<li><a href="optoverview.html#table_order">optoverview.html#table_order</a> → {join order}</li> <li><a href="optoverview.html#uplus">optoverview.html#uplus</a> → upluscontrol</li> <li><a href="partialindex.html">partialindex.html</a> → {partial index} {partial indexes} {partial indices}</li> <li><a href="pgszchng2016.html">pgszchng2016.html</a> → {increase in the default page size} {version 3.12.0 page size change}</li> @@ -1554,6 +1560,7 @@ antiRobotDefense(); <li><a href="releaselog/3_45_1.html">releaselog/3_45_1.html</a> → {Version 3.45.1} {version 3.45.1}</li> <li><a href="releaselog/3_45_2.html">releaselog/3_45_2.html</a> → {Version 3.45.2} {version 3.45.2}</li> <li><a href="releaselog/3_45_3.html">releaselog/3_45_3.html</a> → {Version 3.45.3} {version 3.45.3}</li> +<li><a href="releaselog/3_46_0.html">releaselog/3_46_0.html</a> → {Version 3.46.0} {version 3.46.0}</li> <li><a href="releaselog/3_4_0.html">releaselog/3_4_0.html</a> → {Version 3.4.0} {version 3.4.0}</li> <li><a href="releaselog/3_4_1.html">releaselog/3_4_1.html</a> → {Version 3.4.1} {version 3.4.1}</li> <li><a href="releaselog/3_4_2.html">releaselog/3_4_2.html</a> → {Version 3.4.2} {version 3.4.2}</li> @@ -1797,6 +1804,7 @@ antiRobotDefense(); <li><a href="session/rebaser.html">session/rebaser.html</a> → sqlite3_rebaser</li> <li><a href="session/session.html">session/session.html</a> → sqlite3_session</li> <li><a href="session/sqlite3changegroup_add.html">session/sqlite3changegroup_add.html</a> → sqlite3changegroup_add</li> +<li><a href="session/sqlite3changegroup_add_change.html">session/sqlite3changegroup_add_change.html</a> → sqlite3changegroup_add_change</li> <li><a href="session/sqlite3changegroup_add_strm.html">session/sqlite3changegroup_add_strm.html</a> → sqlite3changegroup_add_strm sqlite3changegroup_output_strm sqlite3changeset_apply_strm sqlite3changeset_apply_v2_strm sqlite3changeset_concat_strm sqlite3changeset_invert_strm sqlite3changeset_start_strm sqlite3changeset_start_v2_strm sqlite3rebaser_rebase_strm sqlite3session_changeset_strm sqlite3session_patchset_strm</li> <li><a href="session/sqlite3changegroup_delete.html">session/sqlite3changegroup_delete.html</a> → sqlite3changegroup_delete</li> <li><a href="session/sqlite3changegroup_new.html">session/sqlite3changegroup_new.html</a> → sqlite3changegroup_new</li> @@ -2073,7 +2081,8 @@ antiRobotDefense(); <li><a href="whentouse.html#serversidedb">whentouse.html#serversidedb</a> → {server-side database}</li> <li><a href="whentouse.html#website">whentouse.html#website</a> → {using SQLite for websites}</li> <li><a href="whentouse.html#wireproto">whentouse.html#wireproto</a> → {data transfer format}</li> -<li><a href="windowfunctions.html">windowfunctions.html</a> → {Window functions} {window function} {window functions}</li> +<li><a href="whybytecode.html">whybytecode.html</a> → {Why SQLite Uses Bytecode}</li> +<li><a href="windowfunctions.html">windowfunctions.html</a> → {Window functions} {window function} {window functions} winfunc</li> <li><a href="windowfunctions.html#aggwinfunc">windowfunctions.html#aggwinfunc</a> → {aggregate window functions}</li> <li><a href="windowfunctions.html#biwinfunc">windowfunctions.html#biwinfunc</a> → {builtin window functions}</li> <li><a href="windowfunctions.html#builtins">windowfunctions.html#builtins</a> → {built-in window functions} built-ins</li> diff --git a/www/doclist.html b/www/doclist.html index 3e87b54..909bfe4 100644 --- a/www/doclist.html +++ b/www/doclist.html @@ -333,6 +333,7 @@ See Also: <li><a href="affcase1.html">What If OpenDocument Used SQLite?</a></li> <li><a href="whyc.html">Why Is SQLite Coded In C</a></li> <li><a href="whynotgit.html">Why SQLite Does Not Use Git</a></li> +<li><a href="whybytecode.html">Why SQLite Uses Bytecode</a></li> <li><a href="windowfunctions.html">Window Functions</a></li> <li><a href="wal.html">Write-Ahead Logging</a></li> <li><a href="zeroconf.html">Zero-Configuration</a></li> diff --git a/www/eqp.html b/www/eqp.html index b4e68fa..fff35c6 100644 --- a/www/eqp.html +++ b/www/eqp.html @@ -271,7 +271,7 @@ QUERY PLAN </pre></div> <p> - All joins in SQLite are <a href="optoverview.html#table_order">implemented using nested scans</a>. When a + All joins in SQLite are <a href="optoverview.html#joins">implemented using nested scans</a>. When a SELECT query that features a join is analyzed using EXPLAIN QUERY PLAN, one SCAN or SEARCH record is output for each nested loop. For example: </p><div class="codeblock"><pre>sqlite> EXPLAIN QUERY PLAN SELECT t1.*, t2.* FROM t1, t2 WHERE t1.a=1 AND t1.b>2; diff --git a/www/fileformat.html b/www/fileformat.html index a26002b..f6fb7cc 100644 --- a/www/fileformat.html +++ b/www/fileformat.html @@ -691,7 +691,7 @@ The only exception is when page 1 is an interior b-tree page. Page 1 has 100 fewer bytes of storage space available, due to the presence of the database header at the beginning of that page, and so sometimes (rarely) if page 1 is an interior b-tree page, it can -end up holding just a a single key. In all other cases, K is 2 or more. +end up holding just a single key. In all other cases, K is 2 or more. The upper bound on K is as many keys as will fit on the page. Large keys on index b-trees are split up into <a href="fileformat2.html#ovflpgs">overflow pages</a> so that no single key uses more than one fourth of the available storage space on the page @@ -2201,5 +2201,5 @@ file, and since the wal-index is a transient structure, no further information about the format of the wal-index will be provided here. Additional details on the format of the wal-index are contained in the separate <a href="walformat.html#walidxfmt">WAL-index File Format</a> document.</p> - +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/fileformat2.in?m=af2cdeaf41">2024-04-20 09:25:12</a> UTC </small></i></p> diff --git a/www/fileformat2.html b/www/fileformat2.html index a26002b..f6fb7cc 100644 --- a/www/fileformat2.html +++ b/www/fileformat2.html @@ -691,7 +691,7 @@ The only exception is when page 1 is an interior b-tree page. Page 1 has 100 fewer bytes of storage space available, due to the presence of the database header at the beginning of that page, and so sometimes (rarely) if page 1 is an interior b-tree page, it can -end up holding just a a single key. In all other cases, K is 2 or more. +end up holding just a single key. In all other cases, K is 2 or more. The upper bound on K is as many keys as will fit on the page. Large keys on index b-trees are split up into <a href="fileformat2.html#ovflpgs">overflow pages</a> so that no single key uses more than one fourth of the available storage space on the page @@ -2201,5 +2201,5 @@ file, and since the wal-index is a transient structure, no further information about the format of the wal-index will be provided here. Additional details on the format of the wal-index are contained in the separate <a href="walformat.html#walidxfmt">WAL-index File Format</a> document.</p> - +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/fileformat2.in?m=af2cdeaf41">2024-04-20 09:25:12</a> UTC </small></i></p> diff --git a/www/flextypegood.html b/www/flextypegood.html index bc1577b..5810ff4 100644 --- a/www/flextypegood.html +++ b/www/flextypegood.html @@ -416,7 +416,7 @@ But type enforcement is no help in prevent subtly incorrect data from being recorded. </p><p> So, for example, rigid type enforcement can successfully prevent -the customer name (text) from being inserted into integer +the customer name (text) from being inserted into the integer Customer.creditScore column. On the other hand, if that mistake occurs, it is very easy to spot the problem and find all affected rows. But type enforcement is no help in preventing a bug where the customer diff --git a/www/fts5.html b/www/fts5.html index c80bc26..1793f2c 100644 --- a/www/fts5.html +++ b/www/fts5.html @@ -177,9 +177,8 @@ Table Of Contents <div class="fancy-toc2"><a href="#custom_tokenizers">7.1. Custom Tokenizers</a></div> <div class="fancy-toc3"><a href="#synonym_support">7.1.1. Synonym Support</a></div> <div class="fancy-toc2"><a href="#custom_auxiliary_functions">7.2. Custom Auxiliary Functions</a></div> -<div class="fancy-toc3"><a href="#_custom_auxiliary_functions_api_reference_">7.2.1. -Custom Auxiliary Functions API Reference -</a></div> +<div class="fancy-toc3"><a href="#custom_auxiliary_functions_api_overview">7.2.1. Custom Auxiliary Functions API Overview</a></div> +<div class="fancy-toc3"><a href="#custom_auxiliary_functions_api_reference">7.2.2. Custom Auxiliary Functions API Reference</a></div> <div class="fancy-toc1"><a href="#the_fts5vocab_virtual_table_module">8. The fts5vocab Virtual Table Module</a></div> <div class="fancy-toc1"><a href="#fts5_data_structures">9. FTS5 Data Structures</a></div> <div class="fancy-toc2"><a href="#varint_format">9.1. Varint Format</a></div> @@ -775,7 +774,7 @@ CREATE VIRTUAL TABLE t1 USING fts5(x, tokenize = 'porter' 'ascii'); <p> -FTS5 features three built-in tokenizer modules, described in subsequent +FTS5 features four built-in tokenizer modules, described in subsequent sections: </p><ul> @@ -787,6 +786,9 @@ sections: </li><li> The <b>porter</b> tokenizer, which implements the <a href="https://tartarus.org/martin/PorterStemmer" /="1">porter stemming algorithm</a>. + + </li><li> The <b>trigram</b> tokenizer, which treats each contiguous sequence of + three characters as a token, allowing FTS5 to support more general substring matching. </li></ul> <p> It is also possible to create custom tokenizers for FTS5. The API for doing so is <a href="fts5.html#custom_tokenizers">described here</a>. @@ -987,6 +989,9 @@ Notes: but still works. If the index is to be used only for LIKE and/or GLOB pattern matching, these options are worth experimenting with to reduce the index size. + + </li><li> The index cannot be used to optimize LIKE patterns if the LIKE operator + has an ESCAPE clause. </li></ul> <a name="external_content_and_contentless_tables"></a> @@ -1400,12 +1405,12 @@ on secondary or tertiary markings in the document or query terms. <p> Auxiliary functions are similar to <a href="lang_corefunc.html">SQL scalar functions</a>, except that they may only be used within full-text queries (those that use -the MATCH operator) on an FTS5 table. Their results are calculated based not -only on the arguments passed to them, but also on the current match and -matched row. For example, an auxiliary function may return a numeric value -indicating the accuracy of the match (see the <a href="fts5.html#the_bm25_function">bm25()</a> function), -or a fragment of text from the matched row that contains one or more -instances of the search terms (see the <a href="fts5.html#the_snippet_function">snippet()</a> function). +the MATCH operator, or LIKE/GLOB with the trigram tokenizer) on an FTS5 table. +Their results are calculated based not only on the arguments passed to them, +but also on the current match and matched row. For example, an auxiliary +function may return a numeric value indicating the accuracy of the match (see +the <a href="fts5.html#the_bm25_function">bm25()</a> function), or a fragment of text from the matched row +that contains one or more instances of the search terms (see the <a href="fts5.html#the_snippet_function">snippet()</a> function). </p><p>To invoke an auxiliary function, the name of the FTS5 table should be specified as the first argument. Other arguments may follow the first, @@ -1437,7 +1442,10 @@ the following section. Applications may also implement fragment of text from one of the columns of the matched row and returns it with each instance of a queried term surrounded by markup in the same manner as the highlight() function. The fragment of text is - selected so as to maximize the number of queried terms it contains. + selected so as to maximize the number of distinct queried terms it + contains. Higher weight is given to snippets that occur at the start + of a column value, or that immediately follow "." or ":" characters + in the text. </li></ul> <a name="the_bm25_function"></a> @@ -2349,18 +2357,19 @@ replaced. returns an SQLite error code. In this case the xDestroy function is <b>not</b> invoked. -</p><p> The final three arguments passed to the auxiliary function callback are -similar to the three arguments passed to the implementation of a scalar SQL -function. All arguments except the first passed to the auxiliary function are -available to the implementation in the apVal[] array. The +</p><p> The final three arguments passed to the auxiliary function callback +(pCtx, nVal and apVal above) are similar to the three arguments passed to the +implementation of a scalar SQL function. The apVal[] array contains all +SQL arguments except the first passed to the auxiliary function. The implementation should return a result or error via the content handle pCtx. </p><p> The first argument passed to an auxiliary function callback is a pointer -to a structure containing methods that may be invoked in order to obtain -information regarding the current query or row. The second argument is an -opaque handle that should be passed as the first argument to any such method -invocation. For example, the following auxiliary function definition returns -the total number of tokens in all columns of the current row: +to a structure (pApi above) containing methods that may be invoked +in order to obtain information regarding the current query or row. The second +argument is an opaque handle (pFts above) that should be passed as the +first argument to any such method invocation. For example, the following +auxiliary function returns the total number of tokens in all columns of the +current row: </p><div class="codeblock"><pre><i>/* ** Implementation of an auxiliary function that returns the number @@ -2388,10 +2397,185 @@ static void column_size_imp( implementations in detail. Further examples may be found in the "fts5_aux.c" file of the source code. -</p><a name="_custom_auxiliary_functions_api_reference_"></a> -<h3 tags="custom auxiliary functions" id="_custom_auxiliary_functions_api_reference_"><span>7.2.1. </span> - Custom Auxiliary Functions API Reference -</h3> +</p><a name="custom_auxiliary_functions_api_overview"></a> +<h3 tags="custom auxiliary overview" id="custom_auxiliary_functions_api_overview"><span>7.2.1. </span>Custom Auxiliary Functions API Overview</h3> + +<p>This section provides an overview of the capabilities of the auxiliary +function API. It does not describe every function. Refer to the <a href="#custom_auxiliary_functions_api_reference">reference text</a> below for a +complete description. + +</p><p>When invoked, an auxiliary function implementation has access to APIs that +allow it to query FTS5 for various information. Some of these APIs return +information relating to the current row of the FTS5 table being visited, +some relating to the entire set of rows that will be visited by the FTS5 +query, and some relating to the FTS5 table. Given an FTS5 table populated as +follows: + +</p><div class="codeblock"><pre>CREATE VIRTUAL TABLE ft USING fts5(a, b); +INSERT INTO ft(rowid, a, b) VALUES + (1, 'ab cd', 'cd de one'), + (2, 'de fg', 'fg gh'), + (3, 'gh ij', 'ij ab three four'); +</pre></div> + +<p>and the query: + +</p><div class="codeblock"><pre>SELECT my_aux_function(ft) FROM ft('ab') +</pre></div> + +<p>then the custom auxiliary function will be invoked for rows 1 and 3 (all +rows that contain the token "ab" and therefore match the query). + +</p><p><b>Number of rows/columns in table: xRowCount, xColumnCount + +</b></p><p>The system may be queried for the total number of rows in the FTS5 table +using the <a href="#xRowCount">xRowCount</a> API. This provides the total number +of rows in the table, not the number that match the current query. + +</p><p>Table columns are numbered from left to right starting from 0. The +"rowid" column does not count - only user declared columns - so in the example +above column "a" is column 0 and column "b" is column 1. From within an +auxiliary function implementation, the <a href="#xColumnCount">xColumnCount</a> +API may be used to determine how many columns the table being queried has. If +the xColumnCount() API is invoked from within the implementation of the +auxiliary function my_aux_function in the example above, it returns 2. + +</p><p><b>Data From Current Row: xColumnText, xRowid + +</b></p><p>The <a href="#xRowid">xRowid</a> API may be used to find the rowid value +for the current row. The <a href="#xColumnText">xColumnText</a> may be used +to obtain the text stored in a specified column of the current row. + +</p><p><b>Token Counts: xColumnSize, xColumnTotalSize + +</b></p><p>FTS5 divides documents inserted into an fts table into tokens. These are +usually just words, perhaps folded to either upper or lower case and with any +punctuation removed. For example, the default +<a href="#unicode61_tokenizer">unicode61 tokenizer</a> tokenizes the text "The +tokenizer is case-insensitive" to a list of 5 tokens - "the", "tokenizer", is", +"case" and "insensitive". Exactly how tokens are extracted from text is +determined by the <a href="#tokenizers">tokenizer</a>. + +</p><p>The auxiliary functions API provides functions to query for both the number +of tokens in a specified column of the current row (the +<a href="#xColumnSize">xColumnSize</a> API), or for the number of tokens in a +specified column of all rows of the table (the <a href="#xColumnTotalSize">xColumnTotalSize</a> API). For the example at the +top of this section, when visiting row 1, xColumnSize returns 2 for column 0 +and 3 for column 1. xColumnTotalSize returns 6 for column 0 and 9 for column 1 +regardless of the current row. + +</p><p><b>The Current Full-Text Query: xPhraseCount, xPhraseSize, xQueryToken + +</b></p><p>An FTS5 query contains one or more <a href="#fts5_phrases">phrases</a>. The +<a href="#xPhraseCount">xPhraseCount</a>, <a href="#xPhraseSize">xPhraseSize</a> +and <a href="#xQueryToken">xQueryToken</a> APIs allow an auxiliary function +implementation to query the system for details of the current query. The +xPhraseCount API returns the number of phrases in the current query. For +example, if an FTS5 table is queried as follows: + +</p><div class="codeblock"><pre>SELECT my_aux_function(ft) FROM ft('ab AND "cd ef gh" OR ij + kl') +</pre></div> + +<p>and the xPhraseCount() API invoked from within the implementation of the +auxiliary function, it returns 3 (the three phrases being "ab", "ce ef gh" and +"ij kl"). + +</p><p>Phrases are numbered in order of appearance within a query starting from 0. +The xPhraseSize() API may be used to query for the number of tokens in a +specified phrase of the query. In the example above, phrase 0 contains 1 token, +phrase 1 contains 3 tokens, and phrase 2 contains 2. + +</p><p>The xQueryToken API may be used to access the text of a specified token +within a specified phrase of the query. Tokens are numbered within their +phrases from left to right starting from 0. For example, if the xQueryToken +API is used to request token 1 of phrase 2 in the example above, it returns +the text "kl". Token 0 of phrase 0 is "ab". + +</p><p><b>Phrase Hits in the Current Row: xPhraseFirst, xPhraseNext + +</b></p><p>These two API functions may be used to iterate through the matches for +a specified phrase of the query within the current row. Phrase matches are +identified by the column and token offset within the current row. For +example, say the following example table: + +</p><div class="codeblock"><pre>CREATE VIRTUAL TABLE ft2 USING fts5(x, y); +INSERT INTO ft2(rowid, x, y) VALUES + (1, 'xxx one two xxx five xxx six', 'seven four'), + (2, 'five four four xxx six', 'three four five six four five six'); +</pre></div> + +<p>is queried with: + +</p><div class="codeblock"><pre>SELECT my_aux_function(ft2) FROM ft2( + '("one two" OR "three") AND y:four NEAR(five six, 2)' +); +</pre></div> + +<p>The query above contains 5 phrases - "one two", "three", "four", +"five" and "six". It matches all rows of the table, so the auxiliary +function is invoked for each row. + +</p><p>In row 1, for phrase 0, "one two", there is exactly one match to iterate +through - at column 0 token offset 1. The column number is 0 because the +match appears in the left most column. The token offset is 1 because there +is exactly one token ("xxx") before the phrase match in the column value. +For phrase 1, "three", there are no matches. Phrase 2, "four", has one +match, at column 1, token offset 0. Phrase 3, "five", has one match at +column 0, token offset 4, and phrase 4, "six", has one match at column 0 +token offset 6. + +</p><p>The set of matches for each phrase in each row of the example is presented +in the table below. Each match is notated as (column-number, token-offset): + +</p><table striped="1" style="margin:1em auto; width:80%; border-spacing:0"> + <tr style="text-align:left"><th>Row</th><th>Phrase 0</th><th>Phrase 1</th><th>Phrase 2</th><th>Phrase 3</th><th>Phrase 4 + </th></tr><tr style="text-align:left;background-color:#DDDDDD"><td>1</td><td>(0, 1) </td><td></td><td>(1, 1)</td><td>(0, 4)</td><td>(0, 6) + </td></tr><tr style="text-align:left"><td>2</td><td></td><td>(1,0)</td><td>(1, 1), (1,4)</td><td>(1, 2), (1, 5)</td><td>(1, 3), (1, 6) +</td></tr></table> + +<p>The second row is slightly more complicated. There were no occurrences of +phrase 0. Phrase 1 ("three") appears once, at column 1 token offset 0. Although +there are instances of phrase 2 ("four") in column 0, none of them are reported +by the API, as phrase 4 has a <a href="#fts5_column_filters">column filter</a> - +"y:". Matches that are filtered out by column filters do not count. Similarly, +although phrases 3 and 4 do occur in column "x" of row 2, they are filtered +out by the <a href="#fts5_near_queries">NEAR filter</a>. Matches that are +filtered out by NEAR filters do not count either. + +</p><p><b>Phrase Hits in the Current Row (2): xInstCount, xInst + +</b></p><p>The <a href="#xInstCount">xInstCount</a> and <a href="#xInst">xInst</a> APIs +provide access to the same information as the xPhraseFirst and xPhraseNext +described above. The difference is that instead of iterating through the +matches for a single, specified phrase, the xInstCount/xInst APIs collate +all matches into a single flat array, sorted in order of occurrence within +the current row. Elements of this array may then be accessed randomly. + +</p><p>Each array element consists of three values: + +</p><ul> + <li> A phrase number, + </li><li> A column number, and + </li><li> A token offset +</li></ul> + +<p>Using the same example data and query as for xPhraseFirst/xPhraseNext +above, the array accessible via xInstCount/xInst consists of the following +entries for each row: + +</p><table striped="1" style="margin:1em auto; width:80%; border-spacing:0"> + <tr style="text-align:left"><th>Row</th><th>xInstCount/xInst array + </th></tr><tr style="text-align:left;background-color:#DDDDDD"><td>1</td><td>(0, 0, 1), (3, 0, 4), (4, 0, 6), (2, 1, 1) + </td></tr><tr style="text-align:left"><td>2</td><td>(1, 1, 0), (2, 1, 1), (3, 1, 2), (4, 1, 3), (2, 1, 4), (3, 1, 5), (4, 1, 6) +</td></tr></table> + +<p>Each entry of the array is called a phrase match. Phrase matches are +numbered in order, starting from 0. So, in the example above, in row 2, phrase +match 3 is (4, 1, 3) - phrase 4 of the query matches at column 1, token offset +3. + +</p><a name="custom_auxiliary_functions_api_reference"></a> +<h3 tags="custom auxiliary functions" id="custom_auxiliary_functions_api_reference"><span>7.2.2. </span>Custom Auxiliary Functions API Reference</h3> <div class="codeblock"><pre>struct Fts5ExtensionApi { int iVersion; <i>/* Currently always set to 3 */</i> @@ -2443,8 +2627,8 @@ file of the source code. <dt style="white-space:pre;font-family:monospace;font-size:120%" id="xUserData"> <b>void *(*xUserData)(Fts5Context*)</b></dt><dd> <p style="margin-top:0.1em"> -Return a copy of the context pointer the extension function was - registered with. +Return a copy of the pUserData pointer passed to the xCreateFunction() + API when the extension function was registered. </p> </dd> <dt style="white-space:pre;font-family:monospace;font-size:120%" id="xColumnTotalSize"> @@ -3090,9 +3274,9 @@ the subset of matches with rowids in the required range. </p><ul> <li> The special <a href="#structure_record_format">structure record</a>, - stored with id=1. - </li><li> The special <a href="#averages_record_format">averages record</a>, stored with id=10. + </li><li> The special <a href="#averages_record_format">averages record</a>, + stored with id=1. </li><li> A record to store each <a href="#segment_b_tree_format">segment b-tree</a> leaf and <a href="#doclist_index_format">doclist index</a> leaf and internal node. See below for how id values are calculated for these @@ -3612,7 +3796,7 @@ CREATE VIRTUAL TABLE t1 USING fts5( <p> FTS5 has no matchinfo() or offsets() function, and the snippet() function is not as fully-featured as in FTS3/4. However, since FTS5 does provide -an API allowing applications to create <a href="fts5.html#_custom_auxiliary_functions_api_reference_">custom auxiliary functions</a>, any +an API allowing applications to create <a href="fts5.html#custom_auxiliary_functions_api_reference">custom auxiliary functions</a>, any required functionality may be implemented within the application code. </p><p> The set of built-in auxiliary functions provided by FTS5 may be @@ -3714,5 +3898,5 @@ using FTS5. the amount of processing that may take place within any given INSERT, UPDATE or DELETE operation. </p></li></ul> -<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/fts5.in?m=386eeb4c00">2024-03-27 20:33:18</a> UTC </small></i></p> +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/fts5.in?m=39d9a3b727">2024-05-22 18:42:01</a> UTC </small></i></p> diff --git a/www/index.html b/www/index.html index 1bdbef9..55e8d59 100644 --- a/www/index.html +++ b/www/index.html @@ -189,7 +189,7 @@ is in the <a href="copyright.html">public-domain</a> and is free to everyone to use for any purpose. <h3>Latest Release</h3> -<a href="releaselog/3_45_3.html">Version 3.45.3</a> (2024-04-15). +<a href="releaselog/3_46_0.html">Version 3.46.0</a> (2024-05-23). <a class="button" href="download.html">Download</a> <a class="button" href="chronology.html">Prior Releases</a> diff --git a/www/json1.html b/www/json1.html index dacfb08..f768fd6 100644 --- a/www/json1.html +++ b/www/json1.html @@ -154,14 +154,15 @@ Table Of Contents <div class="fancy-toc2"><a href="#the_jsonb_object_function">4.13. The jsonb_object() function</a></div> <div class="fancy-toc2"><a href="#the_json_patch_function">4.14. The json_patch() function</a></div> <div class="fancy-toc2"><a href="#the_jsonb_patch_function">4.15. The jsonb_patch() function</a></div> -<div class="fancy-toc2"><a href="#the_json_remove_function">4.16. The json_remove() function</a></div> -<div class="fancy-toc2"><a href="#the_jsonb_remove_function">4.17. The jsonb_remove() function</a></div> -<div class="fancy-toc2"><a href="#the_json_type_function">4.18. The json_type() function</a></div> -<div class="fancy-toc2"><a href="#the_json_valid_function">4.19. The json_valid() function</a></div> -<div class="fancy-toc2"><a href="#the_json_quote_function">4.20. The json_quote() function</a></div> -<div class="fancy-toc2"><a href="#array_and_object_aggregate_functions">4.21. Array and object aggregate functions</a></div> -<div class="fancy-toc2"><a href="#the_json_each_and_json_tree_table_valued_functions">4.22. The json_each() and json_tree() table-valued functions</a></div> -<div class="fancy-toc3"><a href="#examples_using_json_each_and_json_tree_">4.22.1. Examples using json_each() and json_tree()</a></div> +<div class="fancy-toc2"><a href="#the_json_pretty_function">4.16. The json_pretty() function</a></div> +<div class="fancy-toc2"><a href="#the_json_remove_function">4.17. The json_remove() function</a></div> +<div class="fancy-toc2"><a href="#the_jsonb_remove_function">4.18. The jsonb_remove() function</a></div> +<div class="fancy-toc2"><a href="#the_json_type_function">4.19. The json_type() function</a></div> +<div class="fancy-toc2"><a href="#the_json_valid_function">4.20. The json_valid() function</a></div> +<div class="fancy-toc2"><a href="#the_json_quote_function">4.21. The json_quote() function</a></div> +<div class="fancy-toc2"><a href="#array_and_object_aggregate_functions">4.22. Array and object aggregate functions</a></div> +<div class="fancy-toc2"><a href="#the_json_each_and_json_tree_table_valued_functions">4.23. The json_each() and json_tree() table-valued functions</a></div> +<div class="fancy-toc3"><a href="#examples_using_json_each_and_json_tree_">4.23.1. Examples using json_each() and json_tree()</a></div> </div> </div> <script> @@ -185,12 +186,12 @@ mk.innerHTML = "►"; <h1 id="overview"><span>1. </span>Overview</h1> <p> -By default, SQLite supports twenty-nine functions and two operators for +By default, SQLite supports thirty functions and two operators for dealing with JSON values. There are also two <a href="vtab.html#tabfunc2">table-valued functions</a> that can be used to decompose a JSON string. </p><p> -There are 25 scalar functions and operators: +There are twenty-six scalar functions and operators: </p><ol> <li value='1'> @@ -258,38 +259,42 @@ There are 25 scalar functions and operators: </li> <li value='17'> -<a href='#jrm'>json_remove</a>(<i>json</i>,<i>path</i>,...) +<a href='#jpretty'>json_pretty</a>(<i>json</i>) </li> <li value='18'> -<a href='#jrmb'>jsonb_remove</a>(<i>json</i>,<i>path</i>,...) +<a href='#jrm'>json_remove</a>(<i>json</i>,<i>path</i>,...) </li> <li value='19'> -<a href='#jrepl'>json_replace</a>(<i>json</i>,<i>path</i>,<i>value</i>,...) +<a href='#jrmb'>jsonb_remove</a>(<i>json</i>,<i>path</i>,...) </li> <li value='20'> -<a href='#jreplb'>jsonb_replace</a>(<i>json</i>,<i>path</i>,<i>value</i>,...) +<a href='#jrepl'>json_replace</a>(<i>json</i>,<i>path</i>,<i>value</i>,...) </li> <li value='21'> -<a href='#jset'>json_set</a>(<i>json</i>,<i>path</i>,<i>value</i>,...) +<a href='#jreplb'>jsonb_replace</a>(<i>json</i>,<i>path</i>,<i>value</i>,...) </li> <li value='22'> -<a href='#jsetb'>jsonb_set</a>(<i>json</i>,<i>path</i>,<i>value</i>,...) +<a href='#jset'>json_set</a>(<i>json</i>,<i>path</i>,<i>value</i>,...) </li> <li value='23'> -<a href='#jtype'>json_type</a>(<i>json</i>)<br><a href='#jtype'>json_type</a>(<i>json</i>,<i>path</i>) +<a href='#jsetb'>jsonb_set</a>(<i>json</i>,<i>path</i>,<i>value</i>,...) </li> <li value='24'> -<a href='#jvalid'>json_valid</a>(<i>json</i>)<br><a href='#jvalid'>json_valid</a>(<i>json</i>,flags) +<a href='#jtype'>json_type</a>(<i>json</i>)<br><a href='#jtype'>json_type</a>(<i>json</i>,<i>path</i>) </li> <li value='25'> +<a href='#jvalid'>json_valid</a>(<i>json</i>)<br><a href='#jvalid'>json_valid</a>(<i>json</i>,flags) +</li> + +<li value='26'> <a href='#jquote'>json_quote</a>(<i>value</i>) </li> @@ -299,19 +304,19 @@ There are 25 scalar functions and operators: <p>There are four <a href="lang_aggfunc.html">aggregate SQL functions</a>: </p><ol> -<li value='26'> +<li value='27'> <a href='#jgrouparray'>json_group_array</a>(<i>value</i>) </li> -<li value='27'> +<li value='28'> <a href='#jgrouparrayb'>jsonb_group_array</a>(<i>value</i>) </li> -<li value='28'> +<li value='29'> <a href='#jgroupobject'>json_group_object</a>(<i>label</i>,<i>value</i>) </li> -<li value='29'> +<li value='30'> <a href='#jgroupobjectb'>jsonb_group_object</a>(name,<i>value</i>) </li> @@ -321,11 +326,11 @@ There are 25 scalar functions and operators: <p>The two <a href="vtab.html#tabfunc2">table-valued functions</a> are: </p><ol> -<li value='30'> +<li value='31'> <a href='#jeach'>json_each</a>(<i>json</i>)<br><a href='#jeach'>json_each</a>(<i>json</i>,<i>path</i>) </li> -<li value='31'> +<li value='32'> <a href='#jtree'>json_tree</a>(<i>json</i>)<br><a href='#jtree'>json_tree</a>(<i>json</i>,<i>path</i>) </li> @@ -653,7 +658,7 @@ for infinity and not-a-number. <p> Most JSON functions do their internal processing using JSONB. So if the -input is text, they first must translate the input text into JSONB. +input is text, they first most translate the input text into JSONB. If the input is already in the JSONB format, no translation is needed, that step can be skipped, and performance is faster. @@ -849,7 +854,7 @@ well-formed JSON or if P is not a well-formed path. </p><h2 id="the_json_error_position_function"><span>4.6. </span>The json_error_position() function</h2> -<p>The json_error_positionf(X) function returns 0 if the input X is a +<p>The json_error_position(X) function returns 0 if the input X is a well-formed JSON or JSON5 string. If the input X contains one or more syntax errors, then this function returns the character position of the first syntax error. The left-most character is position 1. @@ -1241,9 +1246,23 @@ especially Arrays with lots of substructure. The jsonb_patch() function works just like the <a href="json1.html#jpatch">json_patch()</a> function except that the patched JSON is returned in the binary JSONB format. +<a name="jpretty"></a> + +</p><h2 id="the_json_pretty_function"><span>4.16. </span>The json_pretty() function</h2> +<p> +The json_pretty() function works like <a href="json1.html#jmini">json()</a> except that it adds +extra whitespace to make the JSON result easier for humans to read. +The first argument is the JSON or JSONB that is to be pretty-printed. +The optional second argument is a text string that is used for indentation. +If the second argument is omitted or is NULL, then indentation is four +spaces per level. +</p><p> +The json_pretty() function was added with SQLite version 3.46.0 +(2024-05-23). + <a name="jrm"></a> -</p><h2 id="the_json_remove_function"><span>4.16. </span>The json_remove() function</h2> +</p><h2 id="the_json_remove_function"><span>4.17. </span>The json_remove() function</h2> <p>The json_remove(X,P,...) function takes a single JSON value as its first argument followed by zero or more path arguments. @@ -1295,14 +1314,14 @@ path. <a name="jrmb"></a> -</p><h2 id="the_jsonb_remove_function"><span>4.17. </span>The jsonb_remove() function</h2> +</p><h2 id="the_jsonb_remove_function"><span>4.18. </span>The jsonb_remove() function</h2> <p> The jsonb_remove() function works just like the <a href="json1.html#jrm">json_remove()</a> function except that the edited JSON result is returned in the binary JSONB format. <a name="jtype"></a> -</p><h2 id="the_json_type_function"><span>4.18. </span>The json_type() function</h2> +</p><h2 id="the_json_type_function"><span>4.19. </span>The json_type() function</h2> <p>The json_type(X) function returns the "type" of the outermost element of X. The json_type(X,P) function returns the "type" of the element @@ -1354,7 +1373,7 @@ JSON path. <a name="jvalid"></a> -</p><h2 id="the_json_valid_function"><span>4.19. </span>The json_valid() function</h2> +</p><h2 id="the_json_valid_function"><span>4.20. </span>The json_valid() function</h2> <p>The json_valid(X,Y) function return 1 if the argument X is well-formed JSON, or returns 0 if X is not well-formed. The Y parameter is an integer @@ -1435,7 +1454,7 @@ returns NULL. <a name="jquote"></a> -</p><h2 id="the_json_quote_function"><span>4.20. </span>The json_quote() function</h2> +</p><h2 id="the_json_quote_function"><span>4.21. </span>The json_quote() function</h2> <p>The json_quote(X) function converts the SQL value X (a number or a string) into its corresponding JSON representation. If X is a JSON value @@ -1467,7 +1486,7 @@ returned by another JSON function, then this function is a no-op. <a name="jgrouparrayb"></a> <a name="jgroupobjectb"></a> -</p><h2 id="array_and_object_aggregate_functions"><span>4.21. </span>Array and object aggregate functions</h2> +</p><h2 id="array_and_object_aggregate_functions"><span>4.22. </span>Array and object aggregate functions</h2> <p>The json_group_array(X) function is an <a href="lang_aggfunc.html">aggregate SQL function</a> that returns a JSON array @@ -1481,7 +1500,7 @@ result in the binary <a href="json1.html#jsonbx">JSONB</a> format. <a name="jtree"></a> -</p><h2 id="the_json_each_and_json_tree_table_valued_functions"><span>4.22. </span>The json_each() and json_tree() table-valued functions</h2> +</p><h2 id="the_json_each_and_json_tree_table_valued_functions"><span>4.23. </span>The json_each() and json_tree() table-valued functions</h2> <p>The json_each(X) and json_tree(X) <a href="vtab.html#tabfunc2">table-valued functions</a> walk the JSON value provided as their first argument and return one row for each @@ -1556,7 +1575,7 @@ the current row, or the path to the current row in the case where the iteration starts on a primitive type and thus only provides a single row of output. -</p><h3 id="examples_using_json_each_and_json_tree_"><span>4.22.1. </span>Examples using json_each() and json_tree()</h3> +</p><h3 id="examples_using_json_each_and_json_tree_"><span>4.23.1. </span>Examples using json_each() and json_tree()</h3> <p>Suppose the table "CREATE TABLE user(name,phone)" stores zero or more phone numbers as a JSON array object in the user.phone field. @@ -1616,5 +1635,5 @@ SELECT DISTINCT json_extract(big.json,'$.id') WHERE json_tree.key='uuid' AND json_tree.value='6fa5181e-5721-11e5-a04e-57f3d7b32808'; </pre></blockquote> - +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/json1.in?m=f887124e7e">2024-05-05 15:23:53</a> UTC </small></i></p> diff --git a/www/keyword_index.html b/www/keyword_index.html index 6c64d52..b437dee 100644 --- a/www/keyword_index.html +++ b/www/keyword_index.html @@ -165,6 +165,7 @@ Other Documentation Indexes: <li> <a href="syntax/alter-table-stmt.html">alter-table-stmt syntax diagram</a> </li> <li> <a href="amalgamation.html">amalgamation</a> </li> <li> <a href="download.html">amalgamation tarball</a> </li> +<li> <a href="lang_datefunc.html#dtambg">ambiguous dates</a> </li> <li> <a href="testing.html#aflfuzz">American Fuzzy Lop fuzzer</a> </li> <li> <a href="pragma.html#pragma_analysis_limit">analysis_limit pragma</a> </li> <li> <a href="syntax/analyze-stmt.html">analyze-stmt</a> </li> @@ -179,6 +180,7 @@ Other Documentation Indexes: <li> <a href="flextypegood.html">appreciate the freedom</a> </li> <li> <a href="whentouse.html">Appropriate Uses For SQLite</a> </li> <li> <a href="lang_analyze.html#approx">approximate ANALYZE</a> </li> +<li> <a href="lang_analyze.html#approx">Approximate ANALYZE For Large Databases</a> </li> <li> <a href="cli.html#sqlar">.archive command</a> </li> <li> <a href="lang_mathfunc.html#asin">asin() SQL function</a> </li> <li> <a href="lang_mathfunc.html#asinh">asinh() SQL function</a> </li> @@ -418,7 +420,8 @@ Other Documentation Indexes: <li> <a href="csv.html">CSV virtual table</a> </li> <li> <a href="syntax/cte-table-name.html">cte-table-name</a> </li> <li> <a href="syntax/cte-table-name.html">cte-table-name syntax diagram</a> </li> -<li> <a href="fts5.html#_custom_auxiliary_functions_api_reference_">custom auxiliary functions</a> </li> +<li> <a href="fts5.html#custom_auxiliary_functions_api_reference">custom auxiliary functions</a> </li> +<li> <a href="fts5.html#custom_auxiliary_functions_api_overview">custom auxiliary overview</a> </li> <li> <a href="custombuild.html">custom builds</a> </li> <li> <a href="rtree.html#customquery">custom r-tree queries</a> </li> <li> <a href="appfunc.html">custom SQL function</a> </li> @@ -978,7 +981,7 @@ Other Documentation Indexes: <li> <a href="lang_expr.html#isisnot">IS operator</a> </li> <li> <a href="isolation.html">isolation</a> </li> <li> <a href="testing.html#dbsqlfuzz">jfuzz</a> </li> -<li> <a href="optoverview.html#table_order">join order</a> </li> +<li> <a href="optoverview.html#joins">join order</a> </li> <li> <a href="syntax/join-clause.html">join-clause</a> </li> <li> <a href="syntax/join-clause.html">join-clause syntax diagram</a> </li> <li> <a href="syntax/join-constraint.html">join-constraint</a> </li> @@ -1015,6 +1018,8 @@ Other Documentation Indexes: <li> <a href="json1.html#jobj">json_object SQL function</a> </li> <li> <a href="json1.html#jpatch">json_patch</a> </li> <li> <a href="json1.html#jpatch">json_patch SQL function</a> </li> +<li> <a href="json1.html#jpretty">json_pretty</a> </li> +<li> <a href="json1.html#jpretty">json_pretty SQL function</a> </li> <li> <a href="json1.html#jquote">json_quote</a> </li> <li> <a href="json1.html#jquote">json_quote SQL function</a> </li> <li> <a href="json1.html#jrm">json_remove</a> </li> @@ -1165,6 +1170,7 @@ Other Documentation Indexes: <li> <a href="lang_select.html#nullslast">NULLS FIRST</a> </li> <li> <a href="lang_select.html#nullslast">NULLS LAST</a> </li> <li> <a href="tclsqlite.html#nullvalue">nullvalue method</a> </li> +<li> <a href="lang_expr.html#litvalue">numeric literals</a> </li> <li> <a href="syntax/numeric-literal.html">numeric-literal</a> </li> <li> <a href="syntax/numeric-literal.html">numeric-literal syntax diagram</a> </li> <li> <a href="lang_naming.html">object resolution</a> </li> @@ -1349,6 +1355,9 @@ Other Documentation Indexes: <li> <a href="optoverview.html">query planner</a> </li> <li> <a href="queryplanner-ng.html#howtofix">query planner checklist</a> </li> <li> <a href="queryplanner-ng.html#qpstab">query planner stability guarantee</a> </li> +<li> <a href="optoverview.html#autoindex">query-time index</a> </li> +<li> <a href="optoverview.html#autoindex">Query-time indexes</a> </li> +<li> <a href="optoverview.html#autoindex">query-time indexing</a> </li> <li> <a href="pragma.html#pragma_query_only">query_only pragma</a> </li> <li> <a href="quickstart.html">Quick Start Guide</a> </li> <li> <a href="pragma.html#pragma_quick_check">quick_check pragma</a> </li> @@ -1379,10 +1388,10 @@ Other Documentation Indexes: <li> <a href="rtree.html#readwrite">reading and writing an rtree at the same time</a> </li> <li> <a href="fts3.html#*fts4rebuidcmd">"rebuild" command</a> </li> <li> <a href="cves.html#cvetab">recent CVEs</a> </li> -<li> <a href="lang_analyze.html#req">recommended ANALYZE usage pattern</a> </li> <li> <a href="locrsf.html">recommended by the US Library of Congress</a> </li> <li> <a href="compile.html#rcmd">recommended compile-time option</a> </li> <li> <a href="locrsf.html">recommended storage format</a> </li> +<li> <a href="lang_analyze.html#req">Recommended usage patterns for ANALYZE</a> </li> <li> <a href="fileformat2.html#record_format">record format</a> </li> <li> <a href="cli.html#recover">.recover dot-command</a> </li> <li> <a href="walformat.html#recovery">recovery</a> </li> @@ -1439,6 +1448,7 @@ Other Documentation Indexes: <li> <a href="datatype3.html#affname">rules for determining column affinity</a> </li> <li> <a href="datatype3.html#affview">rules for determining column affinity in VIEWs</a> </li> <li> <a href="loadext.html">Run-Time Loadable Extensions</a> </li> +<li> <a href="lang_analyze.html#pragopt">running ANALYZE via PRAGMA optimize</a> </li> <li> <a href="cli.html#safemode">safe command-line option</a> </li> <li> <a href="cli.html#safemode">--safe command-line option</a> </li> <li> <a href="howtocorrupt.html#svptbug">SAVEPOINT bug</a> </li> @@ -1894,6 +1904,7 @@ Other Documentation Indexes: <li> <a href="c3ref/win32_set_directory.html">sqlite3_win32_set_directory16</a> </li> <li> <a href="c3ref/win32_set_directory.html">sqlite3_win32_set_directory8</a> </li> <li> <a href="session/sqlite3changegroup_add.html">sqlite3changegroup_add</a> </li> +<li> <a href="session/sqlite3changegroup_add_change.html">sqlite3changegroup_add_change</a> </li> <li> <a href="session/sqlite3changegroup_add_strm.html">sqlite3changegroup_add_strm</a> </li> <li> <a href="session/sqlite3changegroup_delete.html">sqlite3changegroup_delete</a> </li> <li> <a href="session/sqlite3changegroup_new.html">sqlite3changegroup_new</a> </li> @@ -2646,6 +2657,7 @@ Other Documentation Indexes: <li> <a href="howtocorrupt.html#stalefd">stale file descriptor</a> </li> <li> <a href="uri.html#coreqp">standard query parameters</a> </li> <li> <a href="tempfiles.html#stmtjrnl">statement journal</a> </li> +<li> <a href="lang_analyze.html#statanal">static ANALYZE results</a> </li> <li> <a href="loadext.html#statext">statically linked extensions</a> </li> <li> <a href="pragma.html#pragma_stats">stats pragma</a> </li> <li> <a href="tclsqlite.html#status">status method</a> </li> @@ -2773,8 +2785,10 @@ Other Documentation Indexes: <li> <a href="pragma.html#pragma_threads">threads pragma</a> </li> <li> <a href="testing.html#harnesses">three test harnesses</a> </li> <li> <a href="lang_datefunc.html#tmshf">time shift modifiers</a> </li> +<li> <a href="lang_datefunc.html#tmval">time value</a> </li> <li> <a href="lang_datefunc.html#dttm">time()</a> </li> <li> <a href="lang_datefunc.html#dttm">time() SQL function</a> </li> +<li> <a href="lang_datefunc.html#tmval">time-value</a> </li> <li> <a href="lang_datefunc.html#tmdif">timediff()</a> </li> <li> <a href="lang_datefunc.html#tmdif">timediff() SQL function</a> </li> <li> <a href="tclsqlite.html#timeout">timeout method</a> </li> @@ -2816,6 +2830,7 @@ Other Documentation Indexes: <li> <a href="lang_createtable.html#uniqueconst">UNIQUE</a> </li> <li> <a href="lang_createtable.html#uniqueconst">unique constraint</a> </li> <li> <a href="lang_createindex.html#uniqueidx">unique index</a> </li> +<li> <a href="lang_datefunc.html#jdmod">unixepoch modifier</a> </li> <li> <a href="lang_datefunc.html#uepch">unixepoch()</a> </li> <li> <a href="lang_datefunc.html#uepch">unixepoch() function</a> </li> <li> <a href="lang_datefunc.html#uepch">unixepoch() SQL function</a> </li> @@ -2853,6 +2868,7 @@ Other Documentation Indexes: <li> <a href="whentouse.html#website">using SQLite for websites</a> </li> <li> <a href="backup.html">Using the SQLite Online Backup API</a> </li> <li> <a href="unlock_notify.html">Using the SQLite Unlock Notification Feature</a> </li> +<li> <a href="lang_datefunc.html#localtime">'utc' and 'localtime' modifiers</a> </li> <li> <a href="lang_datefunc.html#localtime">'utc' modifier</a> </li> <li> <a href="lang_vacuum.html">vacuum</a> </li> <li> <a href="lang_vacuum.html#vacuuminto">VACUUM INTO</a> </li> @@ -3033,6 +3049,7 @@ Other Documentation Indexes: <li> <a href="releaselog/3_45_1.html">Version 3.45.1</a> </li> <li> <a href="releaselog/3_45_2.html">Version 3.45.2</a> </li> <li> <a href="releaselog/3_45_3.html">Version 3.45.3</a> </li> +<li> <a href="releaselog/3_46_0.html">Version 3.46.0</a> </li> <li> <a href="releaselog/3_5_0.html">Version 3.5.0</a> </li> <li> <a href="releaselog/3_5_1.html">Version 3.5.1</a> </li> <li> <a href="releaselog/3_5_2.html">Version 3.5.2</a> </li> @@ -3177,7 +3194,9 @@ Other Documentation Indexes: <li> <a href="affcase1.html">What If OpenOffice Used SQLite</a> </li> <li> <a href="withoutrowid.html#wtu">when to use WITHOUT ROWID</a> </li> <li> <a href="lang_select.html#whereclause">WHERE clause</a> </li> +<li> <a href="optoverview.html#pushdown">WHERE-clause push-down optimization</a> </li> <li> <a href="lang_altertable.html#altertableishard">why ALTER TABLE is so difficult</a> </li> +<li> <a href="whybytecode.html">Why SQLite Uses Bytecode</a> </li> <li> <a href="malloc.html#win32heap">Win32 native memory allocator</a> </li> <li> <a href="windowfunctions.html#wchaining">window chaining</a> </li> <li> <a href="windowfunctions.html">window function</a> </li> diff --git a/www/lang.html b/www/lang.html index 15cc26d..bb656c3 100644 --- a/www/lang.html +++ b/www/lang.html @@ -160,7 +160,9 @@ also provided. The SQL language syntax is described by <li><a href='lang_expr.html'>expression</a></li> <li><a href='lang_indexedby.html'>INDEXED BY</a></li> <li><a href='lang_insert.html'>INSERT</a></li> +<li><a href='json1.html'>JSON functions</a></li> <li><a href='lang_keywords.html'>keywords</a></li> +<li><a href='lang_mathfunc.html'>math functions</a></li> <li><a href='lang_conflict.html'>ON CONFLICT clause</a></li> <li><a href='pragma.html#syntax'>PRAGMA</a></li> <li><a href='lang_reindex.html'>REINDEX</a></li> @@ -173,6 +175,7 @@ also provided. The SQL language syntax is described by <li><a href='lang_update.html'>UPDATE</a></li> <li><a href='lang_upsert.html'>UPSERT</a></li> <li><a href='lang_vacuum.html'>VACUUM</a></li> +<li><a href='windowfunctions.html'>window functions</a></li> <li><a href='lang_with.html'>WITH clause</a></li> </ul> </div> diff --git a/www/lang_analyze.html b/www/lang_analyze.html index 7f65a7f..f841633 100644 --- a/www/lang_analyze.html +++ b/www/lang_analyze.html @@ -120,6 +120,34 @@ antiRobotDefense(); <div class="fancy_title"> ANALYZE </div> +<div class="fancy_toc"> +<a onclick="toggle_toc()"> +<span class="fancy_toc_mark" id="toc_mk">►</span> +Table Of Contents +</a> +<div id="toc_sub"><div class="fancy-toc1"><a href="#overview">1. Overview</a></div> +<div class="fancy-toc1"><a href="#recommended_usage_patterns">2. Recommended usage patterns</a></div> +<div class="fancy-toc2"><a href="#periodically_run_pragma_optimize_">2.1. Periodically run "PRAGMA optimize"</a></div> +<div class="fancy-toc2"><a href="#fixed_results_of_analyze">2.2. Fixed results of ANALYZE</a></div> +<div class="fancy-toc1"><a href="#details">3. Details</a></div> +<div class="fancy-toc1"><a href="#automatically_running_analyze">4. Automatically Running ANALYZE</a></div> +<div class="fancy-toc1"><a href="#approximate_analyze_for_large_databases">5. Approximate ANALYZE For Large Databases</a></div> +<div class="fancy-toc2"><a href="#limitations_of_approximate_analyze">5.1. Limitations of approximate ANALYZE</a></div> +</div> +</div> +<script> +function toggle_toc(){ +var sub = document.getElementById("toc_sub") +var mk = document.getElementById("toc_mk") +if( sub.style.display!="block" ){ +sub.style.display = "block"; +mk.innerHTML = "▼"; +} else { +sub.style.display = "none"; +mk.innerHTML = "►"; +} +} +</script> </div> @@ -128,8 +156,8 @@ ANALYZE <h1 id="overview"><span>1. </span>Overview</h1> <p><b><a href="syntax/analyze-stmt.html">analyze-stmt:</a></b> -<button id='x9d08cb93' onclick='hideorshow("x9d08cb93","x6f8054a5")'>hide</button></p> - <div id='x6f8054a5' class='imgcontainer'> +<button id='x3115000d' onclick='hideorshow("x3115000d","x4b619059")'>hide</button></p> + <div id='x4b619059' class='imgcontainer'> <div style="max-width:654px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 654.557 140.4"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -181,7 +209,7 @@ ANALYZE indices and stores the collected information in <a href="fileformat2.html#intschema">internal tables</a> of the database where the query optimizer can access the information and use it to help make better query planning choices. -If no arguments are given, all attached databases are +If no arguments are given, the main database and all attached databases are analyzed. If a schema name is given as the argument, then all tables and indices in that one database are analyzed. If the argument is a table name, then only that table and the @@ -190,24 +218,121 @@ is an index name, then only that one index is analyzed.</p> <a name="req"></a> -<h2 id="recommended_usage_pattern"><span>1.1. </span>Recommended usage pattern</h2> +<h1 id="recommended_usage_patterns"><span>2. </span>Recommended usage patterns</h1> + +<p> The use of ANALYZE is never required. However, if an application +makes complex queries that have many possible query plans, the query +planner will be better able to pick the best plan if ANALYZE has +been run. This can result it significant performance improvements for +some queries. + +</p><p> Two recommended approaches for when and how to run ANALYZE are +described in the next subsections, in order of preference. + +<a name="pragopt"></a> + +</p><h2 id="periodically_run_pragma_optimize_"><span>2.1. </span>Periodically run "PRAGMA optimize"</h2> + +<p>The <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> command will automatically run ANALYZE when +needed. Suggested use: + +</p><ol> +<li><p> +Applications with short-lived database connections should run +"PRAGMA optimize;" once, just prior to closing each database connection. + +</p></li><li><p> +Applications that use long-lived database connections should run +"PRAGMA optimize=0x10002;" when the connection is first opened, and then +also run "PRAGMA optimize;" periodically, perhaps once per day, or more if +the database is evolving rapidly. + +</p></li><li><p>All applications should run "PRAGMA optimize;" after a schema change, +especially after one or more <a href="lang_createindex.html">CREATE INDEX</a> statements. +</p></li></ol> + +<p> + +</p><p>The <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> command is usually a no-op but it will occasionally +run one or more ANALYZE subcommands on individual tables of the database +if doing so will be useful to the query planner. +Since SQLite version 3.46.0 (2024-05-23), the "PRAGMA optimize" command +automatically limits the scope of ANALYZE subcommands so that +the overall "PRAGMA optimize" command completes quickly even on enormous +databases. There is no need to use <a href="pragma.html#pragma_analysis_limit">PRAGMA analysis_limit</a>. This is the +recommended way of running ANALYZE moving forward. + +</p><p>The <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> command will normally only consider running ANALYZE on +tables that have been previously queried by the same database connection or +that do not have entries in the <a href="fileformat2.html#stat1tab">sqlite_stat1</a> table. +However, if the 0x10000 bit is added to the argument, PRAGMA optimize will +examine all tables to see if they can benefit from ANALYZE, not just those +that have been recently queried. +There is no query history when a database connection first opens, and +that is why adding the 0x10000 bit is recommended when running PRAGMA optimize +on a fresh database connection. + +</p><p>See the <a href="lang_analyze.html#autoanalyze">Automatically Running ANALYZE</a> and +<a href="lang_analyze.html#approx">Approximate ANALYZE For Large Databases</a> sections below for additional +information. + +<a name="statanal"></a> + +</p><h2 id="fixed_results_of_analyze"><span>2.2. </span>Fixed results of ANALYZE</h2> + +<p>Running ANALYZE can cause SQLite to choose different query plans +for subsequent queries. This is almost always a positive thing, as the +query plans chosen after ANALYZE will in nearly every case be better than +the query plans picked before ANALYZE. That is the whole point of ANALYZE. +But there can be no proof of running ANALYZE will always be beneficial. +One can construct pathological cases where running +ANALYZE could make some subsequent queries run slower. + +</p><p>Some developers prefer that once the design of an application is frozen, +SQLite will always pick the same query plans as it did during +development and testing. +Then if a millions of copies of the application are shipped to customers, +the developers are assured that all of those millions of copies are running +the same query plans regardless of what data the individual customers insert +into their particular databases. This can help in reproducing complaints +of performance problems coming back from the field. + +</p><p>To achieve this objection, never run a full ANALYZE nor the +"PRAGMA optimize" command in the application. +Rather, only run ANALYZE during development, manually using the +<a href="cli.html">command-line interface</a> or similar, on a test database +that is similar in size and content to live databases. Then capture +the result of this one-time ANALYZE using a script like the +following: + +</p><div class="codeblock"><pre>.mode list +SELECT + 'ANALYZE sqlite_schema;' || + 'DELETE FROM sqlite_stat1;' || + 'INSERT INTO sqlite_stat1(tbl,idx,stat)VALUES' || + (SELECT group_concat(format('(%Q,%Q,%Q)',tbl,idx,stat),',') + FROM sqlite_stat1) || + ';ANALYZE sqlite_schema;'; +</pre></div> -<p>Applications with long-lived databases that use complex -queries should consider running the following commands just prior -to closing each database connection: +<p>When creating a new instance of the database in deployed instances of +the application, or perhaps every time the application is started up in +the case of long-running applications, run the commands generated by +script above. This will populate the <a href="fileformat2.html#stat1tab">sqlite_stat1</a> table exactly as +it was during development and testing and ensure that the query plans +selected in the field are same has those selected during testing in the +lab. Maybe copy/paste the string generated by the script above into +a static string constant named "zStat1Init" and then invoke: -</p><div class="codeblock"><pre>PRAGMA analysis_limit=400; -PRAGMA optimize; +</p><div class="codeblock"><pre>sqlite3_exec(db, zStat1Init, 0, 0, 0); </pre></div> -<p>The <a href="pragma.html#pragma_optimize">optimize pragma</a> is usually a no-op but it will occasionally -run ANALYZE if it seems like doing so will be useful to the query planner. -The <a href="pragma.html#pragma_analysis_limit">analysis_limit pragma</a> limits the scope of any ANALYZE command that -the <a href="pragma.html#pragma_optimize">optimize pragma</a> runs so that it does not consume too many CPU cycles. -The constant "400" can be adjusted as needed. Values between 100 and -1000 work well for most applications. +<p>Perhaps also add "BEGIN;" at the start of the string constant and +"COMMIT;" at the end, depending on the context in which the script is run. -</p><h1 id="details"><span>2. </span>Details</h1> +</p><p>See the <a href="queryplanner-ng.html#qpstab">query planner stability guarantee</a> for addition information. + +</p><h1 id="details"><span>3. </span>Details</h1> <p> The default implementation stores all statistics in a single table named "<a href="fileformat2.html#stat1tab">sqlite_stat1</a>". @@ -238,7 +363,7 @@ ANALYZE command. See "<a href="optoverview.html#manctrl">Manual Control Of Query Plans Using SQLITE_STAT Tables</a>" for further information.</p> -<p> Statistics gathered by ANALYZE are not automatically updated as +<p> Statistics gathered by ANALYZE are <u>not</u> updated as the content of the database changes. If the content of the database changes significantly, or if the database schema changes, then one should consider rerunning the ANALYZE command in order to update the statistics.</p> @@ -252,12 +377,15 @@ can force the query planner to reread the statistics tables by running <a name="autoanalyze"></a> -<h1 id="automatically_running_analyze"><span>3. </span>Automatically Running ANALYZE</h1> +<h1 id="automatically_running_analyze"><span>4. </span>Automatically Running ANALYZE</h1> <p>The <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> command will automatically run ANALYZE on individual tables on an as-needed basis. The recommended practice is for applications to invoke the <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> statement just before closing each database -connection.</p> +connection. Or, if the application keeps a single database connection open +for a long time, then it should run "PRAGMA optimize=0x10002" when the +connection is first opened and run "PRAGMA optimize;" periodically thereafter, +perhaps once per day or even once per hour.</p> <p>Each SQLite <a href="c3ref/sqlite3.html">database connection</a> records cases when the query planner would benefit from having accurate results of ANALYZE at hand. These records @@ -274,22 +402,23 @@ is recommended that <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> be is closing and has thus had an opportunity to accumulate as much usage information as possible. It is also reasonable to set a timer to run <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> every few hours, or every few days, for database connections that stay open -for a long time.</p> - -<p>Applications that desire more control can run <a href="pragma.html#pragma_optimize">PRAGMA optimize(0x03)</a> to -obtain a list of ANALYZE commands that SQLite thinks are appropriate to run, -but without actually running those commands. If the returned set is -non-empty, the application can then make a decision about whether or not -to run the suggested ANALYZE commands, perhaps after prompting the user -for guidance.</p> +for a long time. When running <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> immediately after a +database connection is opened, one can add the 0x10000 bit to the bitmask +argument (thus making the command read "PRAGMA optimize=0x10002") which +causes all tables to be examined, even tables that have not been +queried during the current connection.</p> <p>The <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> command was first introduced with SQLite 3.18.0 (2017-03-28) and is a no-op for all prior releases -of SQLite.</p> +of SQLite. The <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> command was significantly enhanced +in SQLite 3.46.0 (2024-05-23) and the advice given in this +documentation is based on those enhancements. Applications that +use earlier versions of SQLite should consult the corresponding +documentation for better advice on the best ways to use PRAGMA optimize.</p> <a name="approx"></a> -<h1 id="approximate_analyze_for_large_databases"><span>4. </span>Approximate ANALYZE For Large Databases</h1> +<h1 id="approximate_analyze_for_large_databases"><span>5. </span>Approximate ANALYZE For Large Databases</h1> <p>By default, ANALYZE does a full scan of every index. This can be slow for large databases. So beginning with SQLite version 3.32.0 (2020-05-22), the @@ -335,16 +464,19 @@ is noticeably inferior to a full-scan ANALYZE, but such cases are rare in real-world problems. </p><p>A good rule of thumb seems to be to always set "PRAGMA analysis_limit=N" -for N between 100 and 1000 prior to running either "ANALYZE" or -"<a href="pragma.html#pragma_optimize">PRAGMA optimize</a>". The results are not quite as precise, but they -are precise enough, and the fact that the results are computed so much -faster means that developers are more likely to compute them. An -approximate ANALYZE is better than not running ANALYZE at all. +for N between 100 and 1000 prior to running either "ANALYZE". It used +to be that this was also recommended prior to running +"<a href="pragma.html#pragma_optimize">PRAGMA optimize</a>", but since version 3.46.0 (2024-05-23) that +happens automatically. The results are not quite as precise when using +PRAGMA analysis_limit, but they are precise enough, and the fact that +the results are computed so much faster means that developers are more +likely to compute them. An approximate ANALYZE is better than not +running ANALYZE at all. -</p><h2 id="limitations_of_approximate_analyze"><span>4.1. </span>Limitations of approximate ANALYZE</h2> +</p><h2 id="limitations_of_approximate_analyze"><span>5.1. </span>Limitations of approximate ANALYZE</h2> <p>The content in the sqlite_stat4 table cannot be computed with anything less than a full scan. Hence, if a non-zero analysis limit is specified, the sqlite_stat4 table is not computed. -</p><p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/lang_analyze.in?m=79afc38f73">2024-02-21 13:43:47</a> UTC </small></i></p> +</p><p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/lang_analyze.in?m=4607c3507e">2024-05-05 15:23:53</a> UTC </small></i></p> diff --git a/www/lang_datefunc.html b/www/lang_datefunc.html index 24d0338..7f4ff38 100644 --- a/www/lang_datefunc.html +++ b/www/lang_datefunc.html @@ -126,7 +126,6 @@ Date And Time Functions Table Of Contents </a> <div id="toc_sub"><div class="fancy-toc1"><a href="#overview">1. Overview</a></div> -<div class="fancy-toc2"><a href="#timediff_">1.1. Timediff()</a></div> <div class="fancy-toc1"><a href="#time_values">2. Time Values</a></div> <div class="fancy-toc1"><a href="#modifiers">3. Modifiers</a></div> <div class="fancy-toc1"><a href="#examples">4. Examples</a></div> @@ -169,47 +168,63 @@ SQLite supports seven <a href="lang_corefunc.html">scalar</a> date and time func </ol> <p> -The first six date and time functions take an optional time value as an argument, followed -by zero or more modifiers. +The first six date and time functions take an optional <a href="lang_datefunc.html#tmval">time-value</a> as an argument, followed +by zero or more <a href="lang_datefunc.html#dtmods">modifiers</a>. The strftime() function also takes a format string as its first argument. -The timediff() function takes exactly two arguments which are both time values. +The timediff() function takes exactly two arguments which are both <a href="lang_datefunc.html#tmval">time-values</a>. </p> <p> -Date and time values can be stored as -</p><ul> -<li> text in a subset of the <a href="http://en.wikipedia.org/wiki/ISO_8601">ISO-8601</a> format, -</li><li> numbers representing the <a href="http://en.wikipedia.org/wiki/Julian_day">Julian day</a>, or -</li><li> numbers representing the number of seconds since (or before) 1970-01-01 00:00:00 UTC - (the unix timestamp). -</li></ul> +SQLite does not have a dedicated date/time datatype. Instead, +date and time values can stored as any of the following: + +</p><p></p><blockquote> +<table border="0" cellspacing="0" cellpadding="0"> +<tr> +<td><a href="http://en.wikipedia.org/wiki/ISO_8601">ISO-8601</a> +</td><td>A text string that is an ISO 8601 date/time value. +Example: <tt>'2025-05-29 14:16:00'</tt> +</td></tr><tr> +<td><a href="http://en.wikipedia.org/wiki/Julian_day">Julian day number</a> +</td><td>The number of days including fractional days since -4713-11-24 12:00:00 +Example: <tt>2460825.09444444</tt> +</td></tr><tr> +<td><a href="https://en.wikipedia.org/wiki/Unix_time">Unix timestamp</a> +</td><td>The number of seconds including fractional seconds since 1970-01-01 00:00:00 +Example: <tt>1748528160</tt> +</td></tr></table> +</blockquote> <p> -All of the date time functions access time-values as either ISO-8601 strings or -Julian day numbers. They also access unix timestamps with optional arguments -(the 'auto' and 'unixepoch' modifiers described below). Since the timediff() -function does not accept any optional argument, it can only use ISO-8601 and -Julian day number time values. +These three formats are collectively known as <a href="lang_datefunc.html#tmval">time-values</a>. +All of the date time functions accept time-values as either ISO-8601 text or +as Julian day numbers. They can also be made to accept unix timestamps by +adding optional modifiers arguments <a href="lang_datefunc.html#automod">'auto'</a> or +<a href="lang_datefunc.html#jdmod">'unixepoch'</a>. +Since the timediff() function does not accept modifiers, +it can only use ISO-8601 and julian day number time-values. <a name="dttm"></a> </p><p> -The date() function returns the date as text in this format: YYYY-MM-DD. +The <b>date()</b> function returns the date as text in this format: YYYY-MM-DD. <a name="dttm"></a> </p><p> -The time() function returns the time as text in this format: HH:MM:SS. +The <b>time()</b> function returns the time as text in formatted as HH:MM:SS or as HH:MM:SS.SSS if +the <a href="lang_datefunc.html#subsec">subsec modifier</a> is used. <a name="dttm"></a> </p><p> -The datetime() function returns the date and time as text in this formats: YYYY-MM-DD HH:MM:SS. +The <b>datetime()</b> function returns the date and time formatted as YYYY-MM-DD HH:MM:SS or +as YYYY-MM-DD HH:MM:SS.SSS if the <a href="lang_datefunc.html#subsec">subsec modifier</a> is used. <a name="jlndy"></a> </p><p> -The julianday() function returns the +The <b>julianday()</b> function returns the <a href="http://en.wikipedia.org/wiki/Julian_day">Julian day</a> - the fractional number of days since noon in Greenwich on November 24, 4714 B.C. (<a href="http://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar">Proleptic Gregorian calendar</a>). @@ -217,7 +232,7 @@ fractional number of days since noon in Greenwich on November 24, 4714 B.C. <a name="uepch"></a> </p><p> -The unixepoch() function returns a unix timestamp - the number of seconds +The <b>unixepoch()</b> function returns a unix timestamp - the number of seconds since 1970-01-01 00:00:00 UTC. The unixepoch() function normally returns an integer number of seconds, but with the optional <a href="lang_datefunc.html#subsec">subsec modifier</a> it will return a floating point number which is the fractional number of seconds. @@ -225,22 +240,27 @@ will return a floating point number which is the fractional number of seconds. <a name="strftm"></a> </p><p> -The strftime() routine returns the date formatted according to +The <b>strftime()</b> function returns the date formatted according to the format string specified as the first argument. The format string supports the most common substitutions found in the <a href="http://opengroup.org/onlinepubs/007908799/xsh/strftime.html">strftime() function</a> from the standard C library plus two new substitutions, %f and %J. -The following is a complete list of valid strftime() substitutions: +The following is a complete list of valid strftime() substitutions +as of version 3.46.0 (2024-05-23). Earlier versions of SQLite +might not support all substitutions. If an undefined or unsupported +substitution is seen, the result is NULL. </p> <blockquote> <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td><td width="10"></td><td></td></tr> -<tr><td> %d </td><td></td><td> day of month: 00-31 -</td></tr><tr><td> %e </td><td></td><td> day of month without leading zero: 0-31 +<tr><td> %d </td><td></td><td> day of month: 01-31 +</td></tr><tr><td> %e </td><td></td><td> day of month without leading zero: 1-31 </td></tr><tr><td> %f </td><td></td><td> fractional seconds: SS.SSS </td></tr><tr><td> %F </td><td></td><td> ISO 8601 date: YYYY-MM-DD +</td></tr><tr><td> %G </td><td></td><td> ISO 8601 year corresponding to %V +</td></tr><tr><td> %g </td><td></td><td> 2-digit ISO 8601 year corresponding to %V </td></tr><tr><td> %H </td><td></td><td> hour: 00-24 </td></tr><tr><td> %I </td><td></td><td> hour for 12-hour clock: 01-12 </td></tr><tr><td> %j </td><td></td><td> day of year: 001-366 @@ -255,9 +275,11 @@ The following is a complete list of valid strftime() substitutions: </td></tr><tr><td> %s </td><td></td><td> seconds since 1970-01-01 </td></tr><tr><td> %S </td><td></td><td> seconds: 00-59 </td></tr><tr><td> %T </td><td></td><td> ISO 8601 time: HH:MM:SS +</td></tr><tr><td> %U </td><td></td><td> week of year (00-53) - week 01 starts on the first Sunday </td></tr><tr><td> %u </td><td></td><td> day of week 1-7 with Monday==1 +</td></tr><tr><td> %V </td><td></td><td> ISO 8601 week of year </td></tr><tr><td> %w </td><td></td><td> day of week 0-6 with Sunday==0 -</td></tr><tr><td> %W </td><td></td><td> week of year: 00-53 +</td></tr><tr><td> %W </td><td></td><td> week of year (00-53) - week 01 starts on the first Monday </td></tr><tr><td> %Y </td><td></td><td> year: 0000-9999 </td></tr><tr><td> %% </td><td></td><td> % </td></tr></table> @@ -270,12 +292,12 @@ in terms of strftime(): <blockquote> <table border="0" cellpadding="0" cellspacing="0"> -<tr><td><b>Function</b></td><td width="30"></td><td><b>Equivalent (or nearly) strftime()</b> +<tr><td><b>Function</b></td><td width="30"></td><td><b>Equivalent strftime()</b> </td></tr><tr><td> date(...) </td><td></td><td> strftime('%F', ...) </td></tr><tr><td> time(...) </td><td></td><td> strftime('%T', ...) </td></tr><tr><td> datetime(...) </td><td></td><td> strftime('%F %T', ...) -</td></tr><tr><td> julianday(...) </td><td></td><td> <nobr>strftime('%J', ...) -- (numeric return)</nobr> -</td></tr><tr><td> unixepoch(...) </td><td></td><td> <nobr>strftime('%s', ...) -- (numeric return)</nobr> +</td></tr><tr><td> julianday(...) </td><td></td><td> <nobr>CAST(strftime('%J', ...) as REAL)</nobr> +</td></tr><tr><td> unixepoch(...) </td><td></td><td> <nobr>CAST(strftime('%s', ...) as INT)</nobr> </td></tr></table> </blockquote> @@ -296,10 +318,8 @@ of the '%J' or '%s' format specifiers with the strftime() function. <a name="tmdif"></a> -<h2 id="timediff_"><span>1.1. </span>Timediff()</h2> - <p> -The timediff(A,B) routine returns a string that describes the amount +The <b>timediff(A,B)</b> function returns a string that describes the amount of time that must be added to B in order to reach time A. The format of the timediff() result is designed to be human-readable. The format is: </p><blockquote> @@ -307,7 +327,7 @@ the timediff() result is designed to be human-readable. The format is: </blockquote> <p> This time difference string is also an allowed modifier for the other -date/time functions. The following invariant holds for time values A +date/time functions. The following invariant holds for time-values A and B: </p><blockquote> datetime(A) = datetime(B, timediff(A,B)) @@ -342,9 +362,11 @@ between two julianday() or unixepoch() calls. </p> +<a name="tmval"></a> + <h1 id="time_values"><span>2. </span>Time Values</h1> -<p>A time value can be in any of the following formats shown below. +<p>A time-value can be in any of the following formats shown below. The value is usually a string, though it can be an integer or floating point number in the case of format 12. @@ -378,7 +400,7 @@ Format 12 is the <a href="http://en.wikipedia.org/wiki/Julian_day">Julian day number</a> expressed as an integer or floating point value. Format 12 might also be interpreted as a unix timestamp if it is immediately followed -either the 'auto' or 'unixepoch' modifier. +either the <a href="lang_datefunc.html#automod">'auto'</a> or <a href="lang_datefunc.html#jdmod">'unixepoch'</a> modifier. </p> <p> @@ -386,7 +408,7 @@ Formats 2 through 10 may be optionally followed by a timezone indicator of the f "<i>[+-]HH:MM</i>" or just "<i>Z</i>". The date and time functions use UTC or "zulu" time internally, and so the "Z" suffix is a no-op. Any non-zero "HH:MM" suffix is subtracted from the indicated date and time in order to compute zulu time. -For example, all of the following time values are equivalent: +For example, all of the following time-values are equivalent: </p> <blockquote> @@ -417,9 +439,9 @@ value of 'now' is assumed. </p><h1 id="modifiers"><span>3. </span>Modifiers</h1> <p>For all date/time functions other than timediff(), -the time value argument can be followed by zero or more modifiers that +the time-value argument can be followed by zero or more modifiers that alter date and/or time. Each modifier -is a transformation that is applied to the time value to its left. +is a transformation that is applied to the time-value to its left. Modifiers are applied from left to right; order is important. The available modifiers are as follows.</p> @@ -437,17 +459,19 @@ The available modifiers are as follows.</p> </li><li value="11"> ±YYYY-MM-DD HH:MM </li><li value="12"> ±YYYY-MM-DD HH:MM:SS </li><li value="13"> ±YYYY-MM-DD HH:MM:SS.SSS -</li><li value="14"> start of month -</li><li value="15"> start of year -</li><li value="16"> start of day -</li><li value="17"> weekday N -</li><li value="18"> unixepoch -</li><li value="19"> julianday -</li><li value="20"> auto -</li><li value="21"> localtime -</li><li value="22"> utc -</li><li value="23"> subsec -</li><li value="24"> subsecond +</li><li value="14"> ceiling +</li><li value="15"> floor +</li><li value="16"> start of month +</li><li value="17"> start of year +</li><li value="18"> start of day +</li><li value="19"> weekday N +</li><li value="20"> unixepoch +</li><li value="21"> julianday +</li><li value="22"> auto +</li><li value="23"> localtime +</li><li value="24"> utc +</li><li value="25"> subsec +</li><li value="26"> subsecond </li></ol> <p>The first thirteen modifiers (1 through 13) @@ -455,53 +479,58 @@ add the specified amount of time to the date and time specified by the arguments to its left. The 's' character at the end of the modifier names in 1 through 6 is optional. The NNN value can be any floating point number, with an optional '+' or '-' prefix. -Note that "±NNN months" works by rendering the original date into -the YYYY-MM-DD format, adding the ±NNN to the MM month value, then -normalizing the result. Thus, for example, the date 2001-03-31 modified -by '+1 month' initially yields 2001-04-31, but April only has 30 days -so the date is normalized to 2001-05-01. A similar effect occurs when -the original date is February 29 of a leapyear and the modifier is -±N years where N is not a multiple of four.</p> <a name="tmshf"></a> -<p>The time shift modifiers (7 through 13) move the time value by the +</p><p>The <b>time shift modifiers</b> (7 through 13) move the time-value by the number of years, months, days, hours, minutes, and/or seconds specified. An initial "+" or "-" is required for formats 10 through 13 but is optional for formats 7, 8, and 9. The changes are applies from left to right. First the year is shifted by YYYY, then the month by MM, and then day -by DD, and so forth. The normalization and rounding due to differing month -lengths and leap years is applied after each step. The +by DD, and so forth. The timediff(A,B) function returns a time shift in format 13 that shifts -the time value B into A.</p> - -<p>The "start of" modifiers (14 through 16) shift the date backwards +the time-value B into A.</p> + +<a name="dtambg"></a> + +<p>Because the length of a month or year changes from one month or year +to the next, ambiguities can arise when shifting a date by months and/or years. +For example, what is the date one year after 2024-02-29? Is it 2025-02-28 +or 2025-03-01? Or what is the date that is two months after 2023-12-31? +Is it 2024-02-29 or 2024-03-02? There is no consensus on how to resolve +this ambiguity, so the "<b>ceiling</b>" and "<b>floor</b>" modifiers +(14 and 15) are available to +let the programmer decide. If the next modifier after a time shift is +"ceiling", then any ambiguity in the date is resolved by choosing the +later date. The "floor" modifier resolves ambiguities +by resolving to the last day of the previous month. The default +behavior is "ceiling". + +</p><p>The "<b>start of</b>" modifiers (16 through 18) shift the date backwards to the beginning of the subject month, year or day.</p> -<p>The "weekday" modifier advances the date forward, if necessary, +<p>The "<b>weekday</b>" modifier advances the date forward, if necessary, to the next date where the weekday number is N. Sunday is 0, Monday is 1, and so forth. If the date is already on the desired weekday, the "weekday" modifier leaves the date unchanged. </p> -<p>The "unixepoch" modifier (18) only works if it immediately follows -a time value in the DDDDDDDDDD format. +<a name="jdmod"></a> + +<p>The "<b>unixepoch</b>" modifier (20) only works if it immediately follows +a time-value in the DDDDDDDDDD format. This modifier causes the DDDDDDDDDD to be interpreted not as a Julian day number as it normally would be, but as <a href="http://en.wikipedia.org/wiki/Unix_time">Unix Time</a> - the number of seconds since 1970. If the "unixepoch" modifier does not -follow a time value of the form DDDDDDDDDD which expresses the number +follow a time-value of the form DDDDDDDDDD which expresses the number of seconds since 1970 or if other modifiers separate the "unixepoch" modifier from prior DDDDDDDDDD then the behavior is undefined. -For SQLite versions before 3.16.0 (2017-01-02), -the "unixepoch" modifier only works for -dates between 0000-01-01 00:00:00 and 5352-11-01 10:52:47 (unix times -of -62167219200 through 106751991167).</p> <a name="jdmod"></a> -<p>The "julianday" modifier must immediately follow the initial +</p><p>The "<b>julianday</b>" modifier must immediately follow the initial time-value which must be of the form DDDDDDDDD. Any other use of the 'julianday' modifier is an error and causes the function to return NULL. The 'julianday' modifier forces the time-value number to be interpreted @@ -512,7 +541,7 @@ a NULL to be returned if any other time-value format is used. <a name="automod"></a> -</p><p>The "auto" modifier must immediately follow the initial time-value. +</p><p>The "<b>auto</b>" modifier must immediately follow the initial time-value. If the time-value is numeric (the DDDDDDDDDD format) then the 'auto' modifier causes the time-value to interpreted as either a julian day number or a unix timestamp, depending on its magnitude. If the value @@ -523,35 +552,36 @@ values outside of the range of valid julian day numbers, but within the range of -210866760000 to 253402300799, the 'auto' modifier causes the value to be interpreted as a unix timestamp. Other numeric values are out of range and cause a NULL return. The 'auto' modifier is a no-op -for text time-values. - -</p><p>The 'auto' modifier can be used to work with date/time values even in -cases where it is not known if the julian day number or unix timestamp -formats are in use. The 'auto' modifier will automatically select the -appropriate format. However, there is a region of ambiguity. Unix +for ISO 8601 text time-values. +The "auto" modifier is designed to work with time-values even in +cases where it is not known which time-value format +is stored in the database file, or in cases where the same column +stores time-values in different formats on different rows. +The 'auto' modifier will automatically select the +appropriate format. However, there is some ambiguity. Unix timestamps for the first 63 days of 1970 will be interpreted as julian day numbers. The 'auto' modifier is very useful when the dataset is -guaranteed to not contain any dates within that region, but should be +guaranteed to contain no dates within that range, but should be avoided for applications that might make use of dates in the opening months of 1970. <a name="localtime"></a> -</p><p>The "localtime" modifier (21) assumes the time value to its left is in +</p><p>The "<b>localtime</b>" modifier assumes the time-value to its left is in Universal Coordinated Time (UTC) and adjusts that time value so that it is in localtime. If "localtime" follows a time that is not UTC, then the behavior is undefined. -The "utc" modifier is the opposite of "localtime". -"utc" assumes that the time value -to its left is in the local timezone and adjusts that time value to be in UTC. +The "<b>utc</b>" modifier is the opposite of "localtime". +"utc" assumes that the time-value +to its left is in the local timezone and adjusts that time-value to be in UTC. If the time to the left is not in localtime, then the result of "utc" is undefined.</p> <a name="subsec"></a> <p> -The "subsecond" modifier (which may be abbreviated as just -"subsec") increases the resolution of the output for +The "<b>subsecond</b>" modifier (which may be abbreviated as just +"<b>subsec</b>") increases the resolution of the output for <a href="lang_datefunc.html#dttm">datetime()</a>, <a href="lang_datefunc.html#dttm">time()</a>, and <a href="lang_datefunc.html#uepch">unixepoch()</a>, and for the "%s" format string in <a href="lang_datefunc.html#strftm">strftime()</a>. The "subsecond" modifier has no effect on other date/time functions. @@ -563,12 +593,10 @@ followed by a decimal point and one or more digits to show fractional seconds. When "subsec" is used with <a href="lang_datefunc.html#uepch">unixepoch()</a>, the result is a floating point value which is the number of seconds and fractional seconds since 1970-01-01. - -</p><p> The "subsecond" and "subsec" modifiers have the special property that they can occur as the first argument to date/time functions (or as the first argument after the format string for strftime()). -When this happens, the time value that is normally in the first +When this happens, the time-value that is normally in the first argument is understood to be "now". For example, a short cut to get the current time in seconds since 1970 with millisecond precision is to say: @@ -674,5 +702,5 @@ getting results correct back to 1986, when the rules were also changed.</p> <a href="http://en.wikipedia.org/wiki/Gregorian_calendar">Gregorian calendar</a> system. They also assume that every day is exactly 86400 seconds in duration; no leap seconds are incorporated.</p> - +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/lang_datefunc.in?m=91b979fe1e">2024-04-16 16:29:07</a> UTC </small></i></p> diff --git a/www/lang_expr.html b/www/lang_expr.html index e2ea564..7edca23 100644 --- a/www/lang_expr.html +++ b/www/lang_expr.html @@ -163,8 +163,8 @@ mk.innerHTML = "►"; <h1 id="syntax"><span>1. </span>Syntax</h1> <p><b><a href="syntax/expr.html">expr:</a></b> -<button id='x0840e91f' onclick='hideorshow("x0840e91f","x93e29188")'>hide</button></p> - <div id='x93e29188' class='imgcontainer'> +<button id='xa5f3b8e5' onclick='hideorshow("xa5f3b8e5","x17177a92")'>hide</button></p> + <div id='x17177a92' class='imgcontainer'> <div style="max-width:963px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 963.96 1068.77"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -645,8 +645,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/filter-clause.html">filter-clause:</a></b> -<button id='xe791f458' onclick='hideorshow("xe791f458","x8260bcb6")'>show</button></p> - <div id='x8260bcb6' style='display:none;' class='imgcontainer'> +<button id='x98b6880c' onclick='hideorshow("x98b6880c","x6f03314a")'>show</button></p> + <div id='x6f03314a' style='display:none;' class='imgcontainer'> <div style="max-width:422px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 422.381 34.56"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -676,8 +676,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/function-arguments.html">function-arguments:</a></b> -<button id='x6b6311f3' onclick='hideorshow("x6b6311f3","x03054146")'>show</button></p> - <div id='x03054146' style='display:none;' class='imgcontainer'> +<button id='x73977ab6' onclick='hideorshow("x73977ab6","x779ab17e")'>show</button></p> + <div id='x779ab17e' style='display:none;' class='imgcontainer'> <div style="max-width:456px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 456.566 223.344"> <circle cx="5" cy="56" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,56 20,60 20,52" style="fill:rgb(0,0,0)"/> @@ -739,8 +739,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='x89085fed' onclick='hideorshow("x89085fed","x06a9994e")'>show</button></p> - <div id='x06a9994e' style='display:none;' class='imgcontainer'> +<button id='x18036a83' onclick='hideorshow("x18036a83","x49cfd0ec")'>show</button></p> + <div id='x49cfd0ec' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -801,8 +801,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/literal-value.html">literal-value:</a></b> -<button id='x3dcd39c0' onclick='hideorshow("x3dcd39c0","x4bef33ac")'>show</button></p> - <div id='x4bef33ac' style='display:none;' class='imgcontainer'> +<button id='x2851e2dc' onclick='hideorshow("x2851e2dc","x8205f18b")'>show</button></p> + <div id='x8205f18b' style='display:none;' class='imgcontainer'> <div style="max-width:341px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 341.376 336.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,319 39,324 39,315" style="fill:rgb(0,0,0)"/> @@ -872,8 +872,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/over-clause.html">over-clause:</a></b> -<button id='x65ac9340' onclick='hideorshow("x65ac9340","xff7cf9ba")'>show</button></p> - <div id='xff7cf9ba' style='display:none;' class='imgcontainer'> +<button id='xcd398ae6' onclick='hideorshow("xcd398ae6","x3809982e")'>show</button></p> + <div id='x3809982e' style='display:none;' class='imgcontainer'> <div style="max-width:600px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 600.706 418.392"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -964,8 +964,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x5053fd03' onclick='hideorshow("x5053fd03","xc8cecb54")'>show</button></p> - <div id='xc8cecb54' style='display:none;' class='imgcontainer'> +<button id='x2a6fa908' onclick='hideorshow("x2a6fa908","x2f852834")'>show</button></p> + <div id='x2f852834' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -1174,8 +1174,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='xbbbbd699' onclick='hideorshow("xbbbbd699","xe30fce1f")'>show</button></p> - <div id='xe30fce1f' style='display:none;' class='imgcontainer'> +<button id='x2f3ff9b2' onclick='hideorshow("x2f3ff9b2","xad93baa8")'>show</button></p> + <div id='xad93baa8' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1236,8 +1236,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/raise-function.html">raise-function:</a></b> -<button id='x98684bf2' onclick='hideorshow("x98684bf2","x0d0799ad")'>show</button></p> - <div id='x0d0799ad' style='display:none;' class='imgcontainer'> +<button id='x118d5a2a' onclick='hideorshow("x118d5a2a","xc503a433")'>show</button></p> + <div id='xc503a433' style='display:none;' class='imgcontainer'> <div style="max-width:627px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 627.302 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1292,8 +1292,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='xb57a1b54' onclick='hideorshow("xb57a1b54","x03819efa")'>show</button></p> - <div id='x03819efa' style='display:none;' class='imgcontainer'> +<button id='x5e2a82d5' onclick='hideorshow("x5e2a82d5","x6cc88482")'>show</button></p> + <div id='x6cc88482' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -1571,8 +1571,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/common-table-expression.html">common-table-expression:</a></b> -<button id='x54b507bb' onclick='hideorshow("x54b507bb","x8a122cb2")'>show</button></p> - <div id='x8a122cb2' style='display:none;' class='imgcontainer'> +<button id='xa9f9876a' onclick='hideorshow("xa9f9876a","x9712233e")'>show</button></p> + <div id='x9712233e' style='display:none;' class='imgcontainer'> <div style="max-width:638px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 638.525 167.4"> <circle cx="5" cy="29" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,29 20,33 20,24" style="fill:rgb(0,0,0)"/> @@ -1642,8 +1642,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/compound-operator.html">compound-operator:</a></b> -<button id='x002bdbec' onclick='hideorshow("x002bdbec","x02204fc1")'>show</button></p> - <div id='x02204fc1' style='display:none;' class='imgcontainer'> +<button id='xba5a7bde' onclick='hideorshow("xba5a7bde","x96523997")'>show</button></p> + <div id='x96523997' style='display:none;' class='imgcontainer'> <div style="max-width:293px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 293.842 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1684,8 +1684,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='xdd7cac4b' onclick='hideorshow("xdd7cac4b","x97ef5c09")'>show</button></p> - <div id='x97ef5c09' style='display:none;' class='imgcontainer'> +<button id='x04956505' onclick='hideorshow("x04956505","x8a93a5c0")'>show</button></p> + <div id='x8a93a5c0' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1716,8 +1716,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='xbffbdb20' onclick='hideorshow("xbffbdb20","x223e9189")'>show</button></p> - <div id='x223e9189' style='display:none;' class='imgcontainer'> +<button id='x8cd227be' onclick='hideorshow("x8cd227be","x83fa8a1d")'>show</button></p> + <div id='x83fa8a1d' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -1764,8 +1764,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='x642af74b' onclick='hideorshow("x642af74b","xc4ef5304")'>show</button></p> - <div id='xc4ef5304' style='display:none;' class='imgcontainer'> +<button id='x5836fe43' onclick='hideorshow("x5836fe43","xf1c14c8c")'>show</button></p> + <div id='xf1c14c8c' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -1832,8 +1832,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='xbc696b27' onclick='hideorshow("xbc696b27","xfe90a62a")'>show</button></p> - <div id='xfe90a62a' style='display:none;' class='imgcontainer'> +<button id='xea6946a4' onclick='hideorshow("xea6946a4","x752b5b81")'>show</button></p> + <div id='x752b5b81' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1893,8 +1893,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='x9c404de4' onclick='hideorshow("x9c404de4","xdf33ac1c")'>show</button></p> - <div id='xdf33ac1c' style='display:none;' class='imgcontainer'> +<button id='x55736445' onclick='hideorshow("x55736445","xdc7efde0")'>show</button></p> + <div id='xdc7efde0' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -1946,8 +1946,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='xfbf11dae' onclick='hideorshow("xfbf11dae","xf98cfb13")'>show</button></p> - <div id='xf98cfb13' style='display:none;' class='imgcontainer'> +<button id='x67b88cbf' onclick='hideorshow("x67b88cbf","xff270422")'>show</button></p> + <div id='xff270422' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -2091,8 +2091,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='x4037a9c6' onclick='hideorshow("x4037a9c6","x5e8aef24")'>show</button></p> - <div id='x5e8aef24' style='display:none;' class='imgcontainer'> +<button id='xfd77c047' onclick='hideorshow("xfd77c047","x027170f1")'>show</button></p> + <div id='x027170f1' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -2172,8 +2172,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x4d23db6c' onclick='hideorshow("x4d23db6c","x2fb93f17")'>show</button></p> - <div id='x2fb93f17' style='display:none;' class='imgcontainer'> +<button id='xe3cf578d' onclick='hideorshow("xe3cf578d","x785e0cad")'>show</button></p> + <div id='x785e0cad' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -2384,8 +2384,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/type-name.html">type-name:</a></b> -<button id='x562f33e9' onclick='hideorshow("x562f33e9","x65bea790")'>show</button></p> - <div id='x65bea790' style='display:none;' class='imgcontainer'> +<button id='xcea30177' onclick='hideorshow("xcea30177","x73743335")'>show</button></p> + <div id='x73743335' style='display:none;' class='imgcontainer'> <div style="max-width:661px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 661.008 110.16"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -2439,8 +2439,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/signed-number.html">signed-number:</a></b> -<button id='xa1933444' onclick='hideorshow("xa1933444","xa3236222")'>show</button></p> - <div id='xa3236222' style='display:none;' class='imgcontainer'> +<button id='x32a1800e' onclick='hideorshow("x32a1800e","x542833a7")'>show</button></p> + <div id='x542833a7' style='display:none;' class='imgcontainer'> <div style="max-width:292px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 292.013 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,44 39,48 39,40" style="fill:rgb(0,0,0)"/> @@ -2636,99 +2636,137 @@ The syntax for integer and floating point literals (collectively "numeric literals") is shown by the following diagram:</p> <p><b><a href="syntax/numeric-literal.html">numeric-literal:</a></b></p><div class='imgcontainer'> - <div style="max-width:765px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 765.562 214.056"> -<circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="63,36 51,41 51,32" style="fill:rgb(0,0,0)"/> -<path d="M9,36L57,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M78,51L98,51A15 15 0 0 0 113 36A15 15 0 0 0 98 21L78,21A15 15 0 0 0 63 36A15 15 0 0 0 78 51Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="88" y="36" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> -<polygon points="88,6 99,2 99,10" style="fill:rgb(0,0,0)"/> -<path d="M113,36 L 121,36 Q 128,36 128,21 L 128,21 Q 128,6 113,6 L 109,6 L 94,6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M88,6 L 51,6 Q 36,6 36,21 L 36,21 Q 36,36 44,36 L 51,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="176,66 164,71 164,62" style="fill:rgb(0,0,0)"/> -<path d="M113,36 L 134,36 Q 149,36 149,51 L 149,51 Q 149,66 159,66 L 170,66" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M191,82A15 15 0 0 0 206 66L206,66A15 15 0 0 0 191 51A15 15 0 0 0 176 66L176,66A15 15 0 0 0 191 82Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="191" y="66" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">.</text> -<polygon points="267,66 255,71 255,62" style="fill:rgb(0,0,0)"/> -<path d="M206,66L261,66" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="340,66 328,71 328,62" style="fill:rgb(0,0,0)"/> -<path d="M267,66L334,66" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="381,36 370,41 370,32" style="fill:rgb(0,0,0)"/> -<path d="M340,66 L 347,66 Q 355,66 355,51 L 355,51 Q 355,36 365,36 L 375,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="423,74 411,78 411,70" style="fill:rgb(0,0,0)"/> -<path d="M381,36 L 389,36 Q 396,36 396,51 L 396,59 Q 396,74 406,74 L 417,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M438,89A15 15 0 0 0 453 74L453,74A15 15 0 0 0 438 59A15 15 0 0 0 423 74L423,74A15 15 0 0 0 438 89Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="438" y="74" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">E</text> -<polygon points="494,74 483,78 483,70" style="fill:rgb(0,0,0)"/> -<path d="M453,74L489,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="423,112 411,116 411,108" style="fill:rgb(0,0,0)"/> -<path d="M381,36 L 389,36 Q 396,36 396,51 L 396,97 Q 396,112 406,112 L 417,112" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M438,127A15 15 0 0 0 453 112A15 15 0 0 0 438 97A15 15 0 0 0 423 112A15 15 0 0 0 438 127Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="438" y="112" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">e</text> -<path d="M453,112 L 460,112 Q 468,112 468,97 L 468,89 Q 468,74 475,74 L 483,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M257,112L277,112A15 15 0 0 0 292 97L292,97A15 15 0 0 0 277 82L257,82A15 15 0 0 0 242 97L242,97A15 15 0 0 0 257 112Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="267" y="97" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> -<polygon points="292,97 304,92 304,101" style="fill:rgb(0,0,0)"/> -<path d="M267,66 L 304,66 Q 319,66 319,81 L 319,82 Q 319,97 308,97 L 298,97" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M242,97 L 234,97 Q 227,97 227,82 L 227,81 Q 227,66 234,66 L 242,66" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="267,36 255,41 255,32" style="fill:rgb(0,0,0)"/> -<path d="M113,36L261,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M267,36L370,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="50,135 39,139 39,130" style="fill:rgb(0,0,0)"/> -<path d="M9,36 L 16,36 Q 24,36 24,51 L 24,120 Q 24,135 34,135 L 45,135" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M66,150A15 15 0 0 0 81 135A15 15 0 0 0 66 119A15 15 0 0 0 50 135A15 15 0 0 0 66 150Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="66" y="135" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">.</text> -<polygon points="117,135 105,139 105,130" style="fill:rgb(0,0,0)"/> -<path d="M81,135L111,135" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M132,150L152,150A15 15 0 0 0 167 135A15 15 0 0 0 152 119L132,119A15 15 0 0 0 117 135A15 15 0 0 0 132 150Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="142" y="135" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> -<polygon points="340,135 328,139 328,130" style="fill:rgb(0,0,0)"/> -<path d="M167,135L334,135" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M340,135 L 347,135 Q 355,135 355,120 L 355,66 L 355,51" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="142,104 153,100 153,109" style="fill:rgb(0,0,0)"/> -<path d="M167,135 L 174,135 Q 182,135 182,120 L 182,119 Q 182,104 167,104 L 162,104 L 147,104" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M142,104 L 105,104 Q 90,104 90,119 L 90,120 Q 90,135 98,135 L 105,135" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="536,142 524,146 524,138" style="fill:rgb(0,0,0)"/> -<path d="M494,74 L 502,74 Q 509,74 509,89 L 509,127 Q 509,142 520,142 L 530,142" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M551,157A15 15 0 0 0 566 142A15 15 0 0 0 551 127A15 15 0 0 0 536 142A15 15 0 0 0 551 157Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="551" y="142" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">-</text> -<polygon points="628,74 616,78 616,70" style="fill:rgb(0,0,0)"/> -<path d="M566,142 L 574,142 Q 581,142 581,127 L 581,89 Q 581,74 596,74 L 607,74 L 622,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M643,89L663,89A15 15 0 0 0 678 74L678,74A15 15 0 0 0 663 59L643,59A15 15 0 0 0 628 74L628,74A15 15 0 0 0 643 89Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="653" y="74" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> -<polygon points="714,74 703,78 703,70" style="fill:rgb(0,0,0)"/> -<path d="M678,74L708,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="756,36 744,41 744,32" style="fill:rgb(0,0,0)"/> -<path d="M714,74 L 722,74 Q 729,74 729,59 L 729,51 Q 729,36 740,36 L 750,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<circle cx="759" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="536,104 524,109 524,100" style="fill:rgb(0,0,0)"/> -<path d="M494,74 L 502,74 Q 509,74 509,89 L 509,89 Q 509,104 520,104 L 530,104" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M551,119A15 15 0 0 0 566 104A15 15 0 0 0 551 89A15 15 0 0 0 536 104A15 15 0 0 0 551 119Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="551" y="104" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">+</text> -<path d="M566,104 L 574,104 Q 581,104 581,97 L 581,89" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="551,36 540,41 540,32" style="fill:rgb(0,0,0)"/> -<path d="M381,36L545,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M551,36L744,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="551,74 540,78 540,70" style="fill:rgb(0,0,0)"/> -<path d="M494,74L545,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M551,74L616,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="653,50 665,46 665,54" style="fill:rgb(0,0,0)"/> -<path d="M678,74 L 686,74 Q 693,74 693,62 Q 693,50 678,50 L 674,50 L 659,50" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M653,50 L 616,50 Q 601,50 601,62 Q 601,74 609,74 L 616,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="50,180 39,184 39,176" style="fill:rgb(0,0,0)"/> -<path d="M9,36 L 16,36 Q 24,36 24,51 L 24,165 Q 24,180 34,180 L 45,180" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M66,195L69,195A15 15 0 0 0 84 180A15 15 0 0 0 69 165L66,165A15 15 0 0 0 50 180A15 15 0 0 0 66 195Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="67" y="180" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">0x</text> -<polygon points="120,180 108,184 108,176" style="fill:rgb(0,0,0)"/> -<path d="M84,180L114,180" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M135,195L185,195A15 15 0 0 0 200 180A15 15 0 0 0 185 165L135,165A15 15 0 0 0 120 180A15 15 0 0 0 135 195Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="160" y="180" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">hexdigit</text> -<polygon points="714,180 703,184 703,176" style="fill:rgb(0,0,0)"/> -<path d="M200,180L708,180" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M714,180 L 722,180 Q 729,180 729,165 L 729,74 L 729,59" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="160,207 171,203 171,211" style="fill:rgb(0,0,0)"/> -<path d="M200,180 L 207,180 Q 215,180 215,193 Q 215,207 200,207 L 180,207 L 165,207" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M160,207 L 108,207 Q 93,207 93,193 Q 93,180 101,180 L 108,180" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> + <div style="max-width:765px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 765.562 285.552"> +<circle cx="5" cy="62" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="63,62 51,66 51,58" style="fill:rgb(0,0,0)"/> +<path d="M9,62L57,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M78,77L98,77A15 15 0 0 0 113 62A15 15 0 0 0 98 47L78,47A15 15 0 0 0 63 62A15 15 0 0 0 78 77Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="88" y="62" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> +<path d="M88,32A15 15 0 0 0 103 17A15 15 0 0 0 88 2A15 15 0 0 0 73 17A15 15 0 0 0 88 32Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="88" y="17" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="103,38 115,34 115,42" style="fill:rgb(0,0,0)"/> +<path d="M113,62 L 121,62 Q 128,62 128,50 Q 128,38 118,38 L 109,38" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M103,38 L 51,38 Q 36,38 36,50 Q 36,62 44,62 L 51,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="103,17 115,12 115,21" style="fill:rgb(0,0,0)"/> +<path d="M113,62 L 121,62 Q 128,62 128,47 L 128,32 Q 128,17 118,17 L 109,17" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="63,62 51,66 51,58" style="fill:rgb(0,0,0)"/> +<path d="M73,17 L 51,17 Q 36,17 36,32 L 36,47 Q 36,62 47,62 L 57,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="176,92 164,97 164,88" style="fill:rgb(0,0,0)"/> +<path d="M113,62 L 134,62 Q 149,62 149,77 L 149,77 Q 149,92 159,92 L 170,92" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M191,108A15 15 0 0 0 206 92L206,92A15 15 0 0 0 191 77A15 15 0 0 0 176 92L176,92A15 15 0 0 0 191 108Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="191" y="92" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">.</text> +<polygon points="267,92 255,97 255,88" style="fill:rgb(0,0,0)"/> +<path d="M206,92L261,92" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="340,92 328,97 328,88" style="fill:rgb(0,0,0)"/> +<path d="M267,92L334,92" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="381,62 370,66 370,58" style="fill:rgb(0,0,0)"/> +<path d="M340,92 L 347,92 Q 355,92 355,77 L 355,77 Q 355,62 365,62 L 375,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="423,100 411,104 411,96" style="fill:rgb(0,0,0)"/> +<path d="M381,62 L 389,62 Q 396,62 396,77 L 396,85 Q 396,100 406,100 L 417,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M438,115A15 15 0 0 0 453 100L453,100A15 15 0 0 0 438 85A15 15 0 0 0 423 100L423,100A15 15 0 0 0 438 115Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="438" y="100" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">E</text> +<polygon points="494,100 483,104 483,96" style="fill:rgb(0,0,0)"/> +<path d="M453,100L489,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="423,138 411,142 411,133" style="fill:rgb(0,0,0)"/> +<path d="M381,62 L 389,62 Q 396,62 396,77 L 396,123 Q 396,138 406,138 L 417,138" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M438,153A15 15 0 0 0 453 138A15 15 0 0 0 438 123A15 15 0 0 0 423 138A15 15 0 0 0 438 153Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="438" y="138" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">e</text> +<path d="M453,138 L 460,138 Q 468,138 468,123 L 468,115 Q 468,100 475,100 L 483,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M257,132L277,132A15 15 0 0 0 292 117A15 15 0 0 0 277 101L257,101A15 15 0 0 0 242 117A15 15 0 0 0 257 132Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="267" y="117" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> +<path d="M267,168A15 15 0 0 0 282 153A15 15 0 0 0 267 138A15 15 0 0 0 252 153A15 15 0 0 0 267 168Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="267" y="153" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="292,117 304,112 304,121" style="fill:rgb(0,0,0)"/> +<path d="M267,92 L 304,92 Q 319,92 319,104 Q 319,117 308,117 L 298,117" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M242,117 L 234,117 Q 227,117 227,104 Q 227,92 234,92 L 242,92" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="252,153 240,157 240,149" style="fill:rgb(0,0,0)"/> +<path d="M242,117 L 234,117 Q 227,117 227,132 L 227,138 Q 227,153 236,153 L 246,153" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="292,117 304,112 304,121" style="fill:rgb(0,0,0)"/> +<path d="M282,153 L 304,153 Q 319,153 319,138 L 319,132 Q 319,117 308,117 L 298,117" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="267,62 255,66 255,58" style="fill:rgb(0,0,0)"/> +<path d="M113,62L261,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M267,62L370,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="50,177 39,181 39,173" style="fill:rgb(0,0,0)"/> +<path d="M9,62 L 16,62 Q 24,62 24,77 L 24,162 Q 24,177 34,177 L 45,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M66,192A15 15 0 0 0 81 177A15 15 0 0 0 66 162A15 15 0 0 0 50 177A15 15 0 0 0 66 192Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="66" y="177" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">.</text> +<polygon points="117,177 105,181 105,173" style="fill:rgb(0,0,0)"/> +<path d="M81,177L111,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M132,192L152,192A15 15 0 0 0 167 177A15 15 0 0 0 152 162L132,162A15 15 0 0 0 117 177A15 15 0 0 0 132 192Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="142" y="177" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> +<path d="M142,147A15 15 0 0 0 157 132A15 15 0 0 0 142 117A15 15 0 0 0 127 132A15 15 0 0 0 142 147Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="142" y="132" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="340,177 328,181 328,173" style="fill:rgb(0,0,0)"/> +<path d="M167,177L334,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M340,177 L 347,177 Q 355,177 355,162 L 355,92 L 355,77" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="157,153 168,149 168,157" style="fill:rgb(0,0,0)"/> +<path d="M167,177 L 174,177 Q 182,177 182,165 Q 182,153 172,153 L 163,153" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M157,153 L 105,153 Q 90,153 90,165 Q 90,177 98,177 L 105,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="157,132 168,127 168,136" style="fill:rgb(0,0,0)"/> +<path d="M167,177 L 174,177 Q 182,177 182,162 L 182,147 Q 182,132 172,132 L 163,132" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="105,177 94,181 94,173" style="fill:rgb(0,0,0)"/> +<path d="M127,132 L 105,132 Q 90,132 90,147 L 90,162 Q 90,177 95,177 L 99,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="536,168 524,172 524,164" style="fill:rgb(0,0,0)"/> +<path d="M494,100 L 502,100 Q 509,100 509,115 L 509,153 Q 509,168 520,168 L 530,168" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M551,183A15 15 0 0 0 566 168A15 15 0 0 0 551 153A15 15 0 0 0 536 168A15 15 0 0 0 551 183Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="551" y="168" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">-</text> +<polygon points="628,100 616,104 616,96" style="fill:rgb(0,0,0)"/> +<path d="M566,168 L 574,168 Q 581,168 581,153 L 581,115 Q 581,100 596,100 L 607,100 L 622,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M643,115L663,115A15 15 0 0 0 678 100L678,100A15 15 0 0 0 663 85L643,85A15 15 0 0 0 628 100L628,100A15 15 0 0 0 643 115Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="653" y="100" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> +<path d="M653,151A15 15 0 0 0 668 136A15 15 0 0 0 653 121A15 15 0 0 0 638 136A15 15 0 0 0 653 151Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="653" y="136" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="714,100 703,104 703,96" style="fill:rgb(0,0,0)"/> +<path d="M678,100L708,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="756,62 744,66 744,58" style="fill:rgb(0,0,0)"/> +<path d="M714,100 L 722,100 Q 729,100 729,85 L 729,77 Q 729,62 740,62 L 750,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<circle cx="759" cy="62" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="536,130 524,135 524,126" style="fill:rgb(0,0,0)"/> +<path d="M494,100 L 502,100 Q 509,100 509,115 L 509,115 Q 509,130 520,130 L 530,130" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M551,145A15 15 0 0 0 566 130A15 15 0 0 0 551 115A15 15 0 0 0 536 130A15 15 0 0 0 551 145Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="551" y="130" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">+</text> +<path d="M566,130 L 574,130 Q 581,130 581,123 L 581,115" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="551,62 540,66 540,58" style="fill:rgb(0,0,0)"/> +<path d="M381,62L545,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M551,62L744,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="551,100 540,104 540,96" style="fill:rgb(0,0,0)"/> +<path d="M494,100L545,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M551,100L616,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="653,76 665,71 665,80" style="fill:rgb(0,0,0)"/> +<path d="M678,100 L 686,100 Q 693,100 693,88 Q 693,76 678,76 L 674,76 L 659,76" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M653,76 L 616,76 Q 601,76 601,88 Q 601,100 609,100 L 616,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="668,136 680,132 680,141" style="fill:rgb(0,0,0)"/> +<path d="M678,100 L 686,100 Q 693,100 693,115 L 693,121 Q 693,136 684,136 L 674,136" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="628,100 616,104 616,96" style="fill:rgb(0,0,0)"/> +<path d="M638,136 L 616,136 Q 601,136 601,121 L 601,115 Q 601,100 612,100 L 622,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="50,222 39,227 39,218" style="fill:rgb(0,0,0)"/> +<path d="M9,62 L 16,62 Q 24,62 24,77 L 24,207 Q 24,222 34,222 L 45,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M66,238L69,238A15 15 0 0 0 84 222A15 15 0 0 0 69 207L66,207A15 15 0 0 0 50 222A15 15 0 0 0 66 238Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="67" y="222" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">0x</text> +<polygon points="155,222 144,227 144,218" style="fill:rgb(0,0,0)"/> +<path d="M84,222L149,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="197,222 185,227 185,218" style="fill:rgb(0,0,0)"/> +<path d="M155,222L191,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M64,277L70,277A15 15 0 0 0 85 262A15 15 0 0 0 70 247L64,247A15 15 0 0 0 49 262A15 15 0 0 0 64 277Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="67" y="262" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">0X</text> +<path d="M212,238L262,238A15 15 0 0 0 277 222A15 15 0 0 0 262 207L212,207A15 15 0 0 0 197 222A15 15 0 0 0 212 238Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="237" y="222" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">hexdigit</text> +<path d="M237,283A15 15 0 0 0 252 268A15 15 0 0 0 237 253A15 15 0 0 0 222 268A15 15 0 0 0 237 283Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="237" y="268" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="714,222 703,227 703,218" style="fill:rgb(0,0,0)"/> +<path d="M277,222L708,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M714,222 L 722,222 Q 729,222 729,207 L 729,100 L 729,85" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="49,262 38,266 38,257" style="fill:rgb(0,0,0)"/> +<path d="M24,202 L 24,247 Q 24,262 34,262 L 43,262" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="197,222 185,227 185,218" style="fill:rgb(0,0,0)"/> +<path d="M85,262 L 92,262 Q 100,262 100,247 L 100,237 Q 100,222 115,222 L 176,222 L 191,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="252,247 263,242 263,251" style="fill:rgb(0,0,0)"/> +<path d="M277,222 L 284,222 Q 292,222 292,235 Q 292,247 277,247 L 273,247 L 258,247" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M252,247 L 185,247 Q 170,247 170,235 Q 170,222 178,222 L 185,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="252,268 263,263 263,272" style="fill:rgb(0,0,0)"/> +<path d="M277,222 L 284,222 Q 292,222 292,237 L 292,253 Q 292,268 277,268 L 273,268 L 258,268" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="197,222 185,227 185,218" style="fill:rgb(0,0,0)"/> +<path d="M222,268 L 185,268 Q 170,268 170,253 L 170,237 Q 170,222 181,222 L 191,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> </svg> </div> </div> @@ -2746,6 +2784,11 @@ as the decimal point even if the locale setting specifies "," for this role - the use of "," for the decimal point would result in syntactic ambiguity. +</p><p> +Beginning in SQLite version 3.46.0 (2024-05-23), a single extra underscore ("_") +character can be added between any two digits. The underscores are purely +for human readability and are ignored by SQLite. + <a name="hexint"></a> </p><p>Hexadecimal integer literals follow the C-language notation of diff --git a/www/lang_returning.html b/www/lang_returning.html index 8989e27..8be6131 100644 --- a/www/lang_returning.html +++ b/www/lang_returning.html @@ -129,7 +129,8 @@ Table Of Contents <div class="fancy-toc2"><a href="#typical_use">1.1. Typical Use</a></div> <div class="fancy-toc1"><a href="#details">2. Details</a></div> <div class="fancy-toc2"><a href="#processing_order">2.1. Processing Order</a></div> -<div class="fancy-toc2"><a href="#acid_changes">2.2. ACID Changes</a></div> +<div class="fancy-toc2"><a href="#self_referential_subqueries_are_indeterminate">2.2. Self-Referential Subqueries Are Indeterminate</a></div> +<div class="fancy-toc2"><a href="#acid_changes">2.3. ACID Changes</a></div> <div class="fancy-toc1"><a href="#limitations_and_caveats">3. Limitations And Caveats</a></div> </div> </div> @@ -154,8 +155,8 @@ mk.innerHTML = "►"; <h1 id="overview"><span>1. </span>Overview</h1> <p><b><a href="syntax/returning-clause.html">returning-clause:</a></b> -<button id='x7976e0a4' onclick='hideorshow("x7976e0a4","xa416104f")'>hide</button></p> - <div id='xa416104f' class='imgcontainer'> +<button id='x93686241' onclick='hideorshow("x93686241","x4d62f2b3")'>hide</button></p> + <div id='x4d62f2b3' class='imgcontainer'> <div style="max-width:628px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 628.709 140.4"> <circle cx="5" cy="47" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="27,47 15,51 15,43" style="fill:rgb(0,0,0)"/> @@ -203,8 +204,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/expr.html">expr:</a></b> -<button id='xe691e618' onclick='hideorshow("xe691e618","x63f05421")'>show</button></p> - <div id='x63f05421' style='display:none;' class='imgcontainer'> +<button id='xabd0493f' onclick='hideorshow("xabd0493f","x74ec7287")'>show</button></p> + <div id='x74ec7287' style='display:none;' class='imgcontainer'> <div style="max-width:963px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 963.96 1068.77"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -685,8 +686,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/filter-clause.html">filter-clause:</a></b> -<button id='x87b9cf48' onclick='hideorshow("x87b9cf48","x711413a7")'>show</button></p> - <div id='x711413a7' style='display:none;' class='imgcontainer'> +<button id='x1de3098d' onclick='hideorshow("x1de3098d","x565db2c0")'>show</button></p> + <div id='x565db2c0' style='display:none;' class='imgcontainer'> <div style="max-width:422px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 422.381 34.56"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -716,8 +717,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/function-arguments.html">function-arguments:</a></b> -<button id='x697afbc6' onclick='hideorshow("x697afbc6","x1531016b")'>show</button></p> - <div id='x1531016b' style='display:none;' class='imgcontainer'> +<button id='x01bf2b13' onclick='hideorshow("x01bf2b13","xefc0fb02")'>show</button></p> + <div id='xefc0fb02' style='display:none;' class='imgcontainer'> <div style="max-width:456px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 456.566 223.344"> <circle cx="5" cy="56" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,56 20,60 20,52" style="fill:rgb(0,0,0)"/> @@ -779,8 +780,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='xea5af493' onclick='hideorshow("xea5af493","xd5c9781e")'>show</button></p> - <div id='xd5c9781e' style='display:none;' class='imgcontainer'> +<button id='x0d9c7108' onclick='hideorshow("x0d9c7108","x20dfb2f8")'>show</button></p> + <div id='x20dfb2f8' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -841,8 +842,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/literal-value.html">literal-value:</a></b> -<button id='x36c988c0' onclick='hideorshow("x36c988c0","x3488dc16")'>show</button></p> - <div id='x3488dc16' style='display:none;' class='imgcontainer'> +<button id='x99b8dcab' onclick='hideorshow("x99b8dcab","xb8141712")'>show</button></p> + <div id='xb8141712' style='display:none;' class='imgcontainer'> <div style="max-width:341px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 341.376 336.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,319 39,324 39,315" style="fill:rgb(0,0,0)"/> @@ -912,8 +913,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/over-clause.html">over-clause:</a></b> -<button id='x65b3ab14' onclick='hideorshow("x65b3ab14","x7bfe6f78")'>show</button></p> - <div id='x7bfe6f78' style='display:none;' class='imgcontainer'> +<button id='x49225cb8' onclick='hideorshow("x49225cb8","xcc92b330")'>show</button></p> + <div id='xcc92b330' style='display:none;' class='imgcontainer'> <div style="max-width:600px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 600.706 418.392"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1004,8 +1005,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x5e5db0c0' onclick='hideorshow("x5e5db0c0","xd67aa226")'>show</button></p> - <div id='xd67aa226' style='display:none;' class='imgcontainer'> +<button id='x29fbae00' onclick='hideorshow("x29fbae00","x6dd19d65")'>show</button></p> + <div id='x6dd19d65' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -1214,8 +1215,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='x88289188' onclick='hideorshow("x88289188","x471ed888")'>show</button></p> - <div id='x471ed888' style='display:none;' class='imgcontainer'> +<button id='x83e37f5d' onclick='hideorshow("x83e37f5d","x17c66599")'>show</button></p> + <div id='x17c66599' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1276,8 +1277,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/raise-function.html">raise-function:</a></b> -<button id='x04e1e87f' onclick='hideorshow("x04e1e87f","x12e4cf29")'>show</button></p> - <div id='x12e4cf29' style='display:none;' class='imgcontainer'> +<button id='x5990e23a' onclick='hideorshow("x5990e23a","x4f2086c8")'>show</button></p> + <div id='x4f2086c8' style='display:none;' class='imgcontainer'> <div style="max-width:627px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 627.302 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1332,8 +1333,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='x97c3dd79' onclick='hideorshow("x97c3dd79","xa0026cbe")'>show</button></p> - <div id='xa0026cbe' style='display:none;' class='imgcontainer'> +<button id='x87730d7b' onclick='hideorshow("x87730d7b","xea9b0edd")'>show</button></p> + <div id='xea9b0edd' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -1611,8 +1612,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/common-table-expression.html">common-table-expression:</a></b> -<button id='xbd24aa66' onclick='hideorshow("xbd24aa66","xe4768ac0")'>show</button></p> - <div id='xe4768ac0' style='display:none;' class='imgcontainer'> +<button id='x9e53d5f6' onclick='hideorshow("x9e53d5f6","xb73e6b02")'>show</button></p> + <div id='xb73e6b02' style='display:none;' class='imgcontainer'> <div style="max-width:638px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 638.525 167.4"> <circle cx="5" cy="29" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,29 20,33 20,24" style="fill:rgb(0,0,0)"/> @@ -1682,8 +1683,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/compound-operator.html">compound-operator:</a></b> -<button id='x7945722c' onclick='hideorshow("x7945722c","xd5bf2b0b")'>show</button></p> - <div id='xd5bf2b0b' style='display:none;' class='imgcontainer'> +<button id='x6b280e04' onclick='hideorshow("x6b280e04","xf96608d6")'>show</button></p> + <div id='xf96608d6' style='display:none;' class='imgcontainer'> <div style="max-width:293px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 293.842 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1724,8 +1725,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='x3c5dcc36' onclick='hideorshow("x3c5dcc36","x280534b9")'>show</button></p> - <div id='x280534b9' style='display:none;' class='imgcontainer'> +<button id='x80bfe36d' onclick='hideorshow("x80bfe36d","x0a5fe5c8")'>show</button></p> + <div id='x0a5fe5c8' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1756,8 +1757,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='xe3d931b0' onclick='hideorshow("xe3d931b0","x31f5087a")'>show</button></p> - <div id='x31f5087a' style='display:none;' class='imgcontainer'> +<button id='xf2dd6526' onclick='hideorshow("xf2dd6526","xb8c656ba")'>show</button></p> + <div id='xb8c656ba' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -1804,8 +1805,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='xad8e0edd' onclick='hideorshow("xad8e0edd","x399d36e6")'>show</button></p> - <div id='x399d36e6' style='display:none;' class='imgcontainer'> +<button id='x4c00610b' onclick='hideorshow("x4c00610b","x3d7f5768")'>show</button></p> + <div id='x3d7f5768' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -1872,8 +1873,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='x1cdd5f8d' onclick='hideorshow("x1cdd5f8d","xf44d8110")'>show</button></p> - <div id='xf44d8110' style='display:none;' class='imgcontainer'> +<button id='x4711e23a' onclick='hideorshow("x4711e23a","xa7d4295c")'>show</button></p> + <div id='xa7d4295c' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1933,8 +1934,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='xf0c5d5df' onclick='hideorshow("xf0c5d5df","x6951e04e")'>show</button></p> - <div id='x6951e04e' style='display:none;' class='imgcontainer'> +<button id='x443d9e83' onclick='hideorshow("x443d9e83","x9b740539")'>show</button></p> + <div id='x9b740539' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -1986,8 +1987,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='xfdd4c15e' onclick='hideorshow("xfdd4c15e","x73e7549d")'>show</button></p> - <div id='x73e7549d' style='display:none;' class='imgcontainer'> +<button id='x50c4134b' onclick='hideorshow("x50c4134b","x5db26160")'>show</button></p> + <div id='x5db26160' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -2131,8 +2132,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='x1d3a8086' onclick='hideorshow("x1d3a8086","x44ec2984")'>show</button></p> - <div id='x44ec2984' style='display:none;' class='imgcontainer'> +<button id='x62329f73' onclick='hideorshow("x62329f73","x03778e2f")'>show</button></p> + <div id='x03778e2f' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -2212,8 +2213,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x55b16cf1' onclick='hideorshow("x55b16cf1","x2dd27741")'>show</button></p> - <div id='x2dd27741' style='display:none;' class='imgcontainer'> +<button id='xf29a1826' onclick='hideorshow("xf29a1826","x505763ac")'>show</button></p> + <div id='x505763ac' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -2424,8 +2425,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/type-name.html">type-name:</a></b> -<button id='xe23774a6' onclick='hideorshow("xe23774a6","xa28beb6b")'>show</button></p> - <div id='xa28beb6b' style='display:none;' class='imgcontainer'> +<button id='xbbd0a9f9' onclick='hideorshow("xbbd0a9f9","x49dd2c71")'>show</button></p> + <div id='x49dd2c71' style='display:none;' class='imgcontainer'> <div style="max-width:661px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 661.008 110.16"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -2479,8 +2480,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/signed-number.html">signed-number:</a></b> -<button id='xd35c20d0' onclick='hideorshow("xd35c20d0","x336c96ab")'>show</button></p> - <div id='x336c96ab' style='display:none;' class='imgcontainer'> +<button id='x39c981de' onclick='hideorshow("x39c981de","x04ae9d48")'>show</button></p> + <div id='x04ae9d48' style='display:none;' class='imgcontainer'> <div style="max-width:292px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 292.013 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,44 39,48 39,40" style="fill:rgb(0,0,0)"/> @@ -2593,36 +2594,6 @@ string or BLOB values, then the statement might use a lot of temporary memory to hold those values while it is running. </p><p> -The first prototype of the RETURNING clause returned -values as they were generated. That approach used less memory, but -it had other problems: - -</p><ol> -<li><p> -If the calls sqlite3_step() for two or more DML statements -where interleaved and if one of the -statements hit a constraint failure and aborted, reverting its -changes, then that could disrupt the operation of the other -DML statement. This could not corrupt the database file, but -it could yield surprising and difficult-to-explain results in -the database. - -</p></li><li><p> -If an application failed to call sqlite3_step() repeatedly until -it received SQLITE_DONE, then some of the database changes might -never occur. - -</p></li><li><p> -The order of operations was different from client/server database -engines like PostgreSQL, which might cause portability issues -for some applications. -</p></li></ol> - -<p> -For these reasons, the current implementation was modified so that -all database changes happen before any RETURNING output is emitted. - -</p><p> While SQLite does guarantee that all database changes will occur before any RETURNING output is emitted, it does <i>not</i> guarantee that the order of individual RETURNING rows will match the order in @@ -2630,7 +2601,26 @@ which those rows were changed in the database. The output order for the RETURNING rows is arbitrary and is not necessarily related to the order in which the rows were processed internally. -</p><h2 id="acid_changes"><span>2.2. </span>ACID Changes</h2> +</p><h2 id="self_referential_subqueries_are_indeterminate"><span>2.2. </span>Self-Referential Subqueries Are Indeterminate</h2> + +<p> +SQLite guarantees that all database changes will occur before +any RETURNING output is <em>emitted</em>, but SQLite makes no +guarantees about the order in which database changes occur nor +when the RETURNING output is <em>computed</em> in relation to +those database changes. RETURNING clause outputs are all computed and +placed in temporary storage during the first call to sqlite3_step() +but the specific order of when those output are computed and the +order in which database changes occur is unspecified. The order +can change from one query to the next. + +</p><p> +Hence if column of RETURNING output contains a +subquery that references the table being modified, then the result +of that subquery might depend on unspecified behavior and hence +could vary from one invocation of the query to the next. + +</p><h2 id="acid_changes"><span>2.3. </span>ACID Changes</h2> <p> When the previous "<i>Processing Order</i>" section says that @@ -2642,7 +2632,7 @@ does not occur until the statement finishes, and maybe not even then if the statement is part of a larger transaction. Changes to the database are still atomic, consistent, isolated, and durable (ACID). When the previous section says "changes occur", -this means that internal data structure are adjusted pending a transaction +this means that internal data structures are adjusted pending a transaction commit. Some of those changes may or may not spill into the <a href="wal.html">write-ahead log</a>, depending on how much pressure there is on the page cache. If the page cache is not under memory pressure, then @@ -2708,5 +2698,5 @@ In an <a href="lang_update.html#upfrom">UPDATE FROM</a> statement, the auxiliary clause may not participate in the RETURNING clause. </p></li></ol> - +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/lang_returning.in?m=a90bba5a4f">2024-05-08 20:36:57</a> UTC </small></i></p> diff --git a/www/lang_select.html b/www/lang_select.html index 8e34a69..656c587 100644 --- a/www/lang_select.html +++ b/www/lang_select.html @@ -141,7 +141,8 @@ Table Of Contents <div class="fancy-toc1"><a href="#table_valued_functions_in_the_from_clause">8. Table-valued Functions In The FROM Clause</a></div> <div class="fancy-toc1"><a href="#deviations_from_standard_sql">9. Deviations From Standard SQL</a></div> <div class="fancy-toc2"><a href="#strange_join_names">9.1. Strange JOIN names</a></div> -<div class="fancy-toc2"><a href="#precedence_of_comma_joins_and_cross_join">9.2. Precedence of comma-joins and CROSS JOIN</a></div> +<div class="fancy-toc2"><a href="#flexible_join_syntax">9.2. Flexible join syntax</a></div> +<div class="fancy-toc2"><a href="#precedence_of_comma_joins_and_cross_join">9.3. Precedence of comma-joins and CROSS JOIN</a></div> </div> </div> <script> @@ -164,8 +165,8 @@ mk.innerHTML = "►"; <h1 id="overview"><span>1. </span>Overview</h1> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='xf2381d42' onclick='hideorshow("xf2381d42","xf05ef6ce")'>hide</button></p> - <div id='xf05ef6ce' class='imgcontainer'> +<button id='xfb231e3b' onclick='hideorshow("xfb231e3b","x5badd154")'>hide</button></p> + <div id='x5badd154' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -443,8 +444,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/common-table-expression.html">common-table-expression:</a></b> -<button id='xb3186489' onclick='hideorshow("xb3186489","x280d7205")'>show</button></p> - <div id='x280d7205' style='display:none;' class='imgcontainer'> +<button id='x28ec4d8d' onclick='hideorshow("x28ec4d8d","xa7b638b2")'>show</button></p> + <div id='xa7b638b2' style='display:none;' class='imgcontainer'> <div style="max-width:638px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 638.525 167.4"> <circle cx="5" cy="29" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,29 20,33 20,24" style="fill:rgb(0,0,0)"/> @@ -514,8 +515,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/compound-operator.html">compound-operator:</a></b> -<button id='xbc45df4d' onclick='hideorshow("xbc45df4d","x13dd8e0c")'>show</button></p> - <div id='x13dd8e0c' style='display:none;' class='imgcontainer'> +<button id='x5240d97d' onclick='hideorshow("x5240d97d","xcce70f61")'>show</button></p> + <div id='xcce70f61' style='display:none;' class='imgcontainer'> <div style="max-width:293px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 293.842 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -556,8 +557,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/expr.html">expr:</a></b> -<button id='xb5c926c8' onclick='hideorshow("xb5c926c8","x878b8407")'>show</button></p> - <div id='x878b8407' style='display:none;' class='imgcontainer'> +<button id='x2f7ba4fe' onclick='hideorshow("x2f7ba4fe","xfdd47173")'>show</button></p> + <div id='xfdd47173' style='display:none;' class='imgcontainer'> <div style="max-width:963px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 963.96 1068.77"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -1038,8 +1039,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/filter-clause.html">filter-clause:</a></b> -<button id='x22ac5e9d' onclick='hideorshow("x22ac5e9d","xa2879e2c")'>show</button></p> - <div id='xa2879e2c' style='display:none;' class='imgcontainer'> +<button id='x7917b60e' onclick='hideorshow("x7917b60e","xd0307fc8")'>show</button></p> + <div id='xd0307fc8' style='display:none;' class='imgcontainer'> <div style="max-width:422px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 422.381 34.56"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1069,8 +1070,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/function-arguments.html">function-arguments:</a></b> -<button id='x57d52cb6' onclick='hideorshow("x57d52cb6","x22c93439")'>show</button></p> - <div id='x22c93439' style='display:none;' class='imgcontainer'> +<button id='xd29b1290' onclick='hideorshow("xd29b1290","xcf00c8e5")'>show</button></p> + <div id='xcf00c8e5' style='display:none;' class='imgcontainer'> <div style="max-width:456px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 456.566 223.344"> <circle cx="5" cy="56" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,56 20,60 20,52" style="fill:rgb(0,0,0)"/> @@ -1133,8 +1134,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/literal-value.html">literal-value:</a></b> -<button id='x9ed64fc0' onclick='hideorshow("x9ed64fc0","x7b2f36e6")'>show</button></p> - <div id='x7b2f36e6' style='display:none;' class='imgcontainer'> +<button id='xed9e9225' onclick='hideorshow("xed9e9225","xfb66ede4")'>show</button></p> + <div id='xfb66ede4' style='display:none;' class='imgcontainer'> <div style="max-width:341px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 341.376 336.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,319 39,324 39,315" style="fill:rgb(0,0,0)"/> @@ -1204,8 +1205,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/over-clause.html">over-clause:</a></b> -<button id='x824bcb06' onclick='hideorshow("x824bcb06","x6ade2ba5")'>show</button></p> - <div id='x6ade2ba5' style='display:none;' class='imgcontainer'> +<button id='x49495f61' onclick='hideorshow("x49495f61","x03f1b76a")'>show</button></p> + <div id='x03f1b76a' style='display:none;' class='imgcontainer'> <div style="max-width:600px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 600.706 418.392"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1296,8 +1297,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='xd8e79248' onclick='hideorshow("xd8e79248","x5ddb9706")'>show</button></p> - <div id='x5ddb9706' style='display:none;' class='imgcontainer'> +<button id='xf79b0477' onclick='hideorshow("xf79b0477","x553cba85")'>show</button></p> + <div id='x553cba85' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -1507,8 +1508,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/raise-function.html">raise-function:</a></b> -<button id='xd9e25840' onclick='hideorshow("xd9e25840","x858831f7")'>show</button></p> - <div id='x858831f7' style='display:none;' class='imgcontainer'> +<button id='x4ac91b13' onclick='hideorshow("x4ac91b13","xfb828d36")'>show</button></p> + <div id='xfb828d36' style='display:none;' class='imgcontainer'> <div style="max-width:627px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 627.302 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1563,8 +1564,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/type-name.html">type-name:</a></b> -<button id='x827f6b30' onclick='hideorshow("x827f6b30","xcd6f4330")'>show</button></p> - <div id='xcd6f4330' style='display:none;' class='imgcontainer'> +<button id='x914530dd' onclick='hideorshow("x914530dd","x1e2ec979")'>show</button></p> + <div id='x1e2ec979' style='display:none;' class='imgcontainer'> <div style="max-width:661px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 661.008 110.16"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -1618,8 +1619,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/signed-number.html">signed-number:</a></b> -<button id='x3317224a' onclick='hideorshow("x3317224a","x5f8e952c")'>show</button></p> - <div id='x5f8e952c' style='display:none;' class='imgcontainer'> +<button id='xed1dd36c' onclick='hideorshow("xed1dd36c","xc7a77558")'>show</button></p> + <div id='xc7a77558' style='display:none;' class='imgcontainer'> <div style="max-width:292px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 292.013 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,44 39,48 39,40" style="fill:rgb(0,0,0)"/> @@ -1647,8 +1648,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='x19cb2983' onclick='hideorshow("x19cb2983","xf1916896")'>show</button></p> - <div id='xf1916896' style='display:none;' class='imgcontainer'> +<button id='xc5e341e8' onclick='hideorshow("xc5e341e8","x0d8d3977")'>show</button></p> + <div id='x0d8d3977' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1679,8 +1680,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='x3d452e70' onclick='hideorshow("x3d452e70","x8012aaad")'>show</button></p> - <div id='x8012aaad' style='display:none;' class='imgcontainer'> +<button id='x3ee5afd0' onclick='hideorshow("x3ee5afd0","x41880008")'>show</button></p> + <div id='x41880008' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -1727,8 +1728,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='x4ac18b9d' onclick='hideorshow("x4ac18b9d","x77661d39")'>show</button></p> - <div id='x77661d39' style='display:none;' class='imgcontainer'> +<button id='xe24ed947' onclick='hideorshow("xe24ed947","xda58e77c")'>show</button></p> + <div id='xda58e77c' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -1795,8 +1796,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='x15c2e5f3' onclick='hideorshow("x15c2e5f3","x2035a2bd")'>show</button></p> - <div id='x2035a2bd' style='display:none;' class='imgcontainer'> +<button id='xf112f1e0' onclick='hideorshow("xf112f1e0","x46f24f2d")'>show</button></p> + <div id='x46f24f2d' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1856,8 +1857,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='xf79db399' onclick='hideorshow("xf79db399","xe0753924")'>show</button></p> - <div id='xe0753924' style='display:none;' class='imgcontainer'> +<button id='x4c4a5b7f' onclick='hideorshow("x4c4a5b7f","x54195310")'>show</button></p> + <div id='x54195310' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -1909,8 +1910,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='x30756a23' onclick='hideorshow("x30756a23","x25aced32")'>show</button></p> - <div id='x25aced32' style='display:none;' class='imgcontainer'> +<button id='x1e152b03' onclick='hideorshow("x1e152b03","x74379f9e")'>show</button></p> + <div id='x74379f9e' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -2054,8 +2055,8 @@ mk.innerHTML = "►"; </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='xe24da894' onclick='hideorshow("xe24da894","x883d91aa")'>show</button></p> - <div id='x883d91aa' style='display:none;' class='imgcontainer'> +<button id='x7926ec00' onclick='hideorshow("x7926ec00","xb067d03e")'>show</button></p> + <div id='xb067d03e' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -2135,8 +2136,8 @@ mk.innerHTML = "►"; </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x2acdfc23' onclick='hideorshow("x2acdfc23","x46136d83")'>show</button></p> - <div id='x46136d83' style='display:none;' class='imgcontainer'> +<button id='xc728aee3' onclick='hideorshow("xc728aee3","x3333ccd0")'>show</button></p> + <div id='x3333ccd0' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -2361,8 +2362,8 @@ syntax diagrams that expresses the same syntax but tries to break the syntax down into smaller chunks. <p><b><a href="syntax/factored-select-stmt.html">factored-select-stmt:</a></b> -<button id='x18fb4b68' onclick='hideorshow("x18fb4b68","x1f334094")'>show</button></p> - <div id='x1f334094' style='display:none;' class='imgcontainer'> +<button id='x6b1af3c7' onclick='hideorshow("x6b1af3c7","xdaa171a0")'>show</button></p> + <div id='xdaa171a0' style='display:none;' class='imgcontainer'> <div style="max-width:629px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 629.266 500.04"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -2468,8 +2469,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/common-table-expression.html">common-table-expression:</a></b> -<button id='xd14beeed' onclick='hideorshow("xd14beeed","x285547b6")'>show</button></p> - <div id='x285547b6' style='display:none;' class='imgcontainer'> +<button id='x25c5aa5b' onclick='hideorshow("x25c5aa5b","x9a44c688")'>show</button></p> + <div id='x9a44c688' style='display:none;' class='imgcontainer'> <div style="max-width:638px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 638.525 167.4"> <circle cx="5" cy="29" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,29 20,33 20,24" style="fill:rgb(0,0,0)"/> @@ -2538,8 +2539,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='x612291e7' onclick='hideorshow("x612291e7","x8d8a489b")'>show</button></p> - <div id='x8d8a489b' style='display:none;' class='imgcontainer'> +<button id='xb156ad90' onclick='hideorshow("xb156ad90","x71861a9b")'>show</button></p> + <div id='x71861a9b' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -2817,8 +2818,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='x338b6388' onclick='hideorshow("x338b6388","x0b2e484c")'>show</button></p> - <div id='x0b2e484c' style='display:none;' class='imgcontainer'> +<button id='x04712806' onclick='hideorshow("x04712806","xdb872a11")'>show</button></p> + <div id='xdb872a11' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -2849,8 +2850,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='x87114650' onclick='hideorshow("x87114650","x8f9809c2")'>show</button></p> - <div id='x8f9809c2' style='display:none;' class='imgcontainer'> +<button id='xe3fccdf4' onclick='hideorshow("xe3fccdf4","x5695b381")'>show</button></p> + <div id='x5695b381' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -2897,8 +2898,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='xa3fd0a0d' onclick='hideorshow("xa3fd0a0d","xdff7089e")'>show</button></p> - <div id='xdff7089e' style='display:none;' class='imgcontainer'> +<button id='x32842ee3' onclick='hideorshow("x32842ee3","xb159619c")'>show</button></p> + <div id='xb159619c' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -2965,8 +2966,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='xb3703585' onclick='hideorshow("xb3703585","xa1e522d4")'>show</button></p> - <div id='xa1e522d4' style='display:none;' class='imgcontainer'> +<button id='xee21263d' onclick='hideorshow("xee21263d","xda995059")'>show</button></p> + <div id='xda995059' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -3018,8 +3019,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='xd5648fdd' onclick='hideorshow("xd5648fdd","x8ff2b0c6")'>show</button></p> - <div id='x8ff2b0c6' style='display:none;' class='imgcontainer'> +<button id='x9d36624b' onclick='hideorshow("x9d36624b","xc2937370")'>show</button></p> + <div id='xc2937370' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -3163,8 +3164,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='x5a5d40ab' onclick='hideorshow("x5a5d40ab","x2ad0f471")'>show</button></p> - <div id='x2ad0f471' style='display:none;' class='imgcontainer'> +<button id='xdff2c8dd' onclick='hideorshow("xdff2c8dd","xe587979e")'>show</button></p> + <div id='xe587979e' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -3244,8 +3245,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='xb79a64f3' onclick='hideorshow("xb79a64f3","x11c28187")'>show</button></p> - <div id='x11c28187' style='display:none;' class='imgcontainer'> +<button id='xd721deee' onclick='hideorshow("xd721deee","xaf37b11b")'>show</button></p> + <div id='xaf37b11b' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -3457,8 +3458,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/compound-operator.html">compound-operator:</a></b> -<button id='x8b583cba' onclick='hideorshow("x8b583cba","xb5e903a6")'>show</button></p> - <div id='xb5e903a6' style='display:none;' class='imgcontainer'> +<button id='x2dfa9d1f' onclick='hideorshow("x2dfa9d1f","xcbdab688")'>show</button></p> + <div id='xcbdab688' style='display:none;' class='imgcontainer'> <div style="max-width:293px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 293.842 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -3499,8 +3500,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/expr.html">expr:</a></b> -<button id='xf450d44a' onclick='hideorshow("xf450d44a","x65d92beb")'>show</button></p> - <div id='x65d92beb' style='display:none;' class='imgcontainer'> +<button id='xb1b1b460' onclick='hideorshow("xb1b1b460","xdb5d9f61")'>show</button></p> + <div id='xdb5d9f61' style='display:none;' class='imgcontainer'> <div style="max-width:963px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 963.96 1068.77"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -3981,8 +3982,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/filter-clause.html">filter-clause:</a></b> -<button id='x490bdf90' onclick='hideorshow("x490bdf90","xd15964f8")'>show</button></p> - <div id='xd15964f8' style='display:none;' class='imgcontainer'> +<button id='xd111ee07' onclick='hideorshow("xd111ee07","x9dad8b7f")'>show</button></p> + <div id='x9dad8b7f' style='display:none;' class='imgcontainer'> <div style="max-width:422px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 422.381 34.56"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -4012,8 +4013,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/function-arguments.html">function-arguments:</a></b> -<button id='x4f74be68' onclick='hideorshow("x4f74be68","x1c44911c")'>show</button></p> - <div id='x1c44911c' style='display:none;' class='imgcontainer'> +<button id='x93fdfbc3' onclick='hideorshow("x93fdfbc3","xda4da07d")'>show</button></p> + <div id='xda4da07d' style='display:none;' class='imgcontainer'> <div style="max-width:456px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 456.566 223.344"> <circle cx="5" cy="56" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,56 20,60 20,52" style="fill:rgb(0,0,0)"/> @@ -4076,8 +4077,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/literal-value.html">literal-value:</a></b> -<button id='xed1bfd0d' onclick='hideorshow("xed1bfd0d","xfd4bddef")'>show</button></p> - <div id='xfd4bddef' style='display:none;' class='imgcontainer'> +<button id='x15d4b2c0' onclick='hideorshow("x15d4b2c0","x00768916")'>show</button></p> + <div id='x00768916' style='display:none;' class='imgcontainer'> <div style="max-width:341px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 341.376 336.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,319 39,324 39,315" style="fill:rgb(0,0,0)"/> @@ -4147,8 +4148,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/over-clause.html">over-clause:</a></b> -<button id='xcbf1149d' onclick='hideorshow("xcbf1149d","x5185a371")'>show</button></p> - <div id='x5185a371' style='display:none;' class='imgcontainer'> +<button id='xd58dbcc8' onclick='hideorshow("xd58dbcc8","x0ed5a4f6")'>show</button></p> + <div id='x0ed5a4f6' style='display:none;' class='imgcontainer'> <div style="max-width:600px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 600.706 418.392"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -4239,8 +4240,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x2701af05' onclick='hideorshow("x2701af05","x50514221")'>show</button></p> - <div id='x50514221' style='display:none;' class='imgcontainer'> +<button id='x684355d2' onclick='hideorshow("x684355d2","x23b94f69")'>show</button></p> + <div id='x23b94f69' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -4450,8 +4451,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/raise-function.html">raise-function:</a></b> -<button id='xe89538f7' onclick='hideorshow("xe89538f7","x6dd0b61c")'>show</button></p> - <div id='x6dd0b61c' style='display:none;' class='imgcontainer'> +<button id='xd2bb907e' onclick='hideorshow("xd2bb907e","x3a3edd32")'>show</button></p> + <div id='x3a3edd32' style='display:none;' class='imgcontainer'> <div style="max-width:627px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 627.302 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -4506,8 +4507,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='xb169d67a' onclick='hideorshow("xb169d67a","x25688559")'>show</button></p> - <div id='x25688559' style='display:none;' class='imgcontainer'> +<button id='xa6ccbf0f' onclick='hideorshow("xa6ccbf0f","x1295befb")'>show</button></p> + <div id='x1295befb' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -4785,8 +4786,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='xf9f9d5ae' onclick='hideorshow("xf9f9d5ae","x48ca088e")'>show</button></p> - <div id='x48ca088e' style='display:none;' class='imgcontainer'> +<button id='x3c6a6813' onclick='hideorshow("x3c6a6813","xa3cbe50b")'>show</button></p> + <div id='xa3cbe50b' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -4817,8 +4818,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='xf4c54059' onclick='hideorshow("xf4c54059","x7ef5fecd")'>show</button></p> - <div id='x7ef5fecd' style='display:none;' class='imgcontainer'> +<button id='x30efc704' onclick='hideorshow("x30efc704","x69ad921a")'>show</button></p> + <div id='x69ad921a' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -4865,8 +4866,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='xb4c7876b' onclick='hideorshow("xb4c7876b","xab7735c2")'>show</button></p> - <div id='xab7735c2' style='display:none;' class='imgcontainer'> +<button id='x84c71f4a' onclick='hideorshow("x84c71f4a","xfcecd8c1")'>show</button></p> + <div id='xfcecd8c1' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -4933,8 +4934,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='xbada6a4f' onclick='hideorshow("xbada6a4f","x1093a306")'>show</button></p> - <div id='x1093a306' style='display:none;' class='imgcontainer'> +<button id='x625df1e1' onclick='hideorshow("x625df1e1","x43c9cf99")'>show</button></p> + <div id='x43c9cf99' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -4986,8 +4987,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='xca6e6bcb' onclick='hideorshow("xca6e6bcb","x2d71c2ed")'>show</button></p> - <div id='x2d71c2ed' style='display:none;' class='imgcontainer'> +<button id='x1e1b9e66' onclick='hideorshow("x1e1b9e66","x54e77329")'>show</button></p> + <div id='x54e77329' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -5131,8 +5132,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='xf1b82923' onclick='hideorshow("xf1b82923","x4462294d")'>show</button></p> - <div id='x4462294d' style='display:none;' class='imgcontainer'> +<button id='x17addd5f' onclick='hideorshow("x17addd5f","xcba751ce")'>show</button></p> + <div id='xcba751ce' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -5212,8 +5213,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='xf25e022a' onclick='hideorshow("xf25e022a","x86c017df")'>show</button></p> - <div id='x86c017df' style='display:none;' class='imgcontainer'> +<button id='x43f77217' onclick='hideorshow("x43f77217","x3f12529c")'>show</button></p> + <div id='x3f12529c' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -5424,8 +5425,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/type-name.html">type-name:</a></b> -<button id='xb0449a50' onclick='hideorshow("xb0449a50","x2b121701")'>show</button></p> - <div id='x2b121701' style='display:none;' class='imgcontainer'> +<button id='xdfbc1631' onclick='hideorshow("xdfbc1631","xcf1a35c0")'>show</button></p> + <div id='xcf1a35c0' style='display:none;' class='imgcontainer'> <div style="max-width:661px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 661.008 110.16"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -5479,8 +5480,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/signed-number.html">signed-number:</a></b> -<button id='x93a42f33' onclick='hideorshow("x93a42f33","x4983f8af")'>show</button></p> - <div id='x4983f8af' style='display:none;' class='imgcontainer'> +<button id='xa2472aa8' onclick='hideorshow("xa2472aa8","x0e10ff5d")'>show</button></p> + <div id='x0e10ff5d' style='display:none;' class='imgcontainer'> <div style="max-width:292px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 292.013 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,44 39,48 39,40" style="fill:rgb(0,0,0)"/> @@ -5508,8 +5509,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='xb6b8148e' onclick='hideorshow("xb6b8148e","x9f0de7af")'>show</button></p> - <div id='x9f0de7af' style='display:none;' class='imgcontainer'> +<button id='x670edbd8' onclick='hideorshow("x670edbd8","xd9ad17b7")'>show</button></p> + <div id='xd9ad17b7' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -5569,8 +5570,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/select-core.html">select-core:</a></b> -<button id='xcb42dcab' onclick='hideorshow("xcb42dcab","x6e5c7a43")'>show</button></p> - <div id='x6e5c7a43' style='display:none;' class='imgcontainer'> +<button id='x246ff4e4' onclick='hideorshow("x246ff4e4","x1ab12699")'>show</button></p> + <div id='x1ab12699' style='display:none;' class='imgcontainer'> <div style="max-width:655px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 655.157 728.568"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="63,17 51,21 51,12" style="fill:rgb(0,0,0)"/> @@ -5747,8 +5748,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='xf2ed18ef' onclick='hideorshow("xf2ed18ef","xb560e673")'>show</button></p> - <div id='xb560e673' style='display:none;' class='imgcontainer'> +<button id='xfc5371b4' onclick='hideorshow("xfc5371b4","xbb3ee51d")'>show</button></p> + <div id='xbb3ee51d' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -5779,8 +5780,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='x31719a7d' onclick='hideorshow("x31719a7d","xadb4a00d")'>show</button></p> - <div id='xadb4a00d' style='display:none;' class='imgcontainer'> +<button id='x8caea1d9' onclick='hideorshow("x8caea1d9","x2f3699d3")'>show</button></p> + <div id='x2f3699d3' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -5827,8 +5828,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='x6f659b63' onclick='hideorshow("x6f659b63","xae1a9ab1")'>show</button></p> - <div id='xae1a9ab1' style='display:none;' class='imgcontainer'> +<button id='x0bd5d5d4' onclick='hideorshow("x0bd5d5d4","xa9f327fe")'>show</button></p> + <div id='xa9f327fe' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -5895,8 +5896,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='x5c1f3322' onclick='hideorshow("x5c1f3322","x8abaa843")'>show</button></p> - <div id='x8abaa843' style='display:none;' class='imgcontainer'> +<button id='x6dcceba5' onclick='hideorshow("x6dcceba5","x3b9c4086")'>show</button></p> + <div id='x3b9c4086' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -5948,8 +5949,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='x0367bd25' onclick='hideorshow("x0367bd25","x40f45b85")'>show</button></p> - <div id='x40f45b85' style='display:none;' class='imgcontainer'> +<button id='xdba15e83' onclick='hideorshow("xdba15e83","x4ebdb799")'>show</button></p> + <div id='x4ebdb799' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -6092,8 +6093,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='x33471d11' onclick='hideorshow("x33471d11","xc9752374")'>show</button></p> - <div id='xc9752374' style='display:none;' class='imgcontainer'> +<button id='xd6369f16' onclick='hideorshow("xd6369f16","xe33b0a57")'>show</button></p> + <div id='xe33b0a57' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -6373,8 +6374,8 @@ down into smaller chunks. </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='x6c771130' onclick='hideorshow("x6c771130","x90d90faf")'>show</button></p> - <div id='x90d90faf' style='display:none;' class='imgcontainer'> +<button id='x105b6d44' onclick='hideorshow("x105b6d44","x6c4e047b")'>show</button></p> + <div id='x6c4e047b' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -6454,8 +6455,8 @@ down into smaller chunks. </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='xebf078d1' onclick='hideorshow("xebf078d1","xbeaaefa2")'>show</button></p> - <div id='xbeaaefa2' style='display:none;' class='imgcontainer'> +<button id='x5e5289bd' onclick='hideorshow("x5e5289bd","x6e96b239")'>show</button></p> + <div id='x6e96b239' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -6696,8 +6697,8 @@ this or any other specific process. In practice, most SELECT statements are simple SELECT statements. <p><b><a href="syntax/simple-select-stmt.html">simple-select-stmt:</a></b> -<button id='xf4d39422' onclick='hideorshow("xf4d39422","x793d5c47")'>hide</button></p> - <div id='x793d5c47' class='imgcontainer'> +<button id='x14bcc21e' onclick='hideorshow("x14bcc21e","x42fa10bc")'>hide</button></p> + <div id='x42fa10bc' class='imgcontainer'> <div style="max-width:629px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 629.266 348.84"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -6796,8 +6797,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/common-table-expression.html">common-table-expression:</a></b> -<button id='xe303724e' onclick='hideorshow("xe303724e","x1304d3be")'>show</button></p> - <div id='x1304d3be' style='display:none;' class='imgcontainer'> +<button id='x5e52e5bf' onclick='hideorshow("x5e52e5bf","xc568875f")'>show</button></p> + <div id='xc568875f' style='display:none;' class='imgcontainer'> <div style="max-width:638px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 638.525 167.4"> <circle cx="5" cy="29" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,29 20,33 20,24" style="fill:rgb(0,0,0)"/> @@ -6866,8 +6867,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='x002dc602' onclick='hideorshow("x002dc602","x0b27af7d")'>show</button></p> - <div id='x0b27af7d' style='display:none;' class='imgcontainer'> +<button id='x0c6deccf' onclick='hideorshow("x0c6deccf","x9514e549")'>show</button></p> + <div id='x9514e549' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -7145,8 +7146,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/compound-operator.html">compound-operator:</a></b> -<button id='xb40860b7' onclick='hideorshow("xb40860b7","x21aa2d8c")'>show</button></p> - <div id='x21aa2d8c' style='display:none;' class='imgcontainer'> +<button id='x41c5f6fe' onclick='hideorshow("x41c5f6fe","x9dd2dbd3")'>show</button></p> + <div id='x9dd2dbd3' style='display:none;' class='imgcontainer'> <div style="max-width:293px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 293.842 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -7187,8 +7188,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='xb73d032c' onclick='hideorshow("xb73d032c","xc894a2b3")'>show</button></p> - <div id='xc894a2b3' style='display:none;' class='imgcontainer'> +<button id='xe6b677e5' onclick='hideorshow("xe6b677e5","x2a337403")'>show</button></p> + <div id='x2a337403' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -7219,8 +7220,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='x037100cf' onclick='hideorshow("x037100cf","x509cdbdb")'>show</button></p> - <div id='x509cdbdb' style='display:none;' class='imgcontainer'> +<button id='xdf83c11c' onclick='hideorshow("xdf83c11c","x4cc0e891")'>show</button></p> + <div id='x4cc0e891' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -7267,8 +7268,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='xb0ae2d6e' onclick='hideorshow("xb0ae2d6e","x29126674")'>show</button></p> - <div id='x29126674' style='display:none;' class='imgcontainer'> +<button id='x951441df' onclick='hideorshow("x951441df","xcf1eab4b")'>show</button></p> + <div id='xcf1eab4b' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -7335,8 +7336,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='x197ecf2e' onclick='hideorshow("x197ecf2e","x5567adb3")'>show</button></p> - <div id='x5567adb3' style='display:none;' class='imgcontainer'> +<button id='x7c242736' onclick='hideorshow("x7c242736","x2db8f7b4")'>show</button></p> + <div id='x2db8f7b4' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -7388,8 +7389,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='xb21a4197' onclick='hideorshow("xb21a4197","xec95716d")'>show</button></p> - <div id='xec95716d' style='display:none;' class='imgcontainer'> +<button id='xe8b061b6' onclick='hideorshow("xe8b061b6","xc4aaadda")'>show</button></p> + <div id='xc4aaadda' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -7533,8 +7534,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='x56f314bd' onclick='hideorshow("x56f314bd","xdb58841c")'>show</button></p> - <div id='xdb58841c' style='display:none;' class='imgcontainer'> +<button id='x30aa1685' onclick='hideorshow("x30aa1685","x966d860d")'>show</button></p> + <div id='x966d860d' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -7614,8 +7615,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x7135de03' onclick='hideorshow("x7135de03","x54367b61")'>show</button></p> - <div id='x54367b61' style='display:none;' class='imgcontainer'> +<button id='xc8267947' onclick='hideorshow("xc8267947","x0bca7cf4")'>show</button></p> + <div id='x0bca7cf4' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -7827,8 +7828,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/expr.html">expr:</a></b> -<button id='xdb85b9d6' onclick='hideorshow("xdb85b9d6","xde8f239b")'>show</button></p> - <div id='xde8f239b' style='display:none;' class='imgcontainer'> +<button id='x3773e62b' onclick='hideorshow("x3773e62b","x0453da68")'>show</button></p> + <div id='x0453da68' style='display:none;' class='imgcontainer'> <div style="max-width:963px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 963.96 1068.77"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -8309,8 +8310,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/filter-clause.html">filter-clause:</a></b> -<button id='x33d80a14' onclick='hideorshow("x33d80a14","x6f94100e")'>show</button></p> - <div id='x6f94100e' style='display:none;' class='imgcontainer'> +<button id='xb28a2ea3' onclick='hideorshow("xb28a2ea3","x0e474180")'>show</button></p> + <div id='x0e474180' style='display:none;' class='imgcontainer'> <div style="max-width:422px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 422.381 34.56"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -8340,8 +8341,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/function-arguments.html">function-arguments:</a></b> -<button id='x060984e5' onclick='hideorshow("x060984e5","xee7f8fc0")'>show</button></p> - <div id='xee7f8fc0' style='display:none;' class='imgcontainer'> +<button id='x44d044f4' onclick='hideorshow("x44d044f4","xb3074862")'>show</button></p> + <div id='xb3074862' style='display:none;' class='imgcontainer'> <div style="max-width:456px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 456.566 223.344"> <circle cx="5" cy="56" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,56 20,60 20,52" style="fill:rgb(0,0,0)"/> @@ -8404,8 +8405,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/literal-value.html">literal-value:</a></b> -<button id='x283d8f59' onclick='hideorshow("x283d8f59","x2eea733a")'>show</button></p> - <div id='x2eea733a' style='display:none;' class='imgcontainer'> +<button id='x7cd50809' onclick='hideorshow("x7cd50809","x63f9e85f")'>show</button></p> + <div id='x63f9e85f' style='display:none;' class='imgcontainer'> <div style="max-width:341px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 341.376 336.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,319 39,324 39,315" style="fill:rgb(0,0,0)"/> @@ -8475,8 +8476,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/over-clause.html">over-clause:</a></b> -<button id='x4d3f1c2b' onclick='hideorshow("x4d3f1c2b","xecba4e98")'>show</button></p> - <div id='xecba4e98' style='display:none;' class='imgcontainer'> +<button id='xc88bacb6' onclick='hideorshow("xc88bacb6","xe72c3dc7")'>show</button></p> + <div id='xe72c3dc7' style='display:none;' class='imgcontainer'> <div style="max-width:600px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 600.706 418.392"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -8567,8 +8568,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='xbf16314b' onclick='hideorshow("xbf16314b","x6f0e6653")'>show</button></p> - <div id='x6f0e6653' style='display:none;' class='imgcontainer'> +<button id='xd03b1294' onclick='hideorshow("xd03b1294","xb3ce48bd")'>show</button></p> + <div id='xb3ce48bd' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -8778,8 +8779,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/raise-function.html">raise-function:</a></b> -<button id='xb489060c' onclick='hideorshow("xb489060c","x85779a10")'>show</button></p> - <div id='x85779a10' style='display:none;' class='imgcontainer'> +<button id='x77ccb53e' onclick='hideorshow("x77ccb53e","x5a2e35c7")'>show</button></p> + <div id='x5a2e35c7' style='display:none;' class='imgcontainer'> <div style="max-width:627px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 627.302 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -8834,8 +8835,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='xc1a3c356' onclick='hideorshow("xc1a3c356","xeaffe9c4")'>show</button></p> - <div id='xeaffe9c4' style='display:none;' class='imgcontainer'> +<button id='x096dbe17' onclick='hideorshow("x096dbe17","xd3deb524")'>show</button></p> + <div id='xd3deb524' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -9113,8 +9114,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/compound-operator.html">compound-operator:</a></b> -<button id='x5eefbfd0' onclick='hideorshow("x5eefbfd0","x18a116dd")'>show</button></p> - <div id='x18a116dd' style='display:none;' class='imgcontainer'> +<button id='x869111bd' onclick='hideorshow("x869111bd","x0093985c")'>show</button></p> + <div id='x0093985c' style='display:none;' class='imgcontainer'> <div style="max-width:293px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 293.842 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -9155,8 +9156,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='x3b732021' onclick='hideorshow("x3b732021","x0bc880df")'>show</button></p> - <div id='x0bc880df' style='display:none;' class='imgcontainer'> +<button id='x1be590ba' onclick='hideorshow("x1be590ba","x1aa869af")'>show</button></p> + <div id='x1aa869af' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -9187,8 +9188,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='xb205fe1a' onclick='hideorshow("xb205fe1a","x443d8054")'>show</button></p> - <div id='x443d8054' style='display:none;' class='imgcontainer'> +<button id='x899b5f45' onclick='hideorshow("x899b5f45","xe773c0a0")'>show</button></p> + <div id='xe773c0a0' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -9235,8 +9236,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='xa3f08acc' onclick='hideorshow("xa3f08acc","xcb4d76ea")'>show</button></p> - <div id='xcb4d76ea' style='display:none;' class='imgcontainer'> +<button id='x705cb54e' onclick='hideorshow("x705cb54e","x861c0bb5")'>show</button></p> + <div id='x861c0bb5' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -9303,8 +9304,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='x8ea66a31' onclick='hideorshow("x8ea66a31","x1b65ccd9")'>show</button></p> - <div id='x1b65ccd9' style='display:none;' class='imgcontainer'> +<button id='x0cdc8d06' onclick='hideorshow("x0cdc8d06","xf01ef1f8")'>show</button></p> + <div id='xf01ef1f8' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -9356,8 +9357,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='x41cc3cd1' onclick='hideorshow("x41cc3cd1","xbef26e88")'>show</button></p> - <div id='xbef26e88' style='display:none;' class='imgcontainer'> +<button id='xa087f8e3' onclick='hideorshow("xa087f8e3","x2593cc83")'>show</button></p> + <div id='x2593cc83' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -9501,8 +9502,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='x468c49ac' onclick='hideorshow("x468c49ac","xbbef8e34")'>show</button></p> - <div id='xbbef8e34' style='display:none;' class='imgcontainer'> +<button id='x32ca8acb' onclick='hideorshow("x32ca8acb","x4e7202e2")'>show</button></p> + <div id='x4e7202e2' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -9582,8 +9583,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='xea5ec156' onclick='hideorshow("xea5ec156","x2df1eaa9")'>show</button></p> - <div id='x2df1eaa9' style='display:none;' class='imgcontainer'> +<button id='x1d190374' onclick='hideorshow("x1d190374","xe5052b97")'>show</button></p> + <div id='xe5052b97' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -9794,8 +9795,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/type-name.html">type-name:</a></b> -<button id='x9f9bb566' onclick='hideorshow("x9f9bb566","x0be7e6ca")'>show</button></p> - <div id='x0be7e6ca' style='display:none;' class='imgcontainer'> +<button id='xb80ef37e' onclick='hideorshow("xb80ef37e","x97b0d68d")'>show</button></p> + <div id='x97b0d68d' style='display:none;' class='imgcontainer'> <div style="max-width:661px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 661.008 110.16"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -9849,8 +9850,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/signed-number.html">signed-number:</a></b> -<button id='x5ca2d540' onclick='hideorshow("x5ca2d540","x42d87c3a")'>show</button></p> - <div id='x42d87c3a' style='display:none;' class='imgcontainer'> +<button id='x33dd47d7' onclick='hideorshow("x33dd47d7","xac5d148d")'>show</button></p> + <div id='xac5d148d' style='display:none;' class='imgcontainer'> <div style="max-width:292px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 292.013 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,44 39,48 39,40" style="fill:rgb(0,0,0)"/> @@ -9878,8 +9879,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='x6d034886' onclick='hideorshow("x6d034886","x320e6273")'>show</button></p> - <div id='x320e6273' style='display:none;' class='imgcontainer'> +<button id='x4bf1481a' onclick='hideorshow("x4bf1481a","xf422d8f5")'>show</button></p> + <div id='xf422d8f5' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -9939,8 +9940,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/select-core.html">select-core:</a></b> -<button id='x046254b2' onclick='hideorshow("x046254b2","x81614949")'>hide</button></p> - <div id='x81614949' class='imgcontainer'> +<button id='x542475bd' onclick='hideorshow("x542475bd","xf3624c5d")'>hide</button></p> + <div id='xf3624c5d' class='imgcontainer'> <div style="max-width:655px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 655.157 728.568"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="63,17 51,21 51,12" style="fill:rgb(0,0,0)"/> @@ -10117,8 +10118,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='x28ecd5fe' onclick='hideorshow("x28ecd5fe","xee5ebb83")'>show</button></p> - <div id='xee5ebb83' style='display:none;' class='imgcontainer'> +<button id='xf64cc9d1' onclick='hideorshow("xf64cc9d1","xfabe1157")'>show</button></p> + <div id='xfabe1157' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -10149,8 +10150,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='xc47fdc79' onclick='hideorshow("xc47fdc79","xa72bfe9b")'>show</button></p> - <div id='xa72bfe9b' style='display:none;' class='imgcontainer'> +<button id='x92ae3604' onclick='hideorshow("x92ae3604","xfea88cf1")'>show</button></p> + <div id='xfea88cf1' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -10197,8 +10198,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='x3d0be55d' onclick='hideorshow("x3d0be55d","x5e3f1679")'>show</button></p> - <div id='x5e3f1679' style='display:none;' class='imgcontainer'> +<button id='x35574abf' onclick='hideorshow("x35574abf","x8937e6be")'>show</button></p> + <div id='x8937e6be' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -10265,8 +10266,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='x0bfc21e5' onclick='hideorshow("x0bfc21e5","xc884f577")'>show</button></p> - <div id='xc884f577' style='display:none;' class='imgcontainer'> +<button id='x0fb8db30' onclick='hideorshow("x0fb8db30","xae40a33a")'>show</button></p> + <div id='xae40a33a' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -10318,8 +10319,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='xbff34af5' onclick='hideorshow("xbff34af5","x36cb15fd")'>show</button></p> - <div id='x36cb15fd' style='display:none;' class='imgcontainer'> +<button id='x6bcf3d64' onclick='hideorshow("x6bcf3d64","x86b46ad3")'>show</button></p> + <div id='x86b46ad3' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -10462,8 +10463,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='x9767e441' onclick='hideorshow("x9767e441","xa0bfe660")'>show</button></p> - <div id='xa0bfe660' style='display:none;' class='imgcontainer'> +<button id='x44bc0958' onclick='hideorshow("x44bc0958","xd2959042")'>show</button></p> + <div id='xd2959042' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -10741,8 +10742,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/compound-operator.html">compound-operator:</a></b> -<button id='x8eb79397' onclick='hideorshow("x8eb79397","x84912f48")'>show</button></p> - <div id='x84912f48' style='display:none;' class='imgcontainer'> +<button id='xdfa12119' onclick='hideorshow("xdfa12119","x4c8daef2")'>show</button></p> + <div id='x4c8daef2' style='display:none;' class='imgcontainer'> <div style="max-width:293px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 293.842 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -10785,8 +10786,8 @@ In practice, most SELECT statements are simple SELECT statements. </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='x4a49b898' onclick='hideorshow("x4a49b898","x14b7e517")'>show</button></p> - <div id='x14b7e517' style='display:none;' class='imgcontainer'> +<button id='x82585551' onclick='hideorshow("x82585551","x8e61bc86")'>show</button></p> + <div id='x8e61bc86' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -10866,8 +10867,8 @@ In practice, most SELECT statements are simple SELECT statements. </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x84df1f0c' onclick='hideorshow("x84df1f0c","x82b1389c")'>show</button></p> - <div id='x82b1389c' style='display:none;' class='imgcontainer'> +<button id='x9d509eae' onclick='hideorshow("x9d509eae","x9a4aa266")'>show</button></p> + <div id='x9a4aa266' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -11254,14 +11255,14 @@ evaluates to either false or NULL. </p><p>For a JOIN or INNER JOIN or CROSS JOIN, there is no difference between a constraint expression in the WHERE clause and one in the ON clause. However, -for a LEFT JOIN or LEFT OUTER JOIN, the difference is very important. -In a LEFT JOIN, -the extra NULL row for the right-hand table is added after ON clause processing +for a LEFT or RIGHT or FULL OUTER JOIN, the difference is very important. +In an outer join, the extra NULL rows for non-matched rows on the other +operand are added after ON clause processing but before WHERE clause processing. A constraint of the form "left.x=right.y" -in an ON clause will therefore allow through the added all-NULL rows of the -right table. But if that same constraint is in the WHERE clause a NULL in -"right.y" will prevent the expression "left.x=right.y" from being true, and -thus exclude that row from the output. +in an ON clause will therefore allow through for the added all-NULL rows. +But if that same constraint is in the WHERE clause, a NULL in one of +"right.y" or "left.x" will prevent the expression "left.x=right.y" from being true, +and thus exclude that row from the output. <a name="resultset"></a> @@ -11441,8 +11442,8 @@ a compound SELECT using the UNION, UNION ALL, INTERSECT or EXCEPT operator, as shown by the following diagram: <p><b><a href="syntax/compound-select-stmt.html">compound-select-stmt:</a></b> -<button id='x79298984' onclick='hideorshow("x79298984","x25876c55")'>hide</button></p> - <div id='x25876c55' class='imgcontainer'> +<button id='x8510f929' onclick='hideorshow("x8510f929","x7d357cdf")'>hide</button></p> + <div id='x7d357cdf' class='imgcontainer'> <div style="max-width:652px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 652.306 560.52"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -11581,8 +11582,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/common-table-expression.html">common-table-expression:</a></b> -<button id='x297fc842' onclick='hideorshow("x297fc842","x0b16f6e4")'>show</button></p> - <div id='x0b16f6e4' style='display:none;' class='imgcontainer'> +<button id='x465bf0a6' onclick='hideorshow("x465bf0a6","x29388986")'>show</button></p> + <div id='x29388986' style='display:none;' class='imgcontainer'> <div style="max-width:638px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 638.525 167.4"> <circle cx="5" cy="29" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,29 20,33 20,24" style="fill:rgb(0,0,0)"/> @@ -11651,8 +11652,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='xe44cb4ee' onclick='hideorshow("xe44cb4ee","x5163e62f")'>show</button></p> - <div id='x5163e62f' style='display:none;' class='imgcontainer'> +<button id='x01afd55c' onclick='hideorshow("x01afd55c","x66b1cdd3")'>show</button></p> + <div id='x66b1cdd3' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -11930,8 +11931,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/compound-operator.html">compound-operator:</a></b> -<button id='xd96fe8d9' onclick='hideorshow("xd96fe8d9","x456b1eae")'>show</button></p> - <div id='x456b1eae' style='display:none;' class='imgcontainer'> +<button id='x7f03ad74' onclick='hideorshow("x7f03ad74","xf486c9ca")'>show</button></p> + <div id='xf486c9ca' style='display:none;' class='imgcontainer'> <div style="max-width:293px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 293.842 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -11972,8 +11973,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='xe1a9e7fb' onclick='hideorshow("xe1a9e7fb","x63d62ab9")'>show</button></p> - <div id='x63d62ab9' style='display:none;' class='imgcontainer'> +<button id='x66a86081' onclick='hideorshow("x66a86081","x95c61755")'>show</button></p> + <div id='x95c61755' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -12004,8 +12005,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='xcd9909f5' onclick='hideorshow("xcd9909f5","x8a186c96")'>show</button></p> - <div id='x8a186c96' style='display:none;' class='imgcontainer'> +<button id='xd47cf8e5' onclick='hideorshow("xd47cf8e5","x83bba41b")'>show</button></p> + <div id='x83bba41b' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -12052,8 +12053,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='x98275cc3' onclick='hideorshow("x98275cc3","xced84a8c")'>show</button></p> - <div id='xced84a8c' style='display:none;' class='imgcontainer'> +<button id='xfbe7a1a7' onclick='hideorshow("xfbe7a1a7","xf5150d08")'>show</button></p> + <div id='xf5150d08' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -12120,8 +12121,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='x31e27d3e' onclick='hideorshow("x31e27d3e","x670d2a67")'>show</button></p> - <div id='x670d2a67' style='display:none;' class='imgcontainer'> +<button id='xff220fc8' onclick='hideorshow("xff220fc8","x506dfd37")'>show</button></p> + <div id='x506dfd37' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -12173,8 +12174,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='xfc280618' onclick='hideorshow("xfc280618","x3c6348f4")'>show</button></p> - <div id='x3c6348f4' style='display:none;' class='imgcontainer'> +<button id='x9ef6b9a2' onclick='hideorshow("x9ef6b9a2","x35024829")'>show</button></p> + <div id='x35024829' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -12318,8 +12319,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='xce1ae0b0' onclick='hideorshow("xce1ae0b0","xe3df3276")'>show</button></p> - <div id='xe3df3276' style='display:none;' class='imgcontainer'> +<button id='xf564e8b4' onclick='hideorshow("xf564e8b4","x2e322a0a")'>show</button></p> + <div id='x2e322a0a' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -12399,8 +12400,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x0b6da2cb' onclick='hideorshow("x0b6da2cb","xa55ff156")'>show</button></p> - <div id='xa55ff156' style='display:none;' class='imgcontainer'> +<button id='x8d3aaba0' onclick='hideorshow("x8d3aaba0","x2a4f2f78")'>show</button></p> + <div id='x2a4f2f78' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -12612,8 +12613,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/expr.html">expr:</a></b> -<button id='xb0110d17' onclick='hideorshow("xb0110d17","xa58b7a65")'>show</button></p> - <div id='xa58b7a65' style='display:none;' class='imgcontainer'> +<button id='x386d0e85' onclick='hideorshow("x386d0e85","x6cd28ebe")'>show</button></p> + <div id='x6cd28ebe' style='display:none;' class='imgcontainer'> <div style="max-width:963px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 963.96 1068.77"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -13094,8 +13095,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/filter-clause.html">filter-clause:</a></b> -<button id='xceda306e' onclick='hideorshow("xceda306e","xea62fd58")'>show</button></p> - <div id='xea62fd58' style='display:none;' class='imgcontainer'> +<button id='x24bbaf82' onclick='hideorshow("x24bbaf82","xbfc3b1ce")'>show</button></p> + <div id='xbfc3b1ce' style='display:none;' class='imgcontainer'> <div style="max-width:422px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 422.381 34.56"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -13125,8 +13126,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/function-arguments.html">function-arguments:</a></b> -<button id='x3b1c4694' onclick='hideorshow("x3b1c4694","x05ebb606")'>show</button></p> - <div id='x05ebb606' style='display:none;' class='imgcontainer'> +<button id='x4aaee466' onclick='hideorshow("x4aaee466","x436b72be")'>show</button></p> + <div id='x436b72be' style='display:none;' class='imgcontainer'> <div style="max-width:456px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 456.566 223.344"> <circle cx="5" cy="56" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,56 20,60 20,52" style="fill:rgb(0,0,0)"/> @@ -13189,8 +13190,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/literal-value.html">literal-value:</a></b> -<button id='xe3bbd990' onclick='hideorshow("xe3bbd990","x6fe52e16")'>show</button></p> - <div id='x6fe52e16' style='display:none;' class='imgcontainer'> +<button id='x02ecb1a9' onclick='hideorshow("x02ecb1a9","xaf24b70b")'>show</button></p> + <div id='xaf24b70b' style='display:none;' class='imgcontainer'> <div style="max-width:341px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 341.376 336.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,319 39,324 39,315" style="fill:rgb(0,0,0)"/> @@ -13260,8 +13261,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/over-clause.html">over-clause:</a></b> -<button id='xa8bb4111' onclick='hideorshow("xa8bb4111","xaafd812c")'>show</button></p> - <div id='xaafd812c' style='display:none;' class='imgcontainer'> +<button id='x971719a0' onclick='hideorshow("x971719a0","xb3496704")'>show</button></p> + <div id='xb3496704' style='display:none;' class='imgcontainer'> <div style="max-width:600px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 600.706 418.392"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -13352,8 +13353,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='xac187afd' onclick='hideorshow("xac187afd","x7446f303")'>show</button></p> - <div id='x7446f303' style='display:none;' class='imgcontainer'> +<button id='x44f617a7' onclick='hideorshow("x44f617a7","x7f88d487")'>show</button></p> + <div id='x7f88d487' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -13563,8 +13564,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/raise-function.html">raise-function:</a></b> -<button id='xaf0ab36f' onclick='hideorshow("xaf0ab36f","x5a9d9547")'>show</button></p> - <div id='x5a9d9547' style='display:none;' class='imgcontainer'> +<button id='x8d3842ac' onclick='hideorshow("x8d3842ac","x9c6b9f93")'>show</button></p> + <div id='x9c6b9f93' style='display:none;' class='imgcontainer'> <div style="max-width:627px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 627.302 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -13619,8 +13620,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='x6462122b' onclick='hideorshow("x6462122b","x5f77c13d")'>show</button></p> - <div id='x5f77c13d' style='display:none;' class='imgcontainer'> +<button id='xaf688c89' onclick='hideorshow("xaf688c89","xf5fcceb6")'>show</button></p> + <div id='xf5fcceb6' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -13898,8 +13899,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/compound-operator.html">compound-operator:</a></b> -<button id='xf14d4425' onclick='hideorshow("xf14d4425","x1a6c3ae2")'>show</button></p> - <div id='x1a6c3ae2' style='display:none;' class='imgcontainer'> +<button id='x6e14dced' onclick='hideorshow("x6e14dced","xb2eb8c24")'>show</button></p> + <div id='xb2eb8c24' style='display:none;' class='imgcontainer'> <div style="max-width:293px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 293.842 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -13940,8 +13941,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='x1a2d29a6' onclick='hideorshow("x1a2d29a6","x2d706d77")'>show</button></p> - <div id='x2d706d77' style='display:none;' class='imgcontainer'> +<button id='x703ea4a5' onclick='hideorshow("x703ea4a5","x414ec75e")'>show</button></p> + <div id='x414ec75e' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -13972,8 +13973,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='x67e595a0' onclick='hideorshow("x67e595a0","xad556e60")'>show</button></p> - <div id='xad556e60' style='display:none;' class='imgcontainer'> +<button id='x6dc9fba6' onclick='hideorshow("x6dc9fba6","x4c41ef9b")'>show</button></p> + <div id='x4c41ef9b' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -14020,8 +14021,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='x6e06bdd2' onclick='hideorshow("x6e06bdd2","x566b7594")'>show</button></p> - <div id='x566b7594' style='display:none;' class='imgcontainer'> +<button id='x12e9de81' onclick='hideorshow("x12e9de81","x8f6a733f")'>show</button></p> + <div id='x8f6a733f' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -14088,8 +14089,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='x97092db7' onclick='hideorshow("x97092db7","x940219b8")'>show</button></p> - <div id='x940219b8' style='display:none;' class='imgcontainer'> +<button id='xdba1658e' onclick='hideorshow("xdba1658e","xdacd9a05")'>show</button></p> + <div id='xdacd9a05' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -14141,8 +14142,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='xd5bf60d0' onclick='hideorshow("xd5bf60d0","xd94f9210")'>show</button></p> - <div id='xd94f9210' style='display:none;' class='imgcontainer'> +<button id='xfd5b4100' onclick='hideorshow("xfd5b4100","xa7f13192")'>show</button></p> + <div id='xa7f13192' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -14286,8 +14287,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='x1fd092e6' onclick='hideorshow("x1fd092e6","xb8787981")'>show</button></p> - <div id='xb8787981' style='display:none;' class='imgcontainer'> +<button id='x2d69a673' onclick='hideorshow("x2d69a673","xaac5afbb")'>show</button></p> + <div id='xaac5afbb' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -14367,8 +14368,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x27b5b481' onclick='hideorshow("x27b5b481","xedf30102")'>show</button></p> - <div id='xedf30102' style='display:none;' class='imgcontainer'> +<button id='x25cb4a13' onclick='hideorshow("x25cb4a13","x61e15955")'>show</button></p> + <div id='x61e15955' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -14579,8 +14580,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/type-name.html">type-name:</a></b> -<button id='xcc909163' onclick='hideorshow("xcc909163","xcaf85157")'>show</button></p> - <div id='xcaf85157' style='display:none;' class='imgcontainer'> +<button id='x5816975f' onclick='hideorshow("x5816975f","xeb555151")'>show</button></p> + <div id='xeb555151' style='display:none;' class='imgcontainer'> <div style="max-width:661px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 661.008 110.16"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -14634,8 +14635,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/signed-number.html">signed-number:</a></b> -<button id='x788a6107' onclick='hideorshow("x788a6107","x1b3d4145")'>show</button></p> - <div id='x1b3d4145' style='display:none;' class='imgcontainer'> +<button id='xbedd75e7' onclick='hideorshow("xbedd75e7","xdb5e196e")'>show</button></p> + <div id='xdb5e196e' style='display:none;' class='imgcontainer'> <div style="max-width:292px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 292.013 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,44 39,48 39,40" style="fill:rgb(0,0,0)"/> @@ -14663,8 +14664,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='x44708a7c' onclick='hideorshow("x44708a7c","x0cdb687a")'>show</button></p> - <div id='x0cdb687a' style='display:none;' class='imgcontainer'> +<button id='x9b0ecbd9' onclick='hideorshow("x9b0ecbd9","x938018e5")'>show</button></p> + <div id='x938018e5' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -14724,8 +14725,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/select-core.html">select-core:</a></b> -<button id='x10e80211' onclick='hideorshow("x10e80211","xba3ee58c")'>show</button></p> - <div id='xba3ee58c' style='display:none;' class='imgcontainer'> +<button id='x4af73037' onclick='hideorshow("x4af73037","xe1626af5")'>show</button></p> + <div id='xe1626af5' style='display:none;' class='imgcontainer'> <div style="max-width:655px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 655.157 728.568"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="63,17 51,21 51,12" style="fill:rgb(0,0,0)"/> @@ -14902,8 +14903,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='xc3747ad1' onclick='hideorshow("xc3747ad1","xd5279444")'>show</button></p> - <div id='xd5279444' style='display:none;' class='imgcontainer'> +<button id='xe00f7e00' onclick='hideorshow("xe00f7e00","xb93f5353")'>show</button></p> + <div id='xb93f5353' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -14934,8 +14935,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='x8fe4926f' onclick='hideorshow("x8fe4926f","x6a2007d5")'>show</button></p> - <div id='x6a2007d5' style='display:none;' class='imgcontainer'> +<button id='xb0e816d3' onclick='hideorshow("xb0e816d3","x56fcfdde")'>show</button></p> + <div id='x56fcfdde' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -14982,8 +14983,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='xcab301ef' onclick='hideorshow("xcab301ef","x3df9ba0e")'>show</button></p> - <div id='x3df9ba0e' style='display:none;' class='imgcontainer'> +<button id='xf0d31cf6' onclick='hideorshow("xf0d31cf6","xfe8b409f")'>show</button></p> + <div id='xfe8b409f' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -15050,8 +15051,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='x61f42f9c' onclick='hideorshow("x61f42f9c","xe09b6df9")'>show</button></p> - <div id='xe09b6df9' style='display:none;' class='imgcontainer'> +<button id='xf2b82177' onclick='hideorshow("xf2b82177","xfea02009")'>show</button></p> + <div id='xfea02009' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -15103,8 +15104,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='xea7208de' onclick='hideorshow("xea7208de","xac9b420d")'>show</button></p> - <div id='xac9b420d' style='display:none;' class='imgcontainer'> +<button id='x48ac33ad' onclick='hideorshow("x48ac33ad","x9a398ffd")'>show</button></p> + <div id='x9a398ffd' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -15247,8 +15248,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='x90ffb670' onclick='hideorshow("x90ffb670","xd685fecf")'>show</button></p> - <div id='xd685fecf' style='display:none;' class='imgcontainer'> +<button id='xf29f61eb' onclick='hideorshow("xf29f61eb","xdd1a58bc")'>show</button></p> + <div id='xdd1a58bc' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -15526,8 +15527,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/compound-operator.html">compound-operator:</a></b> -<button id='x62aba7dc' onclick='hideorshow("x62aba7dc","xf7375003")'>show</button></p> - <div id='xf7375003' style='display:none;' class='imgcontainer'> +<button id='xc00870ec' onclick='hideorshow("xc00870ec","x85f235e2")'>show</button></p> + <div id='x85f235e2' style='display:none;' class='imgcontainer'> <div style="max-width:293px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 293.842 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -15570,8 +15571,8 @@ as shown by the following diagram: </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='x165ac4e6' onclick='hideorshow("x165ac4e6","xcd8a346f")'>show</button></p> - <div id='xcd8a346f' style='display:none;' class='imgcontainer'> +<button id='xb2b24b21' onclick='hideorshow("xb2b24b21","x76ab6808")'>show</button></p> + <div id='x76ab6808' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -15651,8 +15652,8 @@ as shown by the following diagram: </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='xd7ba7ea2' onclick='hideorshow("xd7ba7ea2","xd97ae810")'>show</button></p> - <div id='xd97ae810' style='display:none;' class='imgcontainer'> +<button id='x86862995' onclick='hideorshow("x86862995","x7aacbc15")'>show</button></p> + <div id='x7aacbc15' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -16101,8 +16102,8 @@ we leave it alone and document it here, rather than try to fix it. <p>SQLite accepts all of the usual syntax for JOIN operators: <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='xcd7cc9da' onclick='hideorshow("xcd7cc9da","x075b2cf8")'>hide</button></p> - <div id='x075b2cf8' class='imgcontainer'> +<button id='x34b7d5df' onclick='hideorshow("x34b7d5df","xfa214324")'>hide</button></p> + <div id='xfa214324' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -16189,7 +16190,28 @@ which is the same as "FULL JOIN". </p><p>Remember: you <i>can</i> use these non-standard join types but you <i>ought not</i>. Stick to using standard JOIN syntax for portability with other SQL database engines. -</p><h2 id="precedence_of_comma_joins_and_cross_join"><span>9.2. </span>Precedence of comma-joins and CROSS JOIN</h2> +</p><h2 id="flexible_join_syntax"><span>9.2. </span>Flexible join syntax</h2> + +<p>Standard SQL has tighter restrictions on join syntax than does SQLite. +In standard SQL, all joins other than comma-joins, CROSS JOINs, and NATURAL +joins must have either an ON clause or a USING clause and comma-joins, CROSS JOINs, +and NATURAL joins must not have either an ON or USING clause. SQLite is not +nearly so fussy about join syntax. SQLite will accept and process an ON or USING clause +on a comma-join or CROSS JOIN, and will let you omit the ON or USING +clause from any join at all. In SQLite, the only restrictions are: + +</p><ul> +<li><p> You cannot have an ON or USING clause on a NATURAL join. + +</p></li><li><p> You cannot have both an ON clause and a USING clause on the same join. +</p></li></ul> + +<p> +SQLite even allows you to omit the ON or USING clause from an outer join, +though doing so means that the outer join is unconstrained (as if the ON clause +where "<tt>ON true</tt>") which make the outer join behave like an inner join. + +</p><h2 id="precedence_of_comma_joins_and_cross_join"><span>9.3. </span>Precedence of comma-joins and CROSS JOIN</h2> <p>In standard SQL, joins that use the JOIN keyword take higher precedence than comma-joins. That is to say, JOIN operators happen before comma operators. @@ -16225,5 +16247,5 @@ programmers instinctively follow all of these suggestions without having to be told, and so the lack of precedence difference between comma-joins and the JOIN keyword in SQLite rarely comes up in practice. But you should be aware of the problem, in case it ever does appear. -</p><p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/lang_select.in?m=22906d1d5a">2023-06-13 13:23:44</a> UTC </small></i></p> +</p> diff --git a/www/loadext.html b/www/loadext.html index daa2912..dfa850c 100644 --- a/www/loadext.html +++ b/www/loadext.html @@ -191,7 +191,7 @@ by the <a href="c3ref/load_extension.html">sqlite3_load_extension()</a> interfac C interface.</p> <p>Both methods for loading an extension allow you to specify -the name of an entry point for the extension. +the name of an entry point for the extension. You can leave this argument blank - passing in a NULL pointer for the <a href="c3ref/load_extension.html">sqlite3_load_extension()</a> C-language interface or omitting the second argument for the <a href="lang_corefunc.html#load_extension">load_extension()</a> SQL interface - @@ -203,7 +203,7 @@ by the lowercase equivalent of every ASCII character in the filename after the last "/" and before the first following "." omitting the first three characters if they happen to be "lib". So, for example, if the filename is "/usr/lib/libmathfunc-4.8.so" the entry point name -would be "sqlite3_mathfunc_init". Or if the filename is +would be "sqlite3_mathfunc_init". Or if the filename is "./SpellFixExt.dll" then the entry point would be called "sqlite3_spellfixext_init". @@ -289,12 +289,12 @@ code files instead of "<tt>#include <sqlite3.h></tt>". </p> </li><li><p> -Put the macro "<tt>SQLITE_EXTENSION_INIT1</tt>" on a line by itself +Put the macro "<tt>SQLITE_EXTENSION_INIT1</tt>" on a line by itself right after the "<tt>#include <sqlite3ext.h></tt>" line. </p> </li><li><p> -Add an extension loading entry point routine that looks like +Add an extension loading entry point routine that looks like something the following: </p><div class="codeblock"><pre>#ifdef _WIN32 @@ -325,7 +325,7 @@ above, then the correct entry point name would be "sqlite3_yourcode_init". </p></li></ol> -<p>Here is a complete template extension that you can copy/paste +<p>Here is a complete template extension that you can copy/paste to get started:</p> <div class="codeblock"><pre>/* Add your header comment here */ @@ -344,8 +344,8 @@ __declspec(dllexport) ** discarding the first three characters if they are "lib". */ int sqlite3_extension_init( - sqlite3 *db, - char **pzErrMsg, + sqlite3 *db, + char **pzErrMsg, const sqlite3_api_routines *pApi ){ int rc = SQLITE_OK; @@ -363,12 +363,12 @@ int sqlite3_extension_init( <h2 id="example_extensions"><span>4.1. </span>Example Extensions</h2> -<p>Many examples of complete and working loadable extensions can be +<p>Many examples of complete and working loadable extensions can be seen in the SQLite source tree in the <a href="https://www.sqlite.org/src/file/ext/misc">ext/misc</a> subdirectory. Each file in that directory is a separate extension. Documentation is provided by a header comment on the file. -Here are brief notes on a few of the extensions in +Here are brief notes on a few of the extensions in the <a href="https://www.sqlite.org/src/file/ext/misc">ext/misc</a> subdirectory: </p><ul> @@ -388,7 +388,7 @@ This is a larger and more complex extension. Implementation of a new <a href="vfs.html">VFS</a> that stores all content in-memory. </p></li><li><p> <a href="https://www.sqlite.org/src/file/ext/misc/rot13.c">rot13.c</a> — -Implementation of a <a href="https://en.wikipedia.org/wiki/ROT13">rot13()</a> +Implementation of a <a href="https://en.wikipedia.org/wiki/ROT13">rot13()</a> SQL function. This is a very simple example of an extension function and is useful as a template for creating new extensions. </p></li><li><p> diff --git a/www/news.html b/www/news.html index 6e9fba3..8a058a6 100644 --- a/www/news.html +++ b/www/news.html @@ -119,7 +119,19 @@ antiRobotDefense(); <h2>Recent News</h2> -<a name="2024_04_15"></a><h3>2024-04-15 - <a href="releaselog/3_45_3.html">Version 3.45.3</a></h3><blockquote> +<a name="2024_05_23"></a><h3>2024-05-23 - <a href="releaselog/3_46_0.html">Version 3.46.0</a></h3><blockquote> +Version 3.46.0 is an enhancement release. Enhancements include: +<ul> +<li> Improvements to the <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> command +<li> Enhancements to the <a href="lang_datefunc.html">date and time functions</a> +<li> The ability to put "_" between digits in numeric literals for readability +<li> Added the <a href="json1.html#jpretty">json_pretty()</a> function +<li> Improvements to the query planner, especially a new faster implementation + for VALUES clauses with many terms. +</ul> +<p> +None of these enhancements are critical. Update at your convenience. +</blockquote><hr width="50%"><a name="2024_04_15"></a><h3>2024-04-15 - <a href="releaselog/3_45_3.html">Version 3.45.3</a></h3><blockquote> Version 3.45.3 is a patch release that fixes a few obscure problems, including: <ul> @@ -852,5 +864,5 @@ the Firefox developers at Mozilla. The differences from version </blockquote><hr width="50%"> <a href="oldnews.html">Old news...</a> -<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/news.in?m=5d7fc0049c">2024-04-15 13:35:54</a> UTC </small></i></p> +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/news.in?m=ab00e0d532">2024-05-22 19:07:18</a> UTC </small></i></p> diff --git a/www/opcode.html b/www/opcode.html index d24d2a6..a899048 100644 --- a/www/opcode.html +++ b/www/opcode.html @@ -172,6 +172,9 @@ about the bytecode engine change from one release of SQLite to the next. Applications that use SQLite should not depend on any of the details found in this document. +</p><p>See the document "<a href="whybytecode.html">Why SQLite Uses Bytecode</a>" for some reasons why +SQLite prefers to use bytecode to implement SQL. + </p><h1 id="introduction"><span>2. </span>Introduction</h1> @@ -217,8 +220,8 @@ output from SQLite, you should reference the version of this document that corresponds to the version of SQLite that ran the <a href="lang_explain.html">EXPLAIN</a>. Otherwise, the description of the opcodes may not be accurate. This document is derived from SQLite - version 3.45.3 check-in -<a href='https://www.sqlite.org/src/timeline?c=8653b758870e6'>8653b758870e6</a> dated 2024-04-15. + version 3.46.0 check-in +<a href='https://www.sqlite.org/src/timeline?c=96c92aba00c83'>96c92aba00c83</a> dated 2024-05-23. @@ -446,15 +449,15 @@ opcodes defined by the virtual machine. All currently defined opcodes are described in the table below. This table was generated automatically by scanning the source code from the file -<a href="https://www.sqlite.org/src/artifact/b2a45392265cb83f60251406039bf5255462d4a6d8deb05b2eaccab5abb2e20b">vdbe.c</a>. +<a href="https://www.sqlite.org/src/artifact/3b1793c5d2235ae89b01ef051a33d7d2ad3704c71799653b112686735ad401ff">vdbe.c</a>. </p><p>Remember: The VDBE opcodes are <u>not</u> part of the interface definition for SQLite. The number of opcodes and their names and meanings change from one release of SQLite to the next. The opcodes shown in the table below are valid for SQLite - version 3.45.3 check-in -<a href='https://www.sqlite.org/src/timeline?c=8653b758870e6'>8653b758870e6</a> dated 2024-04-15. + version 3.46.0 check-in +<a href='https://www.sqlite.org/src/timeline?c=96c92aba00c83'>96c92aba00c83</a> dated 2024-05-23. <a name="codes"></a> @@ -888,7 +891,9 @@ would have been false or NULL, then fall through.</td></tr> <a name="EndCoroutine"></a>EndCoroutine <td>The instruction at the address in register P1 is a <a href="opcode.html#Yield">Yield</a>. <a href="opcode.html#Jump">Jump</a> to the P2 parameter of that <a href="opcode.html#Yield">Yield</a>. -After the jump, register P1 becomes undefined.</p> +After the jump, the value register P1 is left with a value +such that subsequent OP_Yields go back to the this same +<a href="opcode.html#EndCoroutine">EndCoroutine</a> instruction.</p> <p>See also: <a href="opcode.html#InitCoroutine">InitCoroutine</a></td></tr> <tr><td valign="top" align="center"> @@ -1228,9 +1233,12 @@ value in P1 and jump to P2.</p> <p>If the initial value of register P1 is less than 1, then the value is unchanged and control passes through to the next instruction.</td></tr> <tr><td valign="top" align="center"> -<a name="IfSmaller"></a>IfSmaller -<td>Estimate the number of rows in the table P1. <a href="opcode.html#Jump">Jump</a> to P2 if that -estimate is less than approximately 2**(0.1*P3).</td></tr> +<a name="IfSizeBetween"></a>IfSizeBetween +<td>Let N be the approximate number of rows in the table or index +with cursor P1 and let X be 10*log2(N) if N is positive or -1 +if N is zero.</p> + +<p>Jump to P2 if X is in between P3 and P4, inclusive.</td></tr> <tr><td valign="top" align="center"> <a name="IncrVacuum"></a>IncrVacuum <td>Perform a single step of the incremental vacuum procedure on @@ -1313,11 +1321,11 @@ values.</td></tr> <tr><td valign="top" align="center"> <a name="IntegrityCk"></a>IntegrityCk <td>Do an analysis of the currently open database. Store in -register P1 the text of an error message describing any problems. -If no problems are found, store a NULL in register P1.</p> +register (P1+1) the text of an error message describing any problems. +If no problems are found, store a NULL in register (P1+1).</p> -<p>The register P3 contains one less than the maximum number of allowed errors. -At most reg(P3) errors will be reported. +<p>The register (P1) contains one less than the maximum number of allowed +errors. At most reg(P1) errors will be reported. In other words, the analysis stops as soon as reg(P1) errors are seen. Reg(P1) is updated with the number of errors remaining.</p> @@ -1727,7 +1735,8 @@ individual columns using the <a href="opcode.html#Column">Column</a> opcode. Th is the only cursor opcode that works with a pseudo-table.</p> <p>P3 is the number of fields in the records that will be stored by -the pseudo-table.</td></tr> +the pseudo-table. If P2 is 0 or negative then the pseudo-cursor +will return NULL for every column.</td></tr> <tr><td valign="top" align="center"> <a name="OpenRead"></a>OpenRead <td>Open a read-only cursor for the database table whose root page is @@ -1854,7 +1863,9 @@ number P5-1 in the prepared statement is incremented.</td></tr> <p>P1 contains the address of the memory cell that contains the first memory cell in an array of values used as arguments to the sub-program. P2 contains the address to jump to if the sub-program throws an IGNORE -exception using the RAISE() function. Register P3 contains the address +exception using the RAISE() function. P2 might be zero, if there is +no possibility that an IGNORE exception will be raised. +Register P3 contains the address of a memory cell in this (the parent) VM that is used to allocate the memory required by the sub-vdbe at runtime.</p> @@ -2414,9 +2425,15 @@ identified by P1, invoke this opcode to actually do the sorting. for Sorter objects.</td></tr> <tr><td valign="top" align="center"> <a name="SqlExec"></a>SqlExec -<td>Run the SQL statement or statements specified in the P4 string. -Disable Auth and <a href="opcode.html#Trace">Trace</a> callbacks while those statements are running if -P1 is true.</td></tr> +<td>Run the SQL statement or statements specified in the P4 string.</p> + +<p>The P1 parameter is a bitmask of options:</p> + +<p>0x0001 Disable Auth and <a href="opcode.html#Trace">Trace</a> callbacks while the statements +in P4 are running.</p> + +<p>0x0002 Set db->nAnalysisLimit to P2 while the statements in +P4 are running.</p></td></tr> <tr><td valign="top" align="center"> <a name="String"></a>String <td>The string value P4 of length P1 (bytes) is stored in register P2.</p> @@ -2525,10 +2542,7 @@ the file into which the result of vacuum should be written. When P2 is zero, the vacuum overwrites the original database.</td></tr> <tr><td valign="top" align="center"> <a name="Variable"></a>Variable -<td>Transfer the values of bound parameter P1 into register P2</p> - -<p>If the parameter is named, then its name appears in P4. -The P4 value is used by sqlite3_bind_parameter_name().</td></tr> +<td>Transfer the values of bound parameter P1 into register P2</td></tr> <tr><td valign="top" align="center"> <a name="VBegin"></a>VBegin <td>P4 may be a pointer to an sqlite3_vtab structure. If so, call the diff --git a/www/optoverview.html b/www/optoverview.html index 7a60a3b..313d78e 100644 --- a/www/optoverview.html +++ b/www/optoverview.html @@ -130,12 +130,14 @@ Table Of Contents <div class="fancy-toc2"><a href="#index_term_usage_examples">2.1. Index Term Usage Examples</a></div> <div class="fancy-toc1"><a href="#the_between_optimization">3. The BETWEEN Optimization</a></div> <div class="fancy-toc1"><a href="#or_optimizations">4. OR Optimizations</a></div> +<div class="fancy-toc2"><a href="#converting_or_connected_constraint_into_an_in_operator">4.1. Converting OR-connected constraint into an IN operator</a></div> +<div class="fancy-toc2"><a href="#evaluating_or_constraints_separately_and_taking_the_union_of_the_result">4.2. Evaluating OR constraints separately and taking the UNION of the result</a></div> <div class="fancy-toc1"><a href="#the_like_optimization">5. The LIKE Optimization</a></div> <div class="fancy-toc1"><a href="#the_skip_scan_optimization">6. The Skip-Scan Optimization</a></div> <div class="fancy-toc1"><a href="#joins">7. Joins</a></div> -<div class="fancy-toc2"><a href="#order_of_tables_in_a_join">7.1. Order of Tables in a Join</a></div> -<div class="fancy-toc2"><a href="#manual_control_of_query_plans_using_sqlite_stat_tables">7.2. Manual Control Of Query Plans Using SQLITE_STAT Tables</a></div> -<div class="fancy-toc2"><a href="#manual_control_of_query_plans_using_cross_join">7.3. Manual Control of Query Plans using CROSS JOIN</a></div> +<div class="fancy-toc2"><a href="#manual_control_of_join_order">7.1. Manual Control Of Join Order</a></div> +<div class="fancy-toc3"><a href="#manual_control_of_query_plans_using_sqlite_stat_tables">7.1.1. Manual Control Of Query Plans Using SQLITE_STAT Tables</a></div> +<div class="fancy-toc3"><a href="#manual_control_of_query_plans_using_cross_join">7.1.2. Manual Control of Query Plans using CROSS JOIN</a></div> <div class="fancy-toc1"><a href="#choosing_between_multiple_indexes">8. Choosing Between Multiple Indexes</a></div> <div class="fancy-toc2"><a href="#disqualifying_where_clause_terms_using_unary_">8.1. Disqualifying WHERE Clause Terms using Unary-"+"</a></div> <div class="fancy-toc2"><a href="#range_queries">8.2. Range Queries</a></div> @@ -146,9 +148,9 @@ Table Of Contents <div class="fancy-toc1"><a href="#subquery_co_routines">12. Subquery Co-routines</a></div> <div class="fancy-toc2"><a href="#using_co_routines_to_defer_work_until_after_the_sorting">12.1. Using Co-routines to Defer Work until after the Sorting</a></div> <div class="fancy-toc1"><a href="#the_min_max_optimization">13. The MIN/MAX Optimization</a></div> -<div class="fancy-toc1"><a href="#automatic_indexes">14. Automatic Indexes</a></div> +<div class="fancy-toc1"><a href="#automatic_query_time_indexes">14. Automatic Query-Time Indexes</a></div> <div class="fancy-toc2"><a href="#hash_joins">14.1. Hash Joins</a></div> -<div class="fancy-toc1"><a href="#the_push_down_optimization">15. The Push-Down Optimization</a></div> +<div class="fancy-toc1"><a href="#the_where_clause_push_down_optimization">15. The WHERE-Clause Push-Down Optimization</a></div> <div class="fancy-toc1"><a href="#the_outer_join_strength_reduction_optimization">16. The OUTER JOIN Strength Reduction Optimization</a></div> <div class="fancy-toc1"><a href="#the_omit_outer_join_optimization">17. The Omit OUTER JOIN Optimization</a></div> <div class="fancy-toc1"><a href="#the_constant_propagation_optimization">18. The Constant Propagation Optimization</a></div> @@ -190,29 +192,49 @@ mk.innerHTML = "►"; </p><p> Additional background information is available in the <a href="queryplanner.html">indexing tutorial</a> document. + The <a href="queryplanner-ng.html">Next Generation Query Planner</a> document provides more detail on + how the <a href="optoverview.html#joins">join order</a> is chosen. -</p><p> - With release 3.8.0 (2013-08-26), - the SQLite query planner was reimplemented as the - <a href="queryplanner-ng.html">Next Generation Query Planner</a> or "NGQP". All of the features, techniques, - and algorithms described in this document are applicable to both the - pre-3.8.0 legacy query planner and to the NGQP. For further information on - how the NGQP differs from the legacy query planner, see the - <a href="queryplanner-ng.html">detailed description of the NGQP</a>. +<a name="where_clause"></a> +</p><h1 id="where_clause_analysis"><span>2. </span>WHERE Clause Analysis</h1> +<p> + Prior to analysis, the following transformations are made + to shift all join constraints into the WHERE clause: -<a name="where_clause"></a> +</p><p> +</p><ul> +<li>All NATURAL joins are converted into joins with a USING clause. +</li><li>All USING clauses (including ones created by the previous step) + are converted into equivalent ON clauses. +</li><li>All ON clauses (include ones created by the previous step) + are added as new conjuncts (AND-connected terms) in the WHERE clause. +</li></ul> -</p><h1 id="where_clause_analysis"><span>2. </span>WHERE Clause Analysis</h1> <p> - The WHERE clause on a query is broken up into "terms" where each term - is separated from the others by an AND operator. + SQLite makes no distinction between join constraints that occur in the + WHERE clause and constraints in the ON clause of an inner join, since that + distinction does not affect the outcome. However, there is + a difference between ON clause constraints and WHERE clause constraints for + outer joins. Therefore, when SQLite moves an ON clause constraint from an + outer join over to the WHERE clause it adds special tags to the Abstract + Syntax Tree (AST) to indicate that the constraint came from an outer join + and from which outer join it came. There is no way to add those tags in + pure SQL text. Hence, the SQL input must use ON clauses on outer joins. + But in the internal AST, all constraints are part of the WHERE clause, + because having everything in one place simplifies processing. + +</p><p> + After all constraints have been shifted into the WHERE clause, + The WHERE clause is broken up into conjuncts (hereafter called + "terms"). In other words, the WHERE clause is broken up into pieces + separated from the others by an AND operator. If the WHERE clause is composed of constraints separated by the OR - operator then the entire clause is considered to be a single "term" + operator (disjuncts) then the entire clause is considered to be a single "term" to which the <a href="#or_opt">OR-clause optimization</a> is applied. </p><p> @@ -229,6 +251,7 @@ mk.innerHTML = "►"; </b><i>column</i><b> < </b><i>expression</i><b> </b><i>column</i><b> <= </b><i>expression</i><b> </b><i>expression</i><b> = </b><i>column</i><b> + </b><i>expression</i><b> IS </b><i>column</i><b> </b><i>expression</i><b> > </b><i>column</i><b> </b><i>expression</i><b> >= </b><i>column</i><b> </b><i>expression</i><b> < </b><i>column</i><b> @@ -369,6 +392,10 @@ mk.innerHTML = "►"; <p> WHERE clause constraints that are connected by OR instead of AND can be handled in two different ways. + +</p><h2 id="converting_or_connected_constraint_into_an_in_operator"><span>4.1. </span>Converting OR-connected constraint into an IN operator</h2> + +<p> If a term consists of multiple subterms containing a common column name and separated by OR, like this: @@ -388,7 +415,9 @@ mk.innerHTML = "►"; although the column can occur on either the left or the right side of the <b>=</b> operator. -</p><p> +</p><h2 id="evaluating_or_constraints_separately_and_taking_the_union_of_the_result"><span>4.2. </span>Evaluating OR constraints separately and taking the UNION of the result</h2> + +<p> If and only if the previously described conversion of OR to an IN operator does not work, the second OR-clause optimization is attempted. Suppose the OR clause consists of multiple subterms as follows: @@ -700,41 +729,7 @@ SELECT name FROM people WHERE role='student' AND height>=180; </p><h1 id="joins"><span>7. </span>Joins</h1> <p> - The ON and USING clauses of an inner join are converted into additional - terms of the WHERE clause prior to WHERE clause analysis described - <a href="#where_clause">above in paragraph 2.0</a>. - Thus with SQLite, there is no computational - advantage to use the newer SQL92 join syntax - over the older SQL89 comma-join syntax. They both end up accomplishing - exactly the same thing on inner joins. - -</p><p> - For an OUTER JOIN the situation is more complex. The following - two queries are not equivalent: - -</p><div class="codeblock"><pre>SELECT * FROM tab1 LEFT JOIN tab2 ON tab1.x=tab2.y; -SELECT * FROM tab1 LEFT JOIN tab2 WHERE tab1.x=tab2.y; -</pre></div> -<p> - For an inner join, the two queries above would be identical. However, - special processing applies to the ON and USING clauses of an OUTER join: - specifically, the constraints in an ON or USING clause do not apply if - the right table of the join is on a null row, but the constraints do apply - in the WHERE clause. The net effect is that putting the ON or USING - clause expressions for a LEFT JOIN in the WHERE clause effectively converts - the query to an - ordinary INNER JOIN - albeit an inner join that runs more slowly. - -<a name="table_order"></a> - -</p><h2 id="order_of_tables_in_a_join"><span>7.1. </span>Order of Tables in a Join</h2> - -<p> - The current implementation of - SQLite uses only loop joins. That is to say, joins are implemented as - nested loops. - -</p><p> + SQLite implements joins as nested loops. The default order of the nested loops in a join is for the left-most table in the FROM clause to form the outer loop and the right-most table to form the inner loop. @@ -742,10 +737,10 @@ SELECT * FROM tab1 LEFT JOIN tab2 WHERE tab1.x=tab2.y; will help it to select better indexes. </p><p> - Inner joins can be freely reordered. However a left outer join is + Inner joins can be freely reordered. However outer joins are neither commutative nor associative and hence will not be reordered. - Inner joins to the left and right of the outer join might be reordered - if the optimizer thinks that is advantageous but the outer joins are + Inner joins to the left and right of an outer join might be reordered + if the optimizer thinks that is advantageous but outer joins are always evaluated in the order in which they occur. </p><p> @@ -757,7 +752,8 @@ SELECT * FROM tab1 LEFT JOIN tab2 WHERE tab1.x=tab2.y; </p><p> When selecting the order of tables in a join, SQLite uses an efficient - polynomial-time algorithm. Because of this, + polynomial-time algorithm graph algorithm described in + the <a href="queryplanner-ng.html">Next Generation Query Planner</a> document. Because of this, SQLite is able to plan queries with 50- or 60-way joins in a matter of microseconds @@ -868,20 +864,40 @@ end a different choice might be made if the statistics indicate that the alternative is likely to run faster. +</p><h2 id="manual_control_of_join_order"><span>7.1. </span>Manual Control Of Join Order</h2> + +<p> + SQLite almost always picks the best join order automatically. It is + very rare that a developer needs to intervene to give the query planner + hints about the best join order. The best policy is to make use + of <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> to ensure that the query planner has access to + up-to-date statistics on the shape of the data in the database. + +</p><p> + This section describes techniques by which developers can control the + join order in SQLite, to work around any performance problems that may + arise. However, the use of these techniques is not recommended, except + as a last resort. + +</p><p> + If you do encounter a situation where SQLite is picking a suboptimal + join order even after running <a href="pragma.html#pragma_optimize">PRAGMA optimize</a>, please report your + situation on the <a href="https://sqlite.org/forum">SQLite Community Forum</a> so + that the SQLite maintainers can make new refinements to the query planner + such that manual intervention is not required. + <a name="manctrl"></a> -</p><h2 id="manual_control_of_query_plans_using_sqlite_stat_tables"><span>7.2. </span>Manual Control Of Query Plans Using SQLITE_STAT Tables</h2> +</p><h3 id="manual_control_of_query_plans_using_sqlite_stat_tables"><span>7.1.1. </span>Manual Control Of Query Plans Using SQLITE_STAT Tables</h3> <p> SQLite provides the ability for advanced programmers to exercise control over the query plan chosen by the optimizer. One method for doing this - is to fudge the <a href="lang_analyze.html">ANALYZE</a> results in the <a href="fileformat2.html#stat1tab">sqlite_stat1</a>, - <a href="fileformat2.html#stat3tab">sqlite_stat3</a>, and/or <a href="fileformat2.html#stat4tab">sqlite_stat4</a> tables. This is not - recommended for most situations. + is to fudge the <a href="lang_analyze.html">ANALYZE</a> results in the <a href="fileformat2.html#stat1tab">sqlite_stat1</a> table. <a name="crossjoin"></a> -</p><h2 id="manual_control_of_query_plans_using_cross_join"><span>7.3. </span>Manual Control of Query Plans using CROSS JOIN</h2> +</p><h3 id="manual_control_of_query_plans_using_cross_join"><span>7.1.2. </span>Manual Control of Query Plans using CROSS JOIN</h3> <p> Programmers can force SQLite to use a particular loop nesting order @@ -991,6 +1007,15 @@ SELECT z FROM ex2 WHERE x=5 AND y=6; </p><h2 id="disqualifying_where_clause_terms_using_unary_"><span>8.1. </span>Disqualifying WHERE Clause Terms using Unary-"+"</h2> <p> + <i>Note: Disqualifying WHERE clause terms this way is not recommended. + This is a work-around. + Only do this as a last resort to get the performance you need. If you + find a situation where this work-around is necessary, please report the + situation on the <a href="https://sqlite.org/forum">SQLite Community Forum</a> so + that the SQLite maintainers can try to improve the query planner such + that the work-around is no longer required for your situation.</i> + +</p><p> Terms of the WHERE clause can be manually disqualified for use with indexes by prepending a unary <b>+</b> operator to the column name. The unary <b>+</b> is a no-op and will not generate any byte code in the prepared @@ -1140,8 +1165,10 @@ SELECT z FROM ex3 WHERE w=5 AND x BETWEEN 1 AND 100 AND y BETWEEN 1 AND 100; behavior is to evaluate the subquery into a transient table, then run the outer SELECT against the transient table. Such a plan can be suboptimal since the transient table will not have any indexes - and the outer query (which is likely a join) will be forced to do a - full table scan on the transient table. + and the outer query (which is likely a join) will be forced to either + do full table scan on the transient table or else construct a + <a href="optoverview.html#autoindex">query-time index</a> on the transient table, neither or which is likely + to be particularly fast. </p><p> To overcome this problem, SQLite attempts to flatten subqueries in @@ -1166,56 +1193,36 @@ SELECT z FROM ex3 WHERE w=5 AND x BETWEEN 1 AND 100 AND y BETWEEN 1 AND 100; </p><p> Casual readers are not expected to understand all of these rules. - A key take-away from this section is that the rules for determining - if query flatting is safe or unsafe are subtle and - complex. There have been multiple bugs over the years caused by + The point here is that flattening rules are subtle and complex. + There have been multiple bugs over the years caused by over-aggressive query flattening. On the other hand, performance of complex queries and/or queries involving views tends to suffer if query flattening is more conservative. </p><p> </p><ol> - <li value="1"> <i>(Obsolete. Query flattening is no longer - attempted for aggregate subqueries.)</i> - - </li><li value="2"> <i>(Obsolete. Query flattening is no longer - attempted for aggregate subqueries.)</i> - + <li value="1"> <i>(Obsolete)</i> + </li><li value="2"> <i>(Obsolete)</i> </li><li value="3"> If the subquery is the right operand of a LEFT JOIN then <ol type="a"><li> the subquery may not be a join, and </li><li> the FROM clause of the subquery may - not contain a virtual table, and - </li><li> the outer query may not be an aggregate.</li></ol></li> - - <li value="4"> The subquery is not DISTINCT. - - </li><li value="5"> <i>(Subsumed into constraint 4)</i> - - </li><li value="6"> <i>(Obsolete. Query flattening is no longer - attempted for aggregate subqueries.)</i> - - </li><li value="7"> - The subquery has a FROM clause. - - </li><li value="8"> - The subquery does not use LIMIT or the outer query is not a join. - - </li><li value="9"> - The subquery does not use LIMIT or the outer query does not use - aggregates. - - </li><li value="10"> <i>(Restriction relaxed in 2005)</i> - + not contain a virtual table, and + </li><li> the outer query may not be DISTINCT.</li></ol> + </li><li value="4"> The subquery is not DISTINCT. + </li><li value="5"> <i>(Obsolete - subsumed into constraint 4)</i> + </li><li value="6"> <i>(Obsolete)</i> + </li><li value="7"> The subquery has a FROM clause. + </li><li value="8"> The subquery does not use LIMIT or the outer query is + not a join. + </li><li value="9"> The subquery does not use LIMIT or the outer query + does not use aggregates. + </li><li value="10"> <i>(Obsolete)</i> </li><li value="11"> The subquery and the outer query do not both have ORDER BY clauses. - - </li><li value="12"> <i>(Subsumed into constraint 3)</i> - + </li><li value="12"> <i>(Obsolete - subsumed into constraint 3)</i> </li><li value="13"> The subquery and outer query do not both use LIMIT. - </li><li value="14"> The subquery does not use OFFSET. - </li><li value="15"> If the outer query is part of a compound select, then the subquery may not have a LIMIT clause. @@ -1231,7 +1238,13 @@ SELECT z FROM ex3 WHERE w=5 AND x BETWEEN 1 AND 100 AND y BETWEEN 1 AND 100; </li><li> no terms with the subquery compound may be aggregate or DISTINCT, and </li><li> every term within the subquery must have a FROM clause, and - </li><li> the outer query may not be an aggregate, DISTINCT query, or join. + </li><li> the outer query may not be an aggregateor DISTINCT query. + </li><li> the subquery may not contain window functions. + </li><li> the subquery must not be the right-hand side of a LEFT JOIN. + </li><li> either the subquery is the first element of the outer query + or there are not RIGHT or FULL JOINs in any arm of the subquery. + </li><li> the corresponding result set expressions in all arms of the + compound subquery must have the same <a href="datatype3.html#affinity">affinity</a>. </li></ol> The parent and sub-query may contain WHERE clauses. Subject to @@ -1257,10 +1270,24 @@ SELECT z FROM ex3 WHERE w=5 AND x BETWEEN 1 AND 100 AND y BETWEEN 1 AND 100; </li><li value="22"> The subquery may not be a recursive CTE. - </li><li value="23"> <i>(Subsumed into constraint 17d.)</i> + </li><li value="23"> If the outer query is a recursive CTE, then the sub-query + may not be a compound query. + + </li><li value="24"> <i>(Obsolete)</i> - </li><li value="24"> <i>(Obsolete. Query flattening is no longer - attempted for aggregate subqueries.)</i> + </li><li value="25"> Neither the subquery nor the outer query may contain + a <a href="windowfunctions.html">window function</a> in the result set nor the ORDER BY clause. + + </li><li value="26"> The subquery may not be the right operand of a RIGHT + or FULL OUTER JOIN. + </li><li value="27"> The subquery may not contain a FULL or RIGHT JOIN unless it + is the first element of the parent query. Two subcases: + <ol type="a"> + <li> the subquery is not a compound query. + </li><li> the subquery is a compound query and the RIGHT JOIN occurs + in any arm of the compound query. (See also (17g)). + </li></ol> + </li><li value="28"> The subquery is not a MATERIALIZED CTE. </li></ol> @@ -1273,15 +1300,19 @@ SELECT z FROM ex3 WHERE w=5 AND x BETWEEN 1 AND 100 AND y BETWEEN 1 AND 100; </p><h1 id="subquery_co_routines"><span>12. </span>Subquery Co-routines</h1> <p> - Prior to SQLite 3.7.15 (2012-12-12), - a subquery in the FROM clause would be - either flattened into the outer query, or else the subquery would be run - to completion - before the outer query started, the result set from the subquery - would be stored in a transient table, - and then the transient table would be used in the outer query. Newer - versions of SQLite have a third option, which is to implement the subquery - using a co-routine. + SQLite implements FROM-clause subqueries in one of three ways: + </p><ol> + <li> <a href="optoverview.html#flattening">Flatten</a> the subquery into its outer query + </li><li> Evaluate the subquery into a transient table that exists for + the duration of the one SQL statement that is being evaluated, + then run the outer query against that transient table. + </li><li> Evaluate the subquery in a co-routine that runs in parallel with + the outer query, providing rows to the outer query as needed. + </li></ol> + +<p> + This section describes the third technique: implementing the subquery + as a co-routine. </p><p> A co-routine is like a subroutine in that it runs in the same thread @@ -1374,13 +1405,14 @@ SELECT MAX(x)+1 FROM table; <a name="autoindex"></a> -<h1 id="automatic_indexes"><span>14. </span>Automatic Indexes</h1> +<h1 id="automatic_query_time_indexes"><span>14. </span>Automatic Query-Time Indexes</h1> <p> When no indexes are available to aid the evaluation of a query, SQLite might create an automatic index that lasts only for the duration of a single SQL statement. - Since the cost of constructing the automatic index is + Automatic indexes are also sometimes called "Query-time indexes". + Since the cost of constructing the automatic or query-time index is O(NlogN) (where N is the number of entries in the table) and the cost of doing a full table scan is only O(N), an automatic index will only be created if SQLite expects that the lookup will be run more than @@ -1401,7 +1433,7 @@ SELECT * FROM t1, t2 WHERE a=c; be the cheaper approach. </p><p> - An automatic index might also be used for a subquery: + An automatic query-time index might also be used for a subquery: </p><div class="codeblock"><pre>CREATE TABLE t1(a,b); CREATE TABLE t2(c,d); @@ -1447,7 +1479,7 @@ SELECT a, (SELECT d FROM t2 WHERE c=b) FROM t1; </p><h2 id="hash_joins"><span>14.1. </span>Hash Joins</h2> <p> - An automatic index is about the same thing as a + An automatic index is almost the same thing as a <a href="https://en.wikipedia.org/wiki/Hash_join">hash join</a>. The only difference is that a B-Tree is used instead of a hash table. If you are willing to say that the transient B-Tree constructed for an automatic index is @@ -1467,7 +1499,7 @@ SELECT a, (SELECT d FROM t2 WHERE c=b) FROM t1; <a name="pushdown"></a> -</p><h1 id="the_push_down_optimization"><span>15. </span>The Push-Down Optimization</h1> +</p><h1 id="the_where_clause_push_down_optimization"><span>15. </span>The WHERE-Clause Push-Down Optimization</h1> <p> If a subquery cannot be <a href="optoverview.html#flattening">flattened</a> into the outer query, it might @@ -1499,13 +1531,24 @@ SELECT x, y, b </pre></div> <p> - The push-down optimization cannot always be used. For example, + The WHERE-clause push-down optimization cannot always be used. For example, if the subquery contains a LIMIT, then pushing down any part of the WHERE clause from the outer query could change the result of the inner query. There are other restrictions, explained in a comment in the source code on the pushDownWhereTerms() routine that implements this optimization. +</p><p> + Do not confuse this optimization with the optimization by a similar name + in MySQL. The MySQL push-down optimization changes the order of evaluation + of WHERE-clause constraints such that those that can be evaluated using + only the index and without having to find the corresponding table row are + evaluated first, thus avoiding an unnecessary table row lookup if the + constraint fails. For disambiguation, SQLite calls this the + "MySQL push-down optimization". SQLite does do the MySQL push-down + optimization too, in addition to the WHERE-clause push-down optimization. + But the focus of this section is the WHERE-clause push-down optimization. + <a name="leftjoinreduction"></a> </p><h1 id="the_outer_join_strength_reduction_optimization"><span>16. </span>The OUTER JOIN Strength Reduction Optimization</h1> @@ -1629,5 +1672,5 @@ SELECT * FROM t1 WHERE a=b AND b=5; if those two constraints are true, then it must also be the case that "a=5" is true. This means that the desired row can be looked up quickly using a value of 5 for the INTEGER PRIMARY KEY. -</p><p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/optoverview.in?m=cc5f8f396e">2024-04-10 13:05:44</a> UTC </small></i></p> +</p><p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/optoverview.in?m=8909f126d6">2024-05-10 14:25:41</a> UTC </small></i></p> diff --git a/www/pragma.html b/www/pragma.html index 7af76f8..f17ac38 100644 --- a/www/pragma.html +++ b/www/pragma.html @@ -159,8 +159,8 @@ built-in PRAGMA statements.</p> <hr /><a name="syntax"></a> <h2>PRAGMA command syntax</h2> <p><b><a href="syntax/pragma-stmt.html">pragma-stmt:</a></b> -<button id='xd117fae3' onclick='hideorshow("xd117fae3","xa21fab4a")'>hide</button></p> - <div id='xa21fab4a' class='imgcontainer'> +<button id='x9d6dfba0' onclick='hideorshow("x9d6dfba0","x5f7c219f")'>hide</button></p> + <div id='x5f7c219f' class='imgcontainer'> <div style="max-width:824px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 824.352 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -214,8 +214,8 @@ built-in PRAGMA statements.</p> </svg> </div> <p><b><a href="syntax/pragma-value.html">pragma-value:</a></b> -<button id='xc2c54c29' onclick='hideorshow("xc2c54c29","xdbeedbf8")'>hide</button></p> - <div id='xdbeedbf8' class='imgcontainer'> +<button id='x87e7202d' onclick='hideorshow("x87e7202d","xf58fa64f")'>hide</button></p> + <div id='xf58fa64f' class='imgcontainer'> <div style="max-width:264px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 264.499 110.16"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="63,17 51,21 51,12" style="fill:rgb(0,0,0)"/> @@ -242,8 +242,8 @@ built-in PRAGMA statements.</p> </svg> </div> <p><b><a href="syntax/signed-number.html">signed-number:</a></b> -<button id='x8e288662' onclick='hideorshow("x8e288662","x58b8c58c")'>show</button></p> - <div id='x58b8c58c' style='display:none;' class='imgcontainer'> +<button id='x4c53ce39' onclick='hideorshow("x4c53ce39","x1fb8a275")'>show</button></p> + <div id='x1fb8a275' style='display:none;' class='imgcontainer'> <div style="max-width:292px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 292.013 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,44 39,48 39,40" style="fill:rgb(0,0,0)"/> @@ -479,13 +479,19 @@ for use in application programs.</ol></p> on large databases. The results of analysis are not as good when only part of each index is examined, but the results are usually good enough. Setting N to 100 or 1000 allows the - ANALYZE command to run very quickly, even on multi-gigabyte - database files. This pragma is particularly useful in combination - with <a href="pragma.html#pragma_optimize">PRAGMA optimize</a>. + ANALYZE command to run quickly, even on enormous + database files. <p>This pragma was added in SQLite version 3.32.0 (2020-05-22). The current implementation only uses the lower 31 bits of the N value - higher order bits are silently ignored. Future versions of SQLite might begin using higher order bits. + <p>Beginning with SQLite version 3.46.0 (2024-05-23), + the recommended way of running <a href="lang_analyze.html">ANALYZE</a> is with the + <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> command. The <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> will automatically + set a reasonable, temporary analysis limit that ensures that the + <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> command will finish quickly even on enormous + databases. Applications that use the <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> instead of + running <a href="lang_analyze.html">ANALYZE</a> directly do not need to set an analysis limit. <a name="pragma_application_id"></a> <h _id=pragma_application_id style="display:none"> PRAGMA application_id</h><hr> <p><b>PRAGMA </b><i>schema.</i><b>application_id; @@ -1481,74 +1487,93 @@ PRAGMA <b>main.</b>locking_mode=EXCLUSIVE; <p>Attempt to optimize the database. All schemas are optimized in the first two forms, and only the specified schema is optimized in the latter two.</p> - <p>To achieve the best long-term query performance without the need to - do a detailed engineering analysis of the application schema and SQL, - it is recommended that applications run "PRAGMA optimize" (with no arguments) - just before closing each <a href="c3ref/sqlite3.html">database connection</a>. Long-running applications - might also benefit from setting a timer to run "PRAGMA optimize" every - few hours. - </p> - <p>This pragma is usually a no-op or nearly so and is very fast. - However if SQLite feels - that performing database optimizations (such as running <a href="lang_analyze.html">ANALYZE</a> - or creating new indexes) will improve the performance of future queries, then - some database I/O may be done. Applications that want to limit the amount - of work performed can set a timer that will invoke - <a href="c3ref/interrupt.html">sqlite3_interrupt()</a> if the pragma goes on for too long. - Or, since SQLite 3.32.0, the application can use - <a href="pragma.html#pragma_analysis_limit">PRAGMA analysis_limit=<i>N</i></a> for some small - value of <i>N</i> (a few hundred or a few thousand) to limit the depth - of analyze. - </p> + <p>In most applications, using PRAGMA optimize as follows will help + SQLite to achieve the best possible query performance: + <ol> + <li><p> + Applications with short-lived database connections should run + "PRAGMA optimize;" once, just prior to closing each database connection. + + <li><p> + Applications that use long-lived database connections should run + "PRAGMA optimize=0x10002;" when the connection is first opened, and then + also run "PRAGMA optimize;" periodically, perhaps once per day or once + per hour. + + <li><p>All applications should run "PRAGMA optimize;" after a schema change, + especially after one or more <a href="lang_createindex.html">CREATE INDEX</a> statements. + </ol> + <p>This pragma is usually a no-op or nearly so and is very fast. On the + occasions where it does need to run ANALYZE on one or more tables, it + sets a temporary <a href="pragma.html#pragma_analysis_limit">analysis limit</a>, valid for the duration + of this pragma only, that prevents the ANALYZE invocations from running for + to long.</p> + <p>Recommended practice is that applications with short-lived database + connections should run "PRAGMA optimize" once when the database connection + closes. Applications with long-lived database connections should run + "PRAGMA optimize=0x10002" when the database connection first opens, then + run "PRAGMA optimize" again at periodic intervals - perhaps once per day. + All applications should run "PRAGMA optimize" after schema changes, especially + <a href="lang_createindex.html">CREATE INDEX</a>. </p> <p>The details of optimizations performed by this pragma are expected to change and improve over time. Applications should anticipate that this pragma will perform new optimizations in future releases.</p> <p>The optional MASK argument is a bitmask of optimizations to perform: - <ol> - <li value='1'><p> - Debugging mode. Do not actually perform any optimizations + + <table border=0 cellspacing=14 cellpadding=0> + <tr><td valign="top">0x00001 + <td>Debugging mode. Do not actually perform any optimizations but instead return one line of text for each optimization that would have been done. Off by default. - <li value='2'><p> - Run <a href="lang_analyze.html">ANALYZE</a> on tables that might benefit. On by default. - See below for additional information. - <li value='4'><p> - <em>(Not yet implemented)</em> - Record usage and performance - information from the current session in the - database file so that it will be available to "optimize" - pragmas run by future database connections. - <li value='8'><p> - <em>(Not yet implemented)</em> - Create indexes that might have been helpful to recent queries. - </ol> - <p>The default MASK is and always shall be 0xfffe. The 0xfffe mask means - perform all of the optimizations listed above except Debug Mode. If new - optimizations are added in the future that should be off by default, those - new optimizations will be given a mask of 0x10000 or larger.</p> + <tr><td valign="top">0x00002 + <td>Run <a href="lang_analyze.html">ANALYZE</a> on tables that might benefit. On by default.</dd> + <tr><td valign="top">0x00010 + <td>When running <a href="lang_analyze.html">ANALYZE</a>, set a temporary <a href="pragma.html#pragma_analysis_limit">PRAGMA analysis_limit</a> to + prevent excess run-time. On by default. + <tr><td valign="top">0x10000 + <td>Check the size of all tables, not just tables that have not been + recently used, to see if any have grown and shrunk significantly + and hence might + benefit from being re-analyzed. Off by default. + </table> + <p>The default MASK is 0xfffe.</p> <p>To see all optimizations that would have been done without actually - doing them, run "PRAGMA optimize(-1)". To use only the ANALYZE - optimization, run "PRAGMA optimize(0x02)".</p> + doing them, run "PRAGMA optimize(-1)".</p> <p><b>Determination Of When To Run Analyze</b></p> <p> In the current implementation, a table is analyzed if and only if all of the following are true: - <ul> - <li><p> + <ol> + <li> MASK bit 0x02 is set. - <li><p> - The query planner used <a href="fileformat2.html#stat1tab">sqlite_stat1</a>-style statistics for one or - more indexes of the table at some point during the lifetime of - the current connection. - <li><p> - One or more indexes of the table are currently unanalyzed <em>or</em> - the number of rows in the table has increased by 25 times or more - since the last time ANALYZE was run. - </ul> + <li> + The table is an ordinary table, not a view or virtual table. + <li> + The table name does not begin with "sqlite_". + <li> + One or more of the following are true: + <ol type="a"> + <li> The 0x10000 bit of MASK is set + <li> One or more indexes on the table lack entries in the sqlite_stat1 table. + <li> The query planner used sqlite_stat1 statistics for one or more indexes + of this table at some point during the lifetime of the current database + connection. + </ol> + <li> + One or more of the following are true: + <ol type="a"> + <li> One or more indexes on the table lack entries in the sqlite_stat1 table. + <li> The number of rows in the table has increased or decreased by 10-fold + since the last time ANALYZE was run on the table. + </ol> + </ol> <p> The rules for when tables are analyzed are likely to change in - future releases. + future releases. New MASK values may be added in the future. Future + versions of this pragma might accept a string literal argument instead + of a bit mask, though the bit mask argument will continue to be supported + for backwards compatibility. <a name="pragma_page_count"></a> <h _id=pragma_page_count style="display:none"> PRAGMA page_count</h><hr> <p><b>PRAGMA </b><i>schema.</i><b>page_count;</b></p> @@ -2278,5 +2303,5 @@ PRAGMA <b>main.</b>locking_mode=EXCLUSIVE; a <a href="howtocorrupt.html#cfgerr">corrupt database file</a>.</span> <hr> - +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/pragma.in?m=c5681f40cb">2024-04-16 16:29:07</a> UTC </small></i></p> diff --git a/www/queryplanner-ng.html b/www/queryplanner-ng.html index b9d7593..69eee6c 100644 --- a/www/queryplanner-ng.html +++ b/www/queryplanner-ng.html @@ -177,7 +177,7 @@ of the problems inherent to query planning, and outlines how the NGQP solves those problems.</p> <p>The NGQP is almost always better than the legacy query planner. -However, there may exist legacy applications that unknowingly depend on +However, there may exist legacy applications that unknowingly depend on undefined and/or suboptimal behavior in the legacy query planner, and upgrading to the NGQP on those legacy applications could cause performance regressions. This risk is considered and a checklist is provided @@ -203,12 +203,12 @@ this multitude of possibilities.</p> (This is true of all SQL database engines, not just SQLite.) The query planner frees the programmer from the chore of selecting a particular query plan, and thereby allows the programmer to -focus more mental energy on higher-level application issues and on +focus more mental energy on higher-level application issues and on providing more value to the end user. For simple queries where the choice of query plan is obvious, this is convenient but not hugely important. But as applications and schemas and queries grow more complex, a clever query planner can greatly speed and simplify the work of application -development. +development. There is amazing power in being about to tell the database engine what content is desired, and then let the database engine figure out the best way to retrieve that content.</p> @@ -218,14 +218,14 @@ The query planner must work with incomplete information. It cannot determine how long any particular plan will take without actually running that plan. So when comparing two or more plans to figure out which is "best", the query planner has to make -some guesses and assumptions and those guesses and assumptions will +some guesses and assumptions and those guesses and assumptions will sometimes be wrong. A good query planner is one that will find the correct solution often enough that application programmers rarely need to get involved.</p> <h2 id="_query_planning_in_sqlite"><span>2.1. </span> Query Planning In SQLite</h2> -<p>SQLite computes joins using nested loops, +<p>SQLite computes joins using nested loops, one loop for each table in the join. (Additional loops might be inserted for IN and OR operators in the WHERE clause. SQLite considers those too, @@ -250,7 +250,7 @@ SQLite will always pick the same query plan for any given SQL statement as long as: </p><ol type="a"> -<li>the database schema does not change in significant ways such as +<li>the database schema does not change in significant ways such as adding or dropping indexes,</li> <li>the ANALYZE command is not rerun, </li> <li>the same version of SQLite is used.</li> @@ -263,22 +263,22 @@ invoking <a href="c3ref/db_config.html">sqlite3_db_config</a>(db,<a href="c3ref/ </p><p>The QPSG means that if all of your queries run efficiently during testing, and if your application does not change the schema, then SQLite will not suddenly decide to start using a different -query plan, possibly causing a performance problem after your application +query plan, possibly causing a performance problem after your application is released to users. If your application works in the lab, it will continue working the same way after deployment.</p> -<p>Enterprise-class client/server SQL database engines do not normally +<p>Client/server SQL database engines do not normally make this guarantee. In client/server SQL database engines, the server keeps track of -statistics on the sizes of tables and on the quality of indexes +statistics on the sizes of tables and on the quality of indexes and the query planner uses those statistics to help select the best plans. -As content is added, deleted, or changed in the database, the statistics -will evolve and may cause the query planner to begin using a different -query plan for some particular query. Usually the new plan will be better +As content is added, deleted, or changed in the database, the statistics +will evolve and may cause the query planner to begin using a different +query plan for some particular query. Usually the new plan will be better for the evolving structure of the data. But sometimes the new query plan will cause a performance reduction. With a client/server database engine, there -is typically a Database Administrator (DBA) on hand to deal with these -rare problems as they come up. But DBAs are not available to fix problems +is typically a Database Administrator (DBA) on hand to deal with these +rare problems as they come up. But DBAs are not available to fix problems in an embedded database like SQLite, and hence SQLite is careful to ensure that plans do not change unexpectedly after deployment.</p> @@ -287,22 +287,28 @@ changes in query plans. The same version of SQLite will always pick the same query plan, but if you relink your application to use a different version of SQLite, then query plans might change. In rare -cases, an SQLite version change might lead to a performance regression. +cases, an SQLite version change might lead to a performance regression. This is one reason -you should consider statically linking your applications against SQLite -rather than use a system-wide SQLite shared library which might +you should consider statically linking your applications against SQLite +rather than use a system-wide SQLite shared library which might change without your knowledge or control.</p> +<p>See also: +</p><ul> +<li> <a href="lang_analyze.html#req">Recommended usage patterns for ANALYZE</a> +</li><li> <a href="pragma.html#pragma_optimize">PRAGMA optimize</a> +</li></ul> + <h1 id="_a_difficult_case"><span>3. </span> A Difficult Case</h1> <p> "TPC-H Q8" is a test query from the <a href="http://www.tpc.org/tpch/">Transaction Processing Performance -Council</a>. The query planners in SQLite versions 3.7.17 and earlier -do not choose good plans for TPC-H Q8. And it has been determined that +Council</a>. The query planners in SQLite versions 3.7.17 and earlier +do not choose good plans for TPC-H Q8. And it has been determined that no amount of tweaking of the legacy query planner will fix that. In order to find -a good solution to the TPC-H Q8 query, and to continue improving the +a good solution to the TPC-H Q8 query, and to continue improving the quality of SQLite's query planner, it became necessary to redesign the query planner. This section tries to explain why this redesign was necessary and how the NGQP is different and addresses the TPC-H Q8 problem. @@ -427,7 +433,7 @@ by the following diagram: In the diagram, each of the 8 tables in the FROM clause of the query is identified by a large circle with the label of the FROM-clause term: N2, S, L, P, O, C, N1 and R. -The arcs in the graph represent the estimated cost of computing each term +The arcs in the graph represent the estimated cost of computing each term assuming that the origin of the arc is in an outer loop. For example, the cost of running the S loop as an inner loop to L is 2.30 whereas the cost of running the S loop as an outer loop to L is 9.17.</p> @@ -447,7 +453,7 @@ one of the other terms is in an outer loop, whichever gives the best result. One can think of the *-costs as a short-hand notation indicating multiple arcs, one from each of the other nodes in the graph. The graph is therefore "complete", meaning that there are arcs -(some explicit and some implied) in both directions between every pair of +(some explicit and some implied) in both directions between every pair of nodes in the graph.</p> <p>The problem of finding the best query plan is equivalent to finding @@ -475,7 +481,7 @@ shown in the graph. SQLite computes several different estimated costs for each loop that apply at different times. For example, there is a "setup" cost that is incurred just once when the query starts. The setup cost is the cost of computing -an <a href="optoverview.html#autoindex">automatic index</a> for a table that does not already +an <a href="optoverview.html#autoindex">query-time index</a> for a table that does not already have an index. Then there is the cost of running each step of the loop. Finally, there is an estimate of the number rows generated by the loop, which is information needed in @@ -491,9 +497,9 @@ since there is no way for an arc to originate at two or more nodes at once.</p> <p>If the query contains an ORDER BY clause or a GROUP BY clause or if -the query uses the DISTINCT keyword then it is advantageous to select a -path through the graph that causes rows to naturally appear in sorted order, -so that no separate sorting step is required. Automatic elimination of +the query uses the DISTINCT keyword then it is advantageous to select a +path through the graph that causes rows to naturally appear in sorted order, +so that no separate sorting step is required. Automatic elimination of ORDER BY clauses can make a large performance difference, so this is another factor that needs to be considered in a complete implementation.</p> @@ -510,7 +516,7 @@ is neglected in the remainder of this article.</p> <p>Prior to <a href="releaselog/3_8_0.html">version 3.8.0</a> (2013-08-26), SQLite always used the "Nearest Neighbor" or "NN" heuristic when searching for the best query plan. The NN heuristic makes a single traversal of the graph, always choosing -the lowest-cost arc as the next step. +the lowest-cost arc as the next step. The NN heuristic works surprisingly well in most cases. And NN is fast, so that SQLite is able to quickly find good plans for even large 64-way joins. In contrast, other SQL database engines that @@ -518,21 +524,21 @@ do more extensive searching tend to bog down when the number of tables in a join goes above 10 or 15.</p> <p>Unfortunately, the query plan computed by NN for TPC-H Q8 is not optimal. -The plan computed using NN is R-N1-N2-S-C-O-L-P with a cost of 36.92. +The plan computed using NN is R-N1-N2-S-C-O-L-P with a cost of 36.92. The notation in the previous sentence means that the R table is run in the outer loop, N1 is in the next inner loop, N2 is in the third loop, and so forth down to P which is in the inner-most loop. The shortest path through the graph (as found via exhaustive search) is P-L-O-C-N1-R-S-N2 -with a cost of 27.38. The difference might not seem like much, but +with a cost of 27.38. The difference might not seem like much, but remember that the costs are logarithmic, so the shortest path is nearly 750 times faster than that path found using the NN heuristic.</p> <p>One solution to this problem is to change SQLite to do an exhaustive -search for the best path. But an exhaustive search requires time +search for the best path. But an exhaustive search requires time proportional to -K! (where K is the number of tables in the join) and so when you get +K! (where K is the number of tables in the join) and so when you get beyond a 10-way join, the time to run <a href="c3ref/prepare.html">sqlite3_prepare()</a> becomes very large.</p> @@ -553,7 +559,7 @@ the four shortest paths to visit any single node in the graph: P (cost: 7.71) <br> </blockquote> -<p>The second step finds the four shortest paths to visit two nodes +<p>The second step finds the four shortest paths to visit two nodes beginning with one of the four paths from the previous step. In the case where two or more paths are equivalent (they have the same set of visited nodes, though possibly in a different order) only the @@ -576,21 +582,21 @@ the four shortest three-node paths:</p> R-N2-S (cost: 15.08) <br> </blockquote> -<p>And so forth. There are 8 nodes in the TPC-H Q8 query, +<p>And so forth. There are 8 nodes in the TPC-H Q8 query, so this process repeats a total of 8 times. In the general case of a K-way join, the storage requirement is O(N) and the computation time is O(K*N), which is significantly faster than the O(2<small><sup>K</sup></small>) exact solution.</p> <p>But what value to choose for N? One might try N=K. This makes the -algorithm O(K<small><sup>2</sup></small>) +algorithm O(K<small><sup>2</sup></small>) which is actually still quite efficient, since the -maximum value of K is 64 and K rarely exceeds 10. +maximum value of K is 64 and K rarely exceeds 10. But that is not enough for the TPC-H Q8 -problem. With N=8 on TPC-H Q8 the N3 algorithm finds -the solution R-N1-C-O-L-S-N2-P with a cost of 29.78. +problem. With N=8 on TPC-H Q8 the N3 algorithm finds +the solution R-N1-C-O-L-S-N2-P with a cost of 29.78. That is a big improvement over NN, but it is still -not optimal. N3 finds the optimal solution for TPC-H Q8 +not optimal. N3 finds the optimal solution for TPC-H Q8 when N is 10 or greater.</p> <p>The initial implementation of NGQP chooses N=1 for simple queries, N=5 @@ -601,30 +607,32 @@ formula for selecting N might change in subsequent releases.</p> <h1 id="_hazards_of_upgrading_to_ngqp"><span>4. </span> Hazards Of Upgrading To NGQP</h1> -<p><i>Update on 2018-11-24: This section was important -when the NGQP was new. But five years have elapsed, the NGQP has been -deployed successfully to billions of devices, and everyone has upgraded. -The upgrade hazard has vanished. +<p><i>→ Update: <b>This section is obsolete and retained for +historical reference only.</b> This section was important +when the NGQP was new. But a decade has elapsed, the NGQP has been +deployed successfully to billions of devices, and everyone has upgraded, +and no performance regressions were ever reported back to the SQLite +developers. The upgrade hazard has vanished. This section is retained for historical reference only. -Modern reads can skip ahead to the <a href="queryplanner-ng.html#howtofix">query planner checklist</a>.</i> +Modern readers can <b>skip ahead to the <a href="queryplanner-ng.html#howtofix">query planner checklist</a></b>.←</i> </p><p>For most applications, upgrading from the legacy query planner to the NGQP requires little thought or effort. -Simply replace the older SQLite version with the newer version of SQLite -and recompile and the application will run faster. +Simply replace the older SQLite version with the newer version of SQLite +and recompile and the application will run faster. There are no API changes nor modifications to compilation procedures.</p> <p>But as with any query planner change, upgrading to the NGQP does carry a small risk of introducing performance regressions. The problem here is not that the NGQP is incorrect or buggy or inferior to the legacy query -planner. Given reliable information about the selectivity of indexes, -the NGQP should always pick a plan that is as good or better than before. +planner. Given reliable information about the selectivity of indexes, +the NGQP should always pick a plan that is as good as before, or better. The problem is that some applications may be using low-quality and low-selectivity indexes without having run <a href="lang_analyze.html">ANALYZE</a>. The older query -planners look at many fewer possible implementations for each query and -so they may have stumbled over a good plan by stupid luck. The NGQP, on -the other hand, looks at many more query plan possibilities, and it may +planners look at many fewer possible implementations for each query and +so they may have stumbled over a good plan by stupid luck. The NGQP, on +the other hand, looks at many more query plan possibilities, and it may choose a different query plan that works better in theory, assuming good indexes, but which gives a performance regression in practice, because of the shape of the data.</p> @@ -635,7 +643,7 @@ regression in practice, because of the shape of the data.</p> <li><p>The NGQP will always find an equal or better query plan, compared to prior query planners, as long as it has access to accurate <a href="lang_analyze.html">ANALYZE</a> data in the <a href="fileformat2.html#stat1tab">SQLITE_STAT1</a> file.</p> -</li><li><p>The NGQP will always find a good query plan +</li><li><p>The NGQP will always find a good query plan as long as the schema does not contain indexes that have more than about 10 or 20 rows with the same value in the left-most column of the index.</p> @@ -654,7 +662,7 @@ control system used to track all of the SQLite source code. A Fossil repository is an SQLite database file. (Readers are invited to ponder this recursion as an independent exercise.) Fossil is both the version-control system for SQLite and a test -platform for SQLite. Whenever enhancements are made to SQLite, +platform for SQLite. Whenever enhancements are made to SQLite, Fossil is one of the first applications to test and evaluate those enhancements. So Fossil was an early adopter of the NGQP.</p> @@ -706,7 +714,7 @@ SELECT </pre></blockquote> <p>This query is not -especially complicated, but even so it replaces hundreds or +especially complicated, but even so it replaces hundreds or perhaps thousands of lines of procedural code. The gist of the query is this: Scan down the EVENT table looking for the most recent 200 check-ins that satisfy any one of three conditions: @@ -781,7 +789,7 @@ better mathematically. This is because, in the absence of other information, the NGQP must assume that the indexes PLINK_I1 and TAGXREF_I1 are of equal quality and are equally selective. Algorithm-2 uses one field of the TAGXREF_I1 index and both fields of the PLINK_I1 index whereas -algorithm-1 only uses the first field of each index. Since +algorithm-1 only uses the first field of each index. Since algorithm-2 uses more index material, the NGQP is correct to judge it to be the better algorithm. The scores are close and algorithm-2 just barely squeaks ahead of algorithm-1. But @@ -797,7 +805,7 @@ this application. The problem is that the indexes are not of equal quality. A check-in is likely to only have one child. So the first field of PLINK_I1 will usually narrow down the search to just a single -row. But there are thousands and thousands check-ins tagged with "trunk", +row. But there are thousands and thousands check-ins tagged with "trunk", so the first field of TAGXREF_I1 will be of little help in narrowing down the search. </p> @@ -806,7 +814,7 @@ of little help in narrowing down the search. The NGQP has no way of knowing that TAGXREF_I1 is almost useless in this query, unless <a href="lang_analyze.html">ANALYZE</a> has been run on the database. The <a href="lang_analyze.html">ANALYZE</a> command gathers statistics on the quality of the various indexes and stores those -statistics in <a href="fileformat2.html#stat1tab">SQLITE_STAT1</a> table. +statistics in <a href="fileformat2.html#stat1tab">SQLITE_STAT1</a> table. Having access to this statistical information, the NGQP easily chooses algorithm-1 as the best algorithm, by a wide margin.</p> @@ -865,10 +873,10 @@ problem look like this:</p> </center> <p> -In the "without ANALYZE" case on the left, the NN algorithm chooses +In the "without ANALYZE" case on the left, the NN algorithm chooses loop P (PLINK) as the outer loop because 4.9 is less than 5.2, resulting in path P-T which is algorithm-1. NN only looks at the single best choice -at each step so it completely misses the fact that +at each step so it completely misses the fact that 5.2+4.4 makes a slightly cheaper plan than 4.9+4.8. But the N3 algorithm keeps track of the 5 best paths for a 2-way join, so it ends up selecting path T-P because of its slightly lower overall cost. @@ -877,13 +885,13 @@ Path T-P is algorithm-2. <p> Note that with ANALYZE the cost estimates are -better aligned with reality and algorithm-1 is +better aligned with reality and algorithm-1 is selected by both NN and N3. </p> -<p>(Side note: The costs estimates in the two most recent graphs +<p>(Side note: The costs estimates in the two most recent graphs were computed by the NGQP using a base-2 logarithm and slightly different -cost assumptions compared to the legacy query planner. +cost assumptions compared to the legacy query planner. Hence, the cost estimates in these latter two graphs are not directly comparable to the cost estimates in the TPC-H Q8 graph.)</p> @@ -893,7 +901,7 @@ in the TPC-H Q8 graph.)</p> <p>Running <a href="lang_analyze.html">ANALYZE</a> on the repository database immediately fixed the performance problem. However, we want Fossil to be robust and to always work quickly regardless of whether or not its repository has been analyzed. -For this reason, the query was modified to use the CROSS JOIN operator +For this reason, the query was modified to use the CROSS JOIN operator instead of the plain JOIN operator. SQLite will not reorder the tables of a CROSS JOIN. This is a long-standing feature of SQLite that is specifically designed @@ -936,11 +944,11 @@ that hand-tuning of queries is no longer required. We have not had to tweak a query in Fossil in ages. </p><p>Therefore, the current recommendation for avoiding problems such -as this one is to simply run "PRAGMA optimize" (possibly preceded by -"<a href="pragma.html#pragma_analysis_limit">PRAGMA analysis_limit=200</a>") just prior to closing each database -connection. The CROSS JOIN hack is still available, but if you keep -the query planner statistics in the <a href="fileformat2.html#stat1tab">sqlite_stat1</a> table up-to-date, -it usually won't be necessary. +as this one is to simply run "PRAGMA optimize" just prior to closing +each database connection. Or, if your application is long-running and +never closes any database connections, then run "PRAGMA optimize" once +per day or so. Also consider running "PRAGMA optimize" after any +schema change. <a name="howtofix"></a> @@ -968,7 +976,7 @@ boolean or "enum" columns as the left-most columns of your indexes.</p> <p>The Fossil performance problem described in the previous section of this document arose because there were over -ten-thousand entries in the TAGXREF table with the same value for the +ten-thousand entries in the TAGXREF table with the same value for the left-most column (the TAGID column) of the TAGXREF_I1 index.</p> </li><li><p><b>If you must use a low-quality index, be sure to run <a href="lang_analyze.html">ANALYZE</a>.</b> @@ -977,9 +985,9 @@ query planner knows that the indexes are of low quality. And the way the query planner knows this is by the content of the <a href="fileformat2.html#stat1tab">SQLITE_STAT1</a> table, which is computed by the ANALYZE command.</p> -<p>Of course, ANALYZE only works effectively if you have a significant -amount of content in your database in the first place. When creating a -new database that you expect to accumulate a lot of data, you can run +<p>Of course, ANALYZE only works effectively if you have a significant +amount of content in your database in the first place. When creating a +new database that you expect to accumulate a lot of data, you can run the command "ANALYZE sqlite_schema" to create the SQLITE_STAT1 table, then prepopulate the <a href="fileformat2.html#stat1tab">sqlite_stat1</a> table (using ordinary INSERT statements) with content that describes a typical @@ -993,7 +1001,23 @@ needed to keep the <a href="fileformat2.html#stat1tab">sqlite_stat1</a> table cu Add logic that lets you know quickly and easily which queries are taking too much time. Then work on just those specific queries.</p> -</li><li><p><b>Use <a href="lang_corefunc.html#unlikely">unlikely()</a> and <a href="lang_corefunc.html#likelihood">likelihood()</a> SQL functions.</b> +<p> +</p><hr> +<i>Update 2024: The query planner has been improved so much over +the years that you should never need to use any of the +hacks described below. The capabilities described below are still +available, for backwards compatibility. But you shouldn't use +them. If you do find a case where you are getting a suboptimal query +plan, please report it to the SQLite developers on the +<a href="https://sqlite.org/forum">SQLite Forum</a> so that they can try to fix +the problem. In other words: +<p> +</p><center><b>Stop Reading Here!</b></center> +<p>To help encourage you to stop reading, the remainder of this checklist +is now grayed out. +</p><hr> + +</i></li><li><p style="color:grey;">Use <a href="lang_corefunc.html#unlikely">unlikely()</a> and <a href="lang_corefunc.html#likelihood">likelihood()</a> SQL functions. SQLite normally assumes that terms in the WHERE clause that cannot be used by indexes have a strong probability of being true. If this assumption is incorrect, it could lead to a suboptimal query plan. The @@ -1002,23 +1026,13 @@ hints to the query planner about WHERE clause terms that are probably not true, and thus aid the query planner in selecting the best possible plan. -</p></li><li><p><b>Use the <a href="optoverview.html#crossjoin">CROSS JOIN</a> syntax to enforce a particular +</p></li><li><p style="color:grey;">Use the <a href="optoverview.html#crossjoin">CROSS JOIN</a> syntax to enforce a particular loop nesting order on queries that might use low-quality indexes in an -unanalyzed database.</b> -SQLite <a href="lang_select.html#crossjoin">treats the CROSS JOIN operator specially</a>, forcing the table to +unanalyzed database. +SQLite <a href="lang_select.html#crossjoin">treats the CROSS JOIN operator specially</a>, forcing the table to the left to be an outer loop relative to the table on the right.</p> -<p>Avoid this step if possible, as it defeats one of the huge advantages -of the whole SQL language concept, specifically that the application -programmer does not need to get involved with query planning. If you -do use CROSS JOIN, wait until late in your development cycle to do so, -and comment the use of CROSS JOIN carefully so that you can take it out -later if possible. Avoid using CROSS JOIN early in the development -cycle as doing so is a premature optimization, which is well known to -be <a href="http://c2.com/cgi/wiki?PrematureOptimization">the root of -all evil</a>.</p> - -</li><li><p><b>Use unary "+" operators to disqualify WHERE clause terms.</b> +</li><li><p style="color:grey;">Use unary "+" operators to disqualify WHERE clause terms. If the query planner insists on selecting a poor-quality index for a particular query when a much higher-quality index is available, then <a href="optoverview.html#uplus">careful use of unary "+" operators</a> in the WHERE clause @@ -1026,12 +1040,12 @@ can force the query planner away from the poor-quality index. Avoid using this trick if at all possible, and especially avoid it early in the application development cycle. Beware that adding a unary "+" operator to an equality expression might change -the result of that expression if +the result of that expression if <a href="datatype3.html#affinity">type affinity</a> is involved.</p> -</li><li><p><b>Use the <a href="lang_indexedby.html">INDEXED BY</a> syntax to enforce the selection of -particular indexes on problem queries.</b> -As with the previous two bullets, avoid this step if possible, and +</li><li><p style="color:grey;">Use the <a href="lang_indexedby.html">INDEXED BY</a> syntax to enforce the selection of +particular indexes on problem queries. +As with the previous two bullets, avoid this step if possible, and especially avoid doing this early in development as it is clearly a premature optimization.</p> </li></ol> @@ -1039,7 +1053,7 @@ premature optimization.</p> <h1 id="_summary"><span>6. </span> Summary</h1> <p>The query planner in SQLite normally does a terrific job of selecting -fast algorithms for running your SQL statements. This is true of the +fast algorithms for running your SQL statements. This is true of the legacy query planner and even more true of the new NGQP. There may be an occasional situation where, due to incomplete information, the query planner selects a suboptimal plan. This will happen less often with the diff --git a/www/quirks.html b/www/quirks.html index 4e053e9..4ddc439 100644 --- a/www/quirks.html +++ b/www/quirks.html @@ -142,6 +142,7 @@ That Are Not In The GROUP BY Clause</a></div> <div class="fancy-toc1"><a href="#autoincrement_does_not_work_the_same_as_mysql">11. AUTOINCREMENT Does Not Work The Same As MySQL</a></div> <div class="fancy-toc1"><a href="#nul_characters_are_allowed_in_text_strings">12. NUL Characters Are Allowed In Text Strings</a></div> <div class="fancy-toc1"><a href="#sqlite_distinguishes_between_integer_and_text_literals">13. SQLite Distinguishes Between Integer And Text Literals</a></div> +<div class="fancy-toc1"><a href="#sqlite_gets_the_precedence_of_comma_joins_wrong">14. SQLite Gets The Precedence Of Comma-Joins Wrong</a></div> </div> </div> <script> @@ -464,7 +465,7 @@ that can be done using the same C-code as shown above except with the third parameter changed from 0 to 1. </p><p> As of SQLite 3.41.0 (2023-02-21) SQLITE_DBCONFIG_DQS_DDL and -SQLTIE_DBCONFIG_DQS_DML are disabled by default in the <a href="cli.html">CLI</a>. Use +SQLITE_DBCONFIG_DQS_DML are disabled by default in the <a href="cli.html">CLI</a>. Use the ".dbconfig" dot-command to reenable the legacy behavior if desired. @@ -545,5 +546,93 @@ See the "<a href="nulinstr.html">NUL characters in strings</a>" document for fur <p>It does this because an integer is not a string. Every other major SQL database engine says this is true, for reasons that the creator of SQLite does not understand. -</p> + +</p><h1 id="sqlite_gets_the_precedence_of_comma_joins_wrong"><span>14. </span>SQLite Gets The Precedence Of Comma-Joins Wrong</h1> + +<p>SQLite gives all join operators equal precedence and processes them +from left to right. But this is not quite correct. It should be that +comma-joins have lower precedence than all others join operators. +In other words, a FROM clause like this: + +</p><blockquote><p> +... FROM a, b RIGHT JOIN c, d ... +</p></blockquote> + +<p>This FROM clause should be parsed as follows: + +</p><div class="imgcontainer"> +<div style="max-width:153px;"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 153.328 245.544"> +<path d="M67,32L120,32L120,2L67,2Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="93" y="17" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">JOIN</text> +<polygon points="53,72 58,61 65,67" style="fill:rgb(0,0,0)"/> +<path d="M93,32L57,68" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="134,72 122,67 128,61" style="fill:rgb(0,0,0)"/> +<path d="M93,32L129,68" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M27,102L80,102L80,72L27,72Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="53" y="87" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">JOIN</text> +<path d="M121,102L146,102L146,72L121,72Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="134" y="87" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">D</text> +<polygon points="13,142 18,131 24,137" style="fill:rgb(0,0,0)"/> +<path d="M53,102L17,138" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="93,142 82,137 88,131" style="fill:rgb(0,0,0)"/> +<path d="M53,102L89,138" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M36,173L151,173L151,142L36,142Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="93" y="157" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">RIGHTÂ JOIN</text> +<path d="M2,173L25,173L25,142L2,142Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="13" y="157" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">A</text> +<polygon points="53,213 58,201 65,208" style="fill:rgb(0,0,0)"/> +<path d="M93,173L57,209" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="134,213 122,208 128,201" style="fill:rgb(0,0,0)"/> +<path d="M93,173L129,209" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M42,243L65,243L65,213L42,213Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="53" y="228" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">B</text> +<path d="M121,243L146,243L146,213L121,213Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="134" y="228" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">C</text> +</svg> +</div> +</div> + +<p>But SQLite instead parses the FROM clause like this: + +</p><div class="imgcontainer"> +<div style="max-width:188px;"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 188.691 245.544"> +<path d="M107,32L160,32L160,2L107,2Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="134" y="17" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">JOIN</text> +<polygon points="93,72 99,61 105,67" style="fill:rgb(0,0,0)"/> +<path d="M134,32L98,68" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="174,72 162,67 169,61" style="fill:rgb(0,0,0)"/> +<path d="M134,32L170,68" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M36,102L151,102L151,72L36,72Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="93" y="87" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">RIGHTÂ JOIN</text> +<path d="M161,102L186,102L186,72L161,72Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="174" y="87" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">D</text> +<polygon points="53,142 58,131 65,137" style="fill:rgb(0,0,0)"/> +<path d="M93,102L57,138" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="134,142 122,137 128,131" style="fill:rgb(0,0,0)"/> +<path d="M93,102L129,138" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M27,173L80,173L80,142L27,142Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="53" y="157" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">JOIN</text> +<path d="M121,173L146,173L146,142L121,142Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="134" y="157" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">C</text> +<polygon points="13,213 18,201 24,208" style="fill:rgb(0,0,0)"/> +<path d="M53,173L17,209" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="93,213 82,208 88,201" style="fill:rgb(0,0,0)"/> +<path d="M53,173L89,209" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M2,243L25,243L25,213L2,213Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="13" y="228" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">A</text> +<path d="M82,243L105,243L105,213L82,213Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="93" y="228" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">B</text> +</svg> +</div> +</div> + +<p>The problem can only makes a difference in the result when using +RIGHT OUTER JOIN or FULL OUTER JOIN in the same FROM clause with +comma-joins, which rarely happens in practice. And +the problem can be easily overcome using parentheses in the FROM clause: + +</p><blockquote><p> +... FROM a, (b RIGHT JOIN c), d ... +</p></blockquote> +<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/quirks.in?m=e04aef4f57">2024-05-22 18:42:01</a> UTC </small></i></p> diff --git a/www/releaselog/3_13_0.html b/www/releaselog/3_13_0.html index 5490946..a197c7b 100644 --- a/www/releaselog/3_13_0.html +++ b/www/releaselog/3_13_0.html @@ -144,7 +144,7 @@ antiRobotDefense(); the table has one or more indexes that are able to trigger the OR optimization, but none of the indexes reference any table columns other than the INTEGER PRIMARY KEY. Ticket <a href="https://www.sqlite.org/src/info/16c9801ceba49">16c9801ceba49</a>. -<li>When checking for the WHERE-clause push-down optimization, verify that all terms +<li>When checking for the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a>, verify that all terms of the compound inner SELECT are non-aggregate, not just the last term. Fix for ticket <a href="https://www.sqlite.org/src/info/f7f8c97e97597">f7f8c97e97597</a>. <li>Fix a locking race condition in Windows that can occur when two or more processes diff --git a/www/releaselog/3_42_0.html b/www/releaselog/3_42_0.html index e5f5543..661ed3a 100644 --- a/www/releaselog/3_42_0.html +++ b/www/releaselog/3_42_0.html @@ -127,7 +127,7 @@ antiRobotDefense(); <ol type="a"> <li> Enable the "count-of-view" optimization by default. <li> Avoid computing unused columns in subqueries. - <li> Improvements to the <a href="../optoverview.html#pushdown">push-down optimization</a>. + <li> Improvements to the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a>. </ol> <li> Enhancements to the <a href="../cli.html">CLI</a>: <ol type="a"> diff --git a/www/releaselog/3_46_0.html b/www/releaselog/3_46_0.html new file mode 100644 index 0000000..5996306 --- /dev/null +++ b/www/releaselog/3_46_0.html @@ -0,0 +1,175 @@ +<!DOCTYPE html> +<html><head> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta http-equiv="content-type" content="text/html; charset=UTF-8"> +<link href="../sqlite.css" rel="stylesheet"> +<title>SQLite Release 3.46.0 On 2024-05-23</title> +<!-- path=../ --> +</head> +<body> +<div class=nosearch> +<a href="../index.html"> +<img class="logo" src="../images/sqlite370_banner.gif" alt="SQLite" border="0"> +</a> +<div><!-- IE hack to prevent disappearing logo --></div> +<div class="tagline desktoponly"> +Small. Fast. Reliable.<br>Choose any three. +</div> +<div class="menu mainmenu"> +<ul> +<li><a href="../index.html">Home</a> +<li class='mobileonly'><a href="javascript:void(0)" onclick='toggle_div("submenu")'>Menu</a> +<li class='wideonly'><a href='../about.html'>About</a> +<li class='desktoponly'><a href="../docs.html">Documentation</a> +<li class='desktoponly'><a href="../download.html">Download</a> +<li class='wideonly'><a href='../copyright.html'>License</a> +<li class='desktoponly'><a href="../support.html">Support</a> +<li class='desktoponly'><a href="../prosupport.html">Purchase</a> +<li class='search' id='search_menubutton'> +<a href="javascript:void(0)" onclick='toggle_search()'>Search</a> +</ul> +</div> +<div class="menu submenu" id="submenu"> +<ul> +<li><a href='../about.html'>About</a> +<li><a href='../docs.html'>Documentation</a> +<li><a href='../download.html'>Download</a> +<li><a href='../support.html'>Support</a> +<li><a href='../prosupport.html'>Purchase</a> +</ul> +</div> +<div class="searchmenu" id="searchmenu"> +<form method="GET" action="../search"> +<select name="s" id="searchtype"> +<option value="d">Search Documentation</option> +<option value="c">Search Changelog</option> +</select> +<input type="text" name="q" id="searchbox" value=""> +<input type="submit" value="Go"> +</form> +</div> +</div> +<script> +function toggle_div(nm) { +var w = document.getElementById(nm); +if( w.style.display=="block" ){ +w.style.display = "none"; +}else{ +w.style.display = "block"; +} +} +function toggle_search() { +var w = document.getElementById("searchmenu"); +if( w.style.display=="block" ){ +w.style.display = "none"; +} else { +w.style.display = "block"; +setTimeout(function(){ +document.getElementById("searchbox").focus() +}, 30); +} +} +function div_off(nm){document.getElementById(nm).style.display="none";} +window.onbeforeunload = function(e){div_off("submenu");} +/* Disable the Search feature if we are not operating from CGI, since */ +/* Search is accomplished using CGI and will not work without it. */ +if( !location.origin || !location.origin.match || !location.origin.match(/http/) ){ +document.getElementById("search_menubutton").style.display = "none"; +} +/* Used by the Hide/Show button beside syntax diagrams, to toggle the */ +function hideorshow(btn,obj){ +var x = document.getElementById(obj); +var b = document.getElementById(btn); +if( x.style.display!='none' ){ +x.style.display = 'none'; +b.innerHTML='show'; +}else{ +x.style.display = ''; +b.innerHTML='hide'; +} +return false; +} +var antiRobot = 0; +function antiRobotGo(){ +if( antiRobot!=3 ) return; +antiRobot = 7; +var j = document.getElementById("mtimelink"); +if(j && j.hasAttribute("data-href")) j.href=j.getAttribute("data-href"); +} +function antiRobotDefense(){ +document.body.onmousedown=function(){ +antiRobot |= 2; +antiRobotGo(); +document.body.onmousedown=null; +} +document.body.onmousemove=function(){ +antiRobot |= 2; +antiRobotGo(); +document.body.onmousemove=null; +} +setTimeout(function(){ +antiRobot |= 1; +antiRobotGo(); +}, 100) +antiRobotGo(); +} +antiRobotDefense(); +</script> +<h2>SQLite Release 3.46.0 On 2024-05-23</h2><p><ol class='lessindent'> +<li> Enhance <a href="../pragma.html#pragma_optimize">PRAGMA optimize</a> in multiple ways, to make it + <a href="../lang_analyze.html#pragopt">simpler to use</a>: + <ol type="a"> + <li> PRAGMA optimize automatically implements a temporary + <a href="../pragma.html#pragma_analysis_limit">analysis limit</a> to prevent excess runtime + on large databases. + <li> Added the new 0x10000 bitmask option to check for updates on all tables. + <li> Automatically re-analyze tables that do not have sqlite_stat1 entries. + </ol> +<li> Enhancements to the <a href="../lang_datefunc.html">date and time functions</a>: + <ol type="a"> + <li> The <a href="../lang_datefunc.html#strftm">strftime() SQL function</a> now supports %G, %g, %U, and %V. + <li> New modifiers 'ceiling' and 'floor' control the algorithm used to + resolve <a href="../lang_datefunc.html#dtambg">ambiguous dates</a> when shifting a date by an integer number + of months and/or years. + <li> The <a href="../lang_datefunc.html#localtime">'utc' and 'localtime' modifiers</a> are now no-ops if SQLite knows + that the time is already in UTC or in the localtime, respectively. + </ol> +<li> Add support for underscore ("_") characters between digits in + <a href="../lang_expr.html#litvalue">numeric literals</a>. +<li> Add the <a href="../json1.html#jpretty">json_pretty()</a> SQL function. +<li> Query planner improvements: + <ol type="a"> + <li> The "VALUES-as-coroutine" optimization enables INSERT statements with + thousands of rows in the VALUES clause to parse and run in about half + the time and using about half as much memory. + <li> Allow the use of an index for queries like "SELECT count(DISTINCT col) FROM ...", + even if the index records are not smaller than the table records. + <li> Improved recognition of cases where the value of an SQL function is + constant because all its arguments are constant. + <li> Enhance the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a> so that it is able to + push down WHERE clause terms containing uncorrelated subqueries. + </ol> +<li> Allocate additional memory from the heap for the SQL parser stack if + that stack overflows, rather than reporting a "parser stack overflow" error. +<li> JSON changes: + <ol type="a"> + <li> Allow ASCII control characters within JSON5 string literals. + <li> Fix <a href="../json1.html#jptr">the -> and ->> operators</a> so that when the right-hand side operand is a string + that looks like an integer it is still treated as a string, because that is what + PostgreSQL does. + </ol> +<li> Allow large hexadecimal literals to be used as the DEFAULT value to a table column. +<p><b>Hashes:</b> +<li>SQLITE_SOURCE_ID: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e +<li>SHA3-256 for sqlite3.c: 094429ea827fcd32275e767134bc6c7b9ea394a2c5a9e653dd0a0690b2c11358 + +</ol></p> + + <p>A <a href="../changes.html">complete list of SQLite releases</a> + in a single page and a <a href="../chronology.html">chronology</a> are both also available. + A detailed history of every + check-in is available at + <a href="https://www.sqlite.org/src/timeline"> + SQLite version control site</a>.</p> + + diff --git a/www/releaselog/3_9_0.html b/www/releaselog/3_9_0.html index 6a2127e..a1556ca 100644 --- a/www/releaselog/3_9_0.html +++ b/www/releaselog/3_9_0.html @@ -156,7 +156,7 @@ antiRobotDefense(); <a href="../c3ref/initialize.html">sqlite3_initialize()</a> to help ensure that it is thread-safe. <li>Fix the <a href="../optoverview.html#or_opt">OR optimization</a> so that it always ignores subplans that do not use an index. -<li>Do not apply the WHERE-clause pushdown optimization on terms that originate +<li>Do not apply the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a> on terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket <a href="https://www.sqlite.org/src/info/c2a19d81652f40568c">c2a19d81652f40568c</a>. diff --git a/www/releaselog/3_9_1.html b/www/releaselog/3_9_1.html index ead1a50..f272bac 100644 --- a/www/releaselog/3_9_1.html +++ b/www/releaselog/3_9_1.html @@ -157,7 +157,7 @@ antiRobotDefense(); <a href="../c3ref/initialize.html">sqlite3_initialize()</a> to help ensure that it is thread-safe. <li>Fix the <a href="../optoverview.html#or_opt">OR optimization</a> so that it always ignores subplans that do not use an index. -<li>Do not apply the WHERE-clause pushdown optimization on terms that originate +<li>Do not apply the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a> on terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket <a href="https://www.sqlite.org/src/info/c2a19d81652f40568c">c2a19d81652f40568c</a>. diff --git a/www/releaselog/3_9_2.html b/www/releaselog/3_9_2.html index dafeab9..54f6233 100644 --- a/www/releaselog/3_9_2.html +++ b/www/releaselog/3_9_2.html @@ -157,7 +157,7 @@ antiRobotDefense(); <a href="../c3ref/initialize.html">sqlite3_initialize()</a> to help ensure that it is thread-safe. <li>Fix the <a href="../optoverview.html#or_opt">OR optimization</a> so that it always ignores subplans that do not use an index. -<li>Do not apply the WHERE-clause pushdown optimization on terms that originate +<li>Do not apply the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a> on terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket <a href="https://www.sqlite.org/src/info/c2a19d81652f40568c">c2a19d81652f40568c</a>. diff --git a/www/releaselog/3_9_3.html b/www/releaselog/3_9_3.html index f354dd4..f228776 100644 --- a/www/releaselog/3_9_3.html +++ b/www/releaselog/3_9_3.html @@ -157,7 +157,7 @@ antiRobotDefense(); <a href="../c3ref/initialize.html">sqlite3_initialize()</a> to help ensure that it is thread-safe. <li>Fix the <a href="../optoverview.html#or_opt">OR optimization</a> so that it always ignores subplans that do not use an index. -<li>Do not apply the WHERE-clause pushdown optimization on terms that originate +<li>Do not apply the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a> on terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket <a href="https://www.sqlite.org/src/info/c2a19d81652f40568c">c2a19d81652f40568c</a>. diff --git a/www/releaselog/current.html b/www/releaselog/current.html index 4e6d9e3..5996306 100644 --- a/www/releaselog/current.html +++ b/www/releaselog/current.html @@ -3,7 +3,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link href="../sqlite.css" rel="stylesheet"> -<title>SQLite Release 3.45.3 On 2024-04-15</title> +<title>SQLite Release 3.46.0 On 2024-05-23</title> <!-- path=../ --> </head> <body> @@ -115,106 +115,53 @@ antiRobotGo(); } antiRobotDefense(); </script> -<h2>SQLite Release 3.45.3 On 2024-04-15</h2><p><b>Prior changes from version 3.45.0 (2024-01-15):</b></p> -<p><ol class='lessindent'> -<li value='1'> Added the <a href="../c3ref/c_deterministic.html#sqliteresultsubtype">SQLITE_RESULT_SUBTYPE</a> property for - <a href="../appfunc.html">application-defined SQL functions</a>. - All application defined SQL functions that invokes - <a href="../c3ref/result_subtype.html">sqlite3_result_subtype()</a> must be registered with this new property. - Failure to do so might cause the call to sqlite3_result_subtype() to - behave as a no-op. Compile with <a href="../compile.html#strict_subtype">-DSQLITE_STRICT_SUBTYPE=1</a> to cause an - SQL error to be raised if a function that is not <a href="../c3ref/c_deterministic.html#sqliteresultsubtype">SQLITE_RESULT_SUBTYPE</a> - tries invokes <a href="../c3ref/result_subtype.html">sqlite3_result_subtype()</a>. The use of <a href="../compile.html#strict_subtype">-DSQLITE_STRICT_SUBTYPE=1</a> - is a recommended compile-time option for every application that makes - use of subtypes. -<li> Enhancements to the <a href="../json1.html">JSON SQL functions</a>: - <ol type="a"> - <li> All JSON functions are rewritten to use a new internal parse tree - format called <a href="../json1.html#jsonbx">JSONB</a>. The new parse-tree format is serializable - and hence can be stored in the database to avoid unnecessary re-parsing - whenever the JSON value is used. - <li> New versions of JSON-generating functions generate binary JSONB instead - of JSON text. - <li> The <a href="../json1.html#jvalid">json_valid()</a> function adds an optional second argument that - specifies what it means for the first argument to be "well-formed". - </ol> -<li> Add the <a href="../fts5.html#the_tokendata_option">FTS5 tokendata option</a> to the <a href="../fts5.html">FTS5</a> virtual table. -<li> The <a href="../compile.html#direct_overflow_read">SQLITE_DIRECT_OVERFLOW_READ</a> optimization is now enabled by default. - Disable it at compile-time using -DSQLITE_DIRECT_OVERFLOW_READ=0. -<li> Query planner improvements: +<h2>SQLite Release 3.46.0 On 2024-05-23</h2><p><ol class='lessindent'> +<li> Enhance <a href="../pragma.html#pragma_optimize">PRAGMA optimize</a> in multiple ways, to make it + <a href="../lang_analyze.html#pragopt">simpler to use</a>: <ol type="a"> - <li> Do not allow the transitive constraint optimization to trick the - query planner into using a range constraint when a better equality - constraint is available. - (<a href="https://sqlite.org/forum/forumpost/2568d1f6e6">Forum post 2568d1f6e6</a>.) - <li> The query planner now does a better job of disregarding - indexes that <a href="../lang_analyze.html">ANALYZE</a> identifies as low-quality. - (<a href="https://sqlite.org/forum/forumpost/6f0958b03b">Forum post 6f0958b03b</a>.) + <li> PRAGMA optimize automatically implements a temporary + <a href="../pragma.html#pragma_analysis_limit">analysis limit</a> to prevent excess runtime + on large databases. + <li> Added the new 0x10000 bitmask option to check for updates on all tables. + <li> Automatically re-analyze tables that do not have sqlite_stat1 entries. </ol> -<li> Increase the default value for <a href="../limits.html#max_page_count">SQLITE_MAX_PAGE_COUNT</a> from 1073741824 to - 4294967294. -<li> Enhancements to the <a href="../cli.html">CLI</a>: +<li> Enhancements to the <a href="../lang_datefunc.html">date and time functions</a>: <ol type="a"> - <li> Improvements to the display of UTF-8 content on Windows - <li> Automatically detect playback of ".dump" scripts and make appropriate - changes to settings such as ".dbconfig defensive off" and - ".dbconfig dqs_dll on". + <li> The <a href="../lang_datefunc.html#strftm">strftime() SQL function</a> now supports %G, %g, %U, and %V. + <li> New modifiers 'ceiling' and 'floor' control the algorithm used to + resolve <a href="../lang_datefunc.html#dtambg">ambiguous dates</a> when shifting a date by an integer number + of months and/or years. + <li> The <a href="../lang_datefunc.html#localtime">'utc' and 'localtime' modifiers</a> are now no-ops if SQLite knows + that the time is already in UTC or in the localtime, respectively. </ol> -</ol> -<p><b>Prior changes from version 3.45.1 (2024-01-30):</b></p> -<p><ol class='lessindent'> -<li value='8'> Restore the <a href="../json1.html#jblobbug">JSON BLOB input bug</a>, and promise to support the anomaly in - subsequent releases, for backward compatibility. -<li> Fix the <a href="../pragma.html#pragma_integrity_check">PRAGMA integrity_check</a> command so that it works on read-only - databases that contain FTS3 and FTS5 tables. This resolves an issue - introduced in <a href="../releaselog/3_44_0.html">version 3.44.0</a> but was undiscovered until after the 3.45.0 release. -<li> Fix issues associated with processing corrupt <a href="../json1.html#jsonbx">JSONB</a> inputs: +<li> Add support for underscore ("_") characters between digits in + <a href="../lang_expr.html#litvalue">numeric literals</a>. +<li> Add the <a href="../json1.html#jpretty">json_pretty()</a> SQL function. +<li> Query planner improvements: <ol type="a"> - <li> Prevent exponential runtime when converting a corrupt JSONB into text. - <li> Fix a possible read of one byte past the end of the JSONB blob when converting - a corrupt JSONB into text. - <li> Enhanced testing using <a href="../testing.html#dbsqlfuzz">jfuzz</a> to prevent any future JSONB problems such - as the above. + <li> The "VALUES-as-coroutine" optimization enables INSERT statements with + thousands of rows in the VALUES clause to parse and run in about half + the time and using about half as much memory. + <li> Allow the use of an index for queries like "SELECT count(DISTINCT col) FROM ...", + even if the index records are not smaller than the table records. + <li> Improved recognition of cases where the value of an SQL function is + constant because all its arguments are constant. + <li> Enhance the <a href="../optoverview.html#pushdown">WHERE-clause push-down optimization</a> so that it is able to + push down WHERE clause terms containing uncorrelated subqueries. </ol> -<li> Fix a long-standing bug in which a read of a few bytes past the end of a - memory-mapped segment might occur when accessing a craftily corrupted database - using <a href="../pragma.html#pragma_mmap_size">memory-mapped database</a>. -<li> Fix a long-standing bug in which a NULL pointer dereference might occur in - the <a href="../opcode.html">bytecode engine</a> due to incorrect bytecode being generated for a class - of SQL statements that are deliberately designed to stress the query planner - but which are otherwise pointless. - -</ol> -<p><b>Prior changes from version 3.45.2 (2024-03-12):</b></p> -<p><ol class='lessindent'> -<li value='13'> Fix an error in <a href="../lang_upsert.html">UPSERT</a>, introduced by enhancement 3a in <a href="../releaselog/3_35_0.html">version 3.35.0</a> - (2021-03-12), that could cause an index to get out-of-sync with its table. - <a href="https://sqlite.org/forum/forumpost/919c6579c8">Forum thread 919c6579c8</a>. -<li> Reduce the scope of the NOT NULL strength reduction optimization that was - added as item 8e in <a href="../releaselog/3_35_0.html">version 3.35.0</a> (2021-03-12). The optimization - was being attempted in some contexts where it did not work, resulting in - incorrect query results. - <a href="https://sqlite.org/forum/forumpost/440f2a2f17">Forum thread 440f2a2f17</a>. -<li> Other trifling corrections and compiler warning fixes that have come up - since the previous patch release. See the - <a href="https://sqlite.org/src/timeline?from=version-3.45.1&to=version-3.45.2&to2=branch-3.45">timeline</a> - for details. -</ol> -<p><b>Changes in this specific patch release, version 3.45.3 (2024-04-15):</b></p> -<p><ol class='lessindent'> -<li value='16'> Fix a long-standing bug (going back to <a href="../releaselog/3_24_0.html">version 3.24.0</a>) - that might (rarely) cause the "old.*" values of an <a href="../lang_createtrigger.html">UPDATE trigger</a> - to be incorrect if that trigger fires in response to an <a href="../lang_upsert.html">UPSERT</a>. - <a href="https://sqlite.org/forum/forumpost/284955a3cd454a15">Forum post 284955a3cd454a15</a>. -<li> Fix a bug in <a href="../lang_aggfunc.html#sumunc">sum()</a> that could cause it to return NULL when it should return - Infinity. <a href="https://sqlite.org/forum/forumpost/23b8688ef4">Forum post 23b8688ef4</a>. -<li> Other trifling corrections and compiler warning fixes that have come up - since the previous patch release. See the - <a href="https://sqlite.org/src/timeline?from=version-3.45.2&to=version-3.45.3&to2=branch-3.45">timeline</a> - for details. +<li> Allocate additional memory from the heap for the SQL parser stack if + that stack overflows, rather than reporting a "parser stack overflow" error. +<li> JSON changes: + <ol type="a"> + <li> Allow ASCII control characters within JSON5 string literals. + <li> Fix <a href="../json1.html#jptr">the -> and ->> operators</a> so that when the right-hand side operand is a string + that looks like an integer it is still treated as a string, because that is what + PostgreSQL does. + </ol> +<li> Allow large hexadecimal literals to be used as the DEFAULT value to a table column. <p><b>Hashes:</b> -<li>SQLITE_SOURCE_ID: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355 -<li>SHA3-256 for sqlite3.c: 21dbe688a71b449d28e2a8ec6a43e7520e54df456e02b6d4f6a1d1c7a998c826 +<li>SQLITE_SOURCE_ID: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e +<li>SHA3-256 for sqlite3.c: 094429ea827fcd32275e767134bc6c7b9ea394a2c5a9e653dd0a0690b2c11358 </ol></p> @@ -1230,7 +1230,7 @@ proc searchresults {} { if {$q==""} {return ""} # Count the '"' characters in $::A(q). If there is an odd number of - # occurences, add a " to the end of the query so that fts5 can parse + # occurrences, add a " to the end of the query so that fts5 can parse # it without error. if {[regexp -all \x22 $q] % 2} { append q \x22 } diff --git a/www/search.d/search.db b/www/search.d/search.db Binary files differindex b48940d..31a4392 100644 --- a/www/search.d/search.db +++ b/www/search.d/search.db diff --git a/www/serverless.html b/www/serverless.html index 57090cd..a359751 100644 --- a/www/serverless.html +++ b/www/serverless.html @@ -201,7 +201,7 @@ to help provide database services or implementation. There really is no server. </p><p> -<a href="https://docs.microsoft.com/en-us/azure/cosmos-db/serverless-computing-database">Microsoft Azure Cosmo DB</a> +<a href="https://docs.microsoft.com/en-us/azure/cosmos-db/serverless-computing-database">Microsoft Azure Cosmos DB</a> and <a href="https://aws.amazon.com/s3/">Amazon S3</a> are examples of a neo-serverless databases. diff --git a/www/session.html b/www/session.html index dacb386..20fd7d2 100644 --- a/www/session.html +++ b/www/session.html @@ -175,6 +175,7 @@ code file sqlite3session.h.</p> <div class='columns' style='columns: 15em auto;'> <ul style='padding-top:0;'> <li><a href='#sqlite3changegroup_add'>sqlite3changegroup_add</a></li> +<li><a href='#sqlite3changegroup_add_change'>sqlite3changegroup_add_change</a></li> <li><a href='#sqlite3changegroup_add_strm'>sqlite3changegroup_add_strm</a></li> <li><a href='#sqlite3changegroup_delete'>sqlite3changegroup_delete</a></li> <li><a href='#sqlite3changegroup_new'>sqlite3changegroup_new</a></li> @@ -247,6 +248,7 @@ A changegroup is an object used to combine two or more <p>Destructor: <a href="#sqlite3changegroup_delete">sqlite3changegroup_delete()</a></p> <p>Methods: <a href="#sqlite3changegroup_add">sqlite3changegroup_add()</a>, +<a href="#sqlite3changegroup_add_change">sqlite3changegroup_add_change()</a>, <a href="#sqlite3changegroup_output">sqlite3changegroup_output()</a></p> <hr><a name="sqlite3_changeset_iter"></a> <h2>Changeset Iterator Handle</h2><blockquote><pre>typedef struct sqlite3_changeset_iter sqlite3_changeset_iter; @@ -465,6 +467,24 @@ occurs during processing, this function returns SQLITE_NOMEM. </p> <p>In all cases, if an error occurs the state of the final contents of the changegroup is undefined. If no error occurs, SQLITE_OK is returned. +</p><hr><a name="sqlite3changegroup_add_change"></a> +<h2>Add A Single Change To A Changegroup</h2><blockquote><pre>int sqlite3changegroup_add_change( + sqlite3_changegroup*, + sqlite3_changeset_iter* +); +</pre></blockquote><p> +This function adds the single change currently indicated by the iterator +passed as the second argument to the changegroup object. The rules for +adding the change are just as described for <a href="#sqlite3changegroup_add">sqlite3changegroup_add()</a>.</p> + +<p>If the change is successfully added to the changegroup, SQLITE_OK is +returned. Otherwise, an SQLite error code is returned.</p> + +<p>The iterator must point to a valid entry when this function is called. +If it does not, SQLITE_ERROR is returned and no change is added to the +changegroup. Additionally, the iterator must not have been opened with +the SQLITE_CHANGESETAPPLY_INVERT flag. In this case SQLITE_ERROR is also +returned. </p><hr><a name="sqlite3changegroup_delete"></a> <h2>Delete A Changegroup Object</h2><blockquote><pre>void sqlite3changegroup_delete(sqlite3_changegroup*); </pre></blockquote><p></p><hr><a name="sqlite3changegroup_new"></a> diff --git a/www/session/changegroup.html b/www/session/changegroup.html index e1cc234..fd6d2e1 100644 --- a/www/session/changegroup.html +++ b/www/session/changegroup.html @@ -123,6 +123,7 @@ A changegroup is an object used to combine two or more <p>Destructor: <a href="../session/sqlite3changegroup_delete.html">sqlite3changegroup_delete()</a></p> <p>Methods: <a href="../session/sqlite3changegroup_add.html">sqlite3changegroup_add()</a>, +<a href="../session/sqlite3changegroup_add_change.html">sqlite3changegroup_add_change()</a>, <a href="../session/sqlite3changegroup_output.html">sqlite3changegroup_output()</a></p> <p>See also lists of <a href="../session/objlist.html">Objects</a>, diff --git a/www/session/funclist.html b/www/session/funclist.html index 4bae3fa..fc5bc63 100644 --- a/www/session/funclist.html +++ b/www/session/funclist.html @@ -121,6 +121,7 @@ antiRobotDefense(); <div class='columns' style='columns: 15em auto;'> <ul style='padding-top:0;'> <li><a href='../session/sqlite3changegroup_add.html'>sqlite3changegroup_add</a></li> +<li><a href='../session/sqlite3changegroup_add_change.html'>sqlite3changegroup_add_change</a></li> <li><a href='../session/sqlite3changegroup_add_strm.html'>sqlite3changegroup_add_strm</a></li> <li><a href='../session/sqlite3changegroup_delete.html'>sqlite3changegroup_delete</a></li> <li><a href='../session/sqlite3changegroup_new.html'>sqlite3changegroup_new</a></li> diff --git a/www/session/sqlite3changegroup_add_change.html b/www/session/sqlite3changegroup_add_change.html new file mode 100644 index 0000000..1d9b144 --- /dev/null +++ b/www/session/sqlite3changegroup_add_change.html @@ -0,0 +1,139 @@ +<!DOCTYPE html> +<html><head> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta http-equiv="content-type" content="text/html; charset=UTF-8"> +<link href="../sqlite.css" rel="stylesheet"> +<title>Add A Single Change To A Changegroup</title> +<!-- path=../ --> +</head> +<body> +<div class=nosearch> +<a href="../index.html"> +<img class="logo" src="../images/sqlite370_banner.gif" alt="SQLite" border="0"> +</a> +<div><!-- IE hack to prevent disappearing logo --></div> +<div class="tagline desktoponly"> +Small. Fast. Reliable.<br>Choose any three. +</div> +<div class="menu mainmenu"> +<ul> +<li><a href="../index.html">Home</a> +<li class='mobileonly'><a href="javascript:void(0)" onclick='toggle_div("submenu")'>Menu</a> +<li class='wideonly'><a href='../about.html'>About</a> +<li class='desktoponly'><a href="../docs.html">Documentation</a> +<li class='desktoponly'><a href="../download.html">Download</a> +<li class='wideonly'><a href='../copyright.html'>License</a> +<li class='desktoponly'><a href="../support.html">Support</a> +<li class='desktoponly'><a href="../prosupport.html">Purchase</a> +<li class='search' id='search_menubutton'> +<a href="javascript:void(0)" onclick='toggle_search()'>Search</a> +</ul> +</div> +<div class="menu submenu" id="submenu"> +<ul> +<li><a href='../about.html'>About</a> +<li><a href='../docs.html'>Documentation</a> +<li><a href='../download.html'>Download</a> +<li><a href='../support.html'>Support</a> +<li><a href='../prosupport.html'>Purchase</a> +</ul> +</div> +<div class="searchmenu" id="searchmenu"> +<form method="GET" action="../search"> +<select name="s" id="searchtype"> +<option value="d">Search Documentation</option> +<option value="c">Search Changelog</option> +</select> +<input type="text" name="q" id="searchbox" value=""> +<input type="submit" value="Go"> +</form> +</div> +</div> +<script> +function toggle_div(nm) { +var w = document.getElementById(nm); +if( w.style.display=="block" ){ +w.style.display = "none"; +}else{ +w.style.display = "block"; +} +} +function toggle_search() { +var w = document.getElementById("searchmenu"); +if( w.style.display=="block" ){ +w.style.display = "none"; +} else { +w.style.display = "block"; +setTimeout(function(){ +document.getElementById("searchbox").focus() +}, 30); +} +} +function div_off(nm){document.getElementById(nm).style.display="none";} +window.onbeforeunload = function(e){div_off("submenu");} +/* Disable the Search feature if we are not operating from CGI, since */ +/* Search is accomplished using CGI and will not work without it. */ +if( !location.origin || !location.origin.match || !location.origin.match(/http/) ){ +document.getElementById("search_menubutton").style.display = "none"; +} +/* Used by the Hide/Show button beside syntax diagrams, to toggle the */ +function hideorshow(btn,obj){ +var x = document.getElementById(obj); +var b = document.getElementById(btn); +if( x.style.display!='none' ){ +x.style.display = 'none'; +b.innerHTML='show'; +}else{ +x.style.display = ''; +b.innerHTML='hide'; +} +return false; +} +var antiRobot = 0; +function antiRobotGo(){ +if( antiRobot!=3 ) return; +antiRobot = 7; +var j = document.getElementById("mtimelink"); +if(j && j.hasAttribute("data-href")) j.href=j.getAttribute("data-href"); +} +function antiRobotDefense(){ +document.body.onmousedown=function(){ +antiRobot |= 2; +antiRobotGo(); +document.body.onmousedown=null; +} +document.body.onmousemove=function(){ +antiRobot |= 2; +antiRobotGo(); +document.body.onmousemove=null; +} +setTimeout(function(){ +antiRobot |= 1; +antiRobotGo(); +}, 100) +antiRobotGo(); +} +antiRobotDefense(); +</script> +<a href="../session/intro.html"><h2>Session Module C Interface</h2></a><h2>Add A Single Change To A Changegroup</h2><blockquote><pre>int sqlite3changegroup_add_change( + sqlite3_changegroup*, + sqlite3_changeset_iter* +); +</pre></blockquote><p> +This function adds the single change currently indicated by the iterator +passed as the second argument to the changegroup object. The rules for +adding the change are just as described for <a href="../session/sqlite3changegroup_add.html">sqlite3changegroup_add()</a>.</p> + +<p>If the change is successfully added to the changegroup, SQLITE_OK is +returned. Otherwise, an SQLite error code is returned.</p> + +<p>The iterator must point to a valid entry when this function is called. +If it does not, SQLITE_ERROR is returned and no change is added to the +changegroup. Additionally, the iterator must not have been opened with +the SQLITE_CHANGESETAPPLY_INVERT flag. In this case SQLITE_ERROR is also +returned. +</p><p>See also lists of + <a href="../session/objlist.html">Objects</a>, + <a href="../session/constlist.html">Constants</a>, and + <a href="../session/funclist.html">Functions</a>.</p> + diff --git a/www/sessionintro.html b/www/sessionintro.html index 7349cff..efde36f 100644 --- a/www/sessionintro.html +++ b/www/sessionintro.html @@ -518,7 +518,7 @@ static int xConflict(void *pCtx, int eConflict, sqlite3_changset_iter *pIter){ ** ** If parameter bIgnoreConflicts is true, then any conflicting changes ** within the changeset are simply ignored. Or, if bIgnoreConflicts is -** false, then this call fails with an SQLTIE_ABORT error if a changeset +** false, then this call fails with an SQLITE_ABORT error if a changeset ** conflict is encountered. */</i> int apply_changeset( diff --git a/www/sitemap.html b/www/sitemap.html index aa1548e..f83cb3f 100644 --- a/www/sitemap.html +++ b/www/sitemap.html @@ -189,6 +189,7 @@ Other Documentation Indices: <li><b><a href="lang_mathfunc.html">Built In Mathematical SQL Functions</a></b></li> <li><a href="printf.html">Built in printf() — SQLite's</a></li> <li><b><a href="lang_corefunc.html">Built In Scalar SQL Functions</a></b></li> +<li><a href="whybytecode.html">Bytecode — Why SQLite Uses</a></li> <li><a href="opcode.html">Bytecode Engine — The SQLite</a></li> <li><a href="bytecodevtab.html">Bytecode() And Tables_Used() Table Valued Functions — The</a></li> <li><b><a href="capi3ref.html">C/C++ API Reference</a></b></li> @@ -702,6 +703,7 @@ Other Documentation Indices: <li><a href="tempfiles.html">Used By SQLite — Temporary Files</a></li> <li><a href="affcase1.html">Used SQLite? — What If OpenDocument</a></li> <li><a href="famous.html">Users Of SQLite — Well Known</a></li> +<li><a href="whybytecode.html">Uses Bytecode — Why SQLite</a></li> <li><a href="whentouse.html">Uses For SQLite — Appropriate</a></li> <li><b><a href="threadsafe.html">Using SQLite In Multi Threaded Applications</a></b></li> <li><a href="invalidutf.html">UTF Policy — Invalid</a></li> @@ -750,6 +752,7 @@ Other Documentation Indices: <li><b><a href="affcase1.html">What If OpenDocument Used SQLite?</a></b></li> <li><b><a href="whyc.html">Why Is SQLite Coded In C</a></b></li> <li><b><a href="whynotgit.html">Why SQLite Does Not Use Git</a></b></li> +<li><b><a href="whybytecode.html">Why SQLite Uses Bytecode</a></b></li> <li><a href="mostdeployed.html">Widely Deployed SQL Database Engine — Most</a></li> <li><b><a href="windowfunctions.html">Window Functions</a></b></li> <li><a href="lang_with.html">WITH Clause — The</a></li> diff --git a/www/syntax/numeric-literal.html b/www/syntax/numeric-literal.html index 10e389b..3886e2a 100644 --- a/www/syntax/numeric-literal.html +++ b/www/syntax/numeric-literal.html @@ -117,99 +117,137 @@ antiRobotDefense(); </script> <h1 align='center'>numeric-literal</h1> <div class='imgcontainer'> -<div style="max-width:765px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 765.562 214.056"> -<circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="63,36 51,41 51,32" style="fill:rgb(0,0,0)"/> -<path d="M9,36L57,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M78,51L98,51A15 15 0 0 0 113 36A15 15 0 0 0 98 21L78,21A15 15 0 0 0 63 36A15 15 0 0 0 78 51Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="88" y="36" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> -<polygon points="88,6 99,2 99,10" style="fill:rgb(0,0,0)"/> -<path d="M113,36 L 121,36 Q 128,36 128,21 L 128,21 Q 128,6 113,6 L 109,6 L 94,6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M88,6 L 51,6 Q 36,6 36,21 L 36,21 Q 36,36 44,36 L 51,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="176,66 164,71 164,62" style="fill:rgb(0,0,0)"/> -<path d="M113,36 L 134,36 Q 149,36 149,51 L 149,51 Q 149,66 159,66 L 170,66" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M191,82A15 15 0 0 0 206 66L206,66A15 15 0 0 0 191 51A15 15 0 0 0 176 66L176,66A15 15 0 0 0 191 82Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="191" y="66" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">.</text> -<polygon points="267,66 255,71 255,62" style="fill:rgb(0,0,0)"/> -<path d="M206,66L261,66" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="340,66 328,71 328,62" style="fill:rgb(0,0,0)"/> -<path d="M267,66L334,66" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="381,36 370,41 370,32" style="fill:rgb(0,0,0)"/> -<path d="M340,66 L 347,66 Q 355,66 355,51 L 355,51 Q 355,36 365,36 L 375,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="423,74 411,78 411,70" style="fill:rgb(0,0,0)"/> -<path d="M381,36 L 389,36 Q 396,36 396,51 L 396,59 Q 396,74 406,74 L 417,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M438,89A15 15 0 0 0 453 74L453,74A15 15 0 0 0 438 59A15 15 0 0 0 423 74L423,74A15 15 0 0 0 438 89Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="438" y="74" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">E</text> -<polygon points="494,74 483,78 483,70" style="fill:rgb(0,0,0)"/> -<path d="M453,74L489,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="423,112 411,116 411,108" style="fill:rgb(0,0,0)"/> -<path d="M381,36 L 389,36 Q 396,36 396,51 L 396,97 Q 396,112 406,112 L 417,112" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M438,127A15 15 0 0 0 453 112A15 15 0 0 0 438 97A15 15 0 0 0 423 112A15 15 0 0 0 438 127Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="438" y="112" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">e</text> -<path d="M453,112 L 460,112 Q 468,112 468,97 L 468,89 Q 468,74 475,74 L 483,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M257,112L277,112A15 15 0 0 0 292 97L292,97A15 15 0 0 0 277 82L257,82A15 15 0 0 0 242 97L242,97A15 15 0 0 0 257 112Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="267" y="97" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> -<polygon points="292,97 304,92 304,101" style="fill:rgb(0,0,0)"/> -<path d="M267,66 L 304,66 Q 319,66 319,81 L 319,82 Q 319,97 308,97 L 298,97" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M242,97 L 234,97 Q 227,97 227,82 L 227,81 Q 227,66 234,66 L 242,66" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="267,36 255,41 255,32" style="fill:rgb(0,0,0)"/> -<path d="M113,36L261,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M267,36L370,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="50,135 39,139 39,130" style="fill:rgb(0,0,0)"/> -<path d="M9,36 L 16,36 Q 24,36 24,51 L 24,120 Q 24,135 34,135 L 45,135" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M66,150A15 15 0 0 0 81 135A15 15 0 0 0 66 119A15 15 0 0 0 50 135A15 15 0 0 0 66 150Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="66" y="135" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">.</text> -<polygon points="117,135 105,139 105,130" style="fill:rgb(0,0,0)"/> -<path d="M81,135L111,135" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M132,150L152,150A15 15 0 0 0 167 135A15 15 0 0 0 152 119L132,119A15 15 0 0 0 117 135A15 15 0 0 0 132 150Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="142" y="135" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> -<polygon points="340,135 328,139 328,130" style="fill:rgb(0,0,0)"/> -<path d="M167,135L334,135" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M340,135 L 347,135 Q 355,135 355,120 L 355,66 L 355,51" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="142,104 153,100 153,109" style="fill:rgb(0,0,0)"/> -<path d="M167,135 L 174,135 Q 182,135 182,120 L 182,119 Q 182,104 167,104 L 162,104 L 147,104" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M142,104 L 105,104 Q 90,104 90,119 L 90,120 Q 90,135 98,135 L 105,135" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="536,142 524,146 524,138" style="fill:rgb(0,0,0)"/> -<path d="M494,74 L 502,74 Q 509,74 509,89 L 509,127 Q 509,142 520,142 L 530,142" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M551,157A15 15 0 0 0 566 142A15 15 0 0 0 551 127A15 15 0 0 0 536 142A15 15 0 0 0 551 157Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="551" y="142" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">-</text> -<polygon points="628,74 616,78 616,70" style="fill:rgb(0,0,0)"/> -<path d="M566,142 L 574,142 Q 581,142 581,127 L 581,89 Q 581,74 596,74 L 607,74 L 622,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M643,89L663,89A15 15 0 0 0 678 74L678,74A15 15 0 0 0 663 59L643,59A15 15 0 0 0 628 74L628,74A15 15 0 0 0 643 89Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="653" y="74" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> -<polygon points="714,74 703,78 703,70" style="fill:rgb(0,0,0)"/> -<path d="M678,74L708,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="756,36 744,41 744,32" style="fill:rgb(0,0,0)"/> -<path d="M714,74 L 722,74 Q 729,74 729,59 L 729,51 Q 729,36 740,36 L 750,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<circle cx="759" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="536,104 524,109 524,100" style="fill:rgb(0,0,0)"/> -<path d="M494,74 L 502,74 Q 509,74 509,89 L 509,89 Q 509,104 520,104 L 530,104" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M551,119A15 15 0 0 0 566 104A15 15 0 0 0 551 89A15 15 0 0 0 536 104A15 15 0 0 0 551 119Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="551" y="104" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">+</text> -<path d="M566,104 L 574,104 Q 581,104 581,97 L 581,89" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="551,36 540,41 540,32" style="fill:rgb(0,0,0)"/> -<path d="M381,36L545,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M551,36L744,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="551,74 540,78 540,70" style="fill:rgb(0,0,0)"/> -<path d="M494,74L545,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M551,74L616,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="653,50 665,46 665,54" style="fill:rgb(0,0,0)"/> -<path d="M678,74 L 686,74 Q 693,74 693,62 Q 693,50 678,50 L 674,50 L 659,50" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M653,50 L 616,50 Q 601,50 601,62 Q 601,74 609,74 L 616,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="50,180 39,184 39,176" style="fill:rgb(0,0,0)"/> -<path d="M9,36 L 16,36 Q 24,36 24,51 L 24,165 Q 24,180 34,180 L 45,180" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M66,195L69,195A15 15 0 0 0 84 180A15 15 0 0 0 69 165L66,165A15 15 0 0 0 50 180A15 15 0 0 0 66 195Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="67" y="180" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">0x</text> -<polygon points="120,180 108,184 108,176" style="fill:rgb(0,0,0)"/> -<path d="M84,180L114,180" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M135,195L185,195A15 15 0 0 0 200 180A15 15 0 0 0 185 165L135,165A15 15 0 0 0 120 180A15 15 0 0 0 135 195Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="160" y="180" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">hexdigit</text> -<polygon points="714,180 703,184 703,176" style="fill:rgb(0,0,0)"/> -<path d="M200,180L708,180" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M714,180 L 722,180 Q 729,180 729,165 L 729,74 L 729,59" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="160,207 171,203 171,211" style="fill:rgb(0,0,0)"/> -<path d="M200,180 L 207,180 Q 215,180 215,193 Q 215,207 200,207 L 180,207 L 165,207" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M160,207 L 108,207 Q 93,207 93,193 Q 93,180 101,180 L 108,180" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<div style="max-width:765px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 765.562 285.552"> +<circle cx="5" cy="62" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="63,62 51,66 51,58" style="fill:rgb(0,0,0)"/> +<path d="M9,62L57,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M78,77L98,77A15 15 0 0 0 113 62A15 15 0 0 0 98 47L78,47A15 15 0 0 0 63 62A15 15 0 0 0 78 77Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="88" y="62" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> +<path d="M88,32A15 15 0 0 0 103 17A15 15 0 0 0 88 2A15 15 0 0 0 73 17A15 15 0 0 0 88 32Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="88" y="17" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="103,38 115,34 115,42" style="fill:rgb(0,0,0)"/> +<path d="M113,62 L 121,62 Q 128,62 128,50 Q 128,38 118,38 L 109,38" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M103,38 L 51,38 Q 36,38 36,50 Q 36,62 44,62 L 51,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="103,17 115,12 115,21" style="fill:rgb(0,0,0)"/> +<path d="M113,62 L 121,62 Q 128,62 128,47 L 128,32 Q 128,17 118,17 L 109,17" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="63,62 51,66 51,58" style="fill:rgb(0,0,0)"/> +<path d="M73,17 L 51,17 Q 36,17 36,32 L 36,47 Q 36,62 47,62 L 57,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="176,92 164,97 164,88" style="fill:rgb(0,0,0)"/> +<path d="M113,62 L 134,62 Q 149,62 149,77 L 149,77 Q 149,92 159,92 L 170,92" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M191,108A15 15 0 0 0 206 92L206,92A15 15 0 0 0 191 77A15 15 0 0 0 176 92L176,92A15 15 0 0 0 191 108Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="191" y="92" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">.</text> +<polygon points="267,92 255,97 255,88" style="fill:rgb(0,0,0)"/> +<path d="M206,92L261,92" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="340,92 328,97 328,88" style="fill:rgb(0,0,0)"/> +<path d="M267,92L334,92" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="381,62 370,66 370,58" style="fill:rgb(0,0,0)"/> +<path d="M340,92 L 347,92 Q 355,92 355,77 L 355,77 Q 355,62 365,62 L 375,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="423,100 411,104 411,96" style="fill:rgb(0,0,0)"/> +<path d="M381,62 L 389,62 Q 396,62 396,77 L 396,85 Q 396,100 406,100 L 417,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M438,115A15 15 0 0 0 453 100L453,100A15 15 0 0 0 438 85A15 15 0 0 0 423 100L423,100A15 15 0 0 0 438 115Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="438" y="100" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">E</text> +<polygon points="494,100 483,104 483,96" style="fill:rgb(0,0,0)"/> +<path d="M453,100L489,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="423,138 411,142 411,133" style="fill:rgb(0,0,0)"/> +<path d="M381,62 L 389,62 Q 396,62 396,77 L 396,123 Q 396,138 406,138 L 417,138" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M438,153A15 15 0 0 0 453 138A15 15 0 0 0 438 123A15 15 0 0 0 423 138A15 15 0 0 0 438 153Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="438" y="138" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">e</text> +<path d="M453,138 L 460,138 Q 468,138 468,123 L 468,115 Q 468,100 475,100 L 483,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M257,132L277,132A15 15 0 0 0 292 117A15 15 0 0 0 277 101L257,101A15 15 0 0 0 242 117A15 15 0 0 0 257 132Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="267" y="117" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> +<path d="M267,168A15 15 0 0 0 282 153A15 15 0 0 0 267 138A15 15 0 0 0 252 153A15 15 0 0 0 267 168Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="267" y="153" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="292,117 304,112 304,121" style="fill:rgb(0,0,0)"/> +<path d="M267,92 L 304,92 Q 319,92 319,104 Q 319,117 308,117 L 298,117" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M242,117 L 234,117 Q 227,117 227,104 Q 227,92 234,92 L 242,92" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="252,153 240,157 240,149" style="fill:rgb(0,0,0)"/> +<path d="M242,117 L 234,117 Q 227,117 227,132 L 227,138 Q 227,153 236,153 L 246,153" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="292,117 304,112 304,121" style="fill:rgb(0,0,0)"/> +<path d="M282,153 L 304,153 Q 319,153 319,138 L 319,132 Q 319,117 308,117 L 298,117" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="267,62 255,66 255,58" style="fill:rgb(0,0,0)"/> +<path d="M113,62L261,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M267,62L370,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="50,177 39,181 39,173" style="fill:rgb(0,0,0)"/> +<path d="M9,62 L 16,62 Q 24,62 24,77 L 24,162 Q 24,177 34,177 L 45,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M66,192A15 15 0 0 0 81 177A15 15 0 0 0 66 162A15 15 0 0 0 50 177A15 15 0 0 0 66 192Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="66" y="177" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">.</text> +<polygon points="117,177 105,181 105,173" style="fill:rgb(0,0,0)"/> +<path d="M81,177L111,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M132,192L152,192A15 15 0 0 0 167 177A15 15 0 0 0 152 162L132,162A15 15 0 0 0 117 177A15 15 0 0 0 132 192Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="142" y="177" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> +<path d="M142,147A15 15 0 0 0 157 132A15 15 0 0 0 142 117A15 15 0 0 0 127 132A15 15 0 0 0 142 147Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="142" y="132" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="340,177 328,181 328,173" style="fill:rgb(0,0,0)"/> +<path d="M167,177L334,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M340,177 L 347,177 Q 355,177 355,162 L 355,92 L 355,77" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="157,153 168,149 168,157" style="fill:rgb(0,0,0)"/> +<path d="M167,177 L 174,177 Q 182,177 182,165 Q 182,153 172,153 L 163,153" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M157,153 L 105,153 Q 90,153 90,165 Q 90,177 98,177 L 105,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="157,132 168,127 168,136" style="fill:rgb(0,0,0)"/> +<path d="M167,177 L 174,177 Q 182,177 182,162 L 182,147 Q 182,132 172,132 L 163,132" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="105,177 94,181 94,173" style="fill:rgb(0,0,0)"/> +<path d="M127,132 L 105,132 Q 90,132 90,147 L 90,162 Q 90,177 95,177 L 99,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="536,168 524,172 524,164" style="fill:rgb(0,0,0)"/> +<path d="M494,100 L 502,100 Q 509,100 509,115 L 509,153 Q 509,168 520,168 L 530,168" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M551,183A15 15 0 0 0 566 168A15 15 0 0 0 551 153A15 15 0 0 0 536 168A15 15 0 0 0 551 183Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="551" y="168" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">-</text> +<polygon points="628,100 616,104 616,96" style="fill:rgb(0,0,0)"/> +<path d="M566,168 L 574,168 Q 581,168 581,153 L 581,115 Q 581,100 596,100 L 607,100 L 622,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M643,115L663,115A15 15 0 0 0 678 100L678,100A15 15 0 0 0 663 85L643,85A15 15 0 0 0 628 100L628,100A15 15 0 0 0 643 115Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="653" y="100" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> +<path d="M653,151A15 15 0 0 0 668 136A15 15 0 0 0 653 121A15 15 0 0 0 638 136A15 15 0 0 0 653 151Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="653" y="136" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="714,100 703,104 703,96" style="fill:rgb(0,0,0)"/> +<path d="M678,100L708,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="756,62 744,66 744,58" style="fill:rgb(0,0,0)"/> +<path d="M714,100 L 722,100 Q 729,100 729,85 L 729,77 Q 729,62 740,62 L 750,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<circle cx="759" cy="62" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="536,130 524,135 524,126" style="fill:rgb(0,0,0)"/> +<path d="M494,100 L 502,100 Q 509,100 509,115 L 509,115 Q 509,130 520,130 L 530,130" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M551,145A15 15 0 0 0 566 130A15 15 0 0 0 551 115A15 15 0 0 0 536 130A15 15 0 0 0 551 145Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="551" y="130" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">+</text> +<path d="M566,130 L 574,130 Q 581,130 581,123 L 581,115" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="551,62 540,66 540,58" style="fill:rgb(0,0,0)"/> +<path d="M381,62L545,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M551,62L744,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="551,100 540,104 540,96" style="fill:rgb(0,0,0)"/> +<path d="M494,100L545,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M551,100L616,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="653,76 665,71 665,80" style="fill:rgb(0,0,0)"/> +<path d="M678,100 L 686,100 Q 693,100 693,88 Q 693,76 678,76 L 674,76 L 659,76" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M653,76 L 616,76 Q 601,76 601,88 Q 601,100 609,100 L 616,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="668,136 680,132 680,141" style="fill:rgb(0,0,0)"/> +<path d="M678,100 L 686,100 Q 693,100 693,115 L 693,121 Q 693,136 684,136 L 674,136" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="628,100 616,104 616,96" style="fill:rgb(0,0,0)"/> +<path d="M638,136 L 616,136 Q 601,136 601,121 L 601,115 Q 601,100 612,100 L 622,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="50,222 39,227 39,218" style="fill:rgb(0,0,0)"/> +<path d="M9,62 L 16,62 Q 24,62 24,77 L 24,207 Q 24,222 34,222 L 45,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M66,238L69,238A15 15 0 0 0 84 222A15 15 0 0 0 69 207L66,207A15 15 0 0 0 50 222A15 15 0 0 0 66 238Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="67" y="222" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">0x</text> +<polygon points="155,222 144,227 144,218" style="fill:rgb(0,0,0)"/> +<path d="M84,222L149,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="197,222 185,227 185,218" style="fill:rgb(0,0,0)"/> +<path d="M155,222L191,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M64,277L70,277A15 15 0 0 0 85 262A15 15 0 0 0 70 247L64,247A15 15 0 0 0 49 262A15 15 0 0 0 64 277Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="67" y="262" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">0X</text> +<path d="M212,238L262,238A15 15 0 0 0 277 222A15 15 0 0 0 262 207L212,207A15 15 0 0 0 197 222A15 15 0 0 0 212 238Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="237" y="222" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">hexdigit</text> +<path d="M237,283A15 15 0 0 0 252 268A15 15 0 0 0 237 253A15 15 0 0 0 222 268A15 15 0 0 0 237 283Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="237" y="268" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="714,222 703,227 703,218" style="fill:rgb(0,0,0)"/> +<path d="M277,222L708,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M714,222 L 722,222 Q 729,222 729,207 L 729,100 L 729,85" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="49,262 38,266 38,257" style="fill:rgb(0,0,0)"/> +<path d="M24,202 L 24,247 Q 24,262 34,262 L 43,262" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="197,222 185,227 185,218" style="fill:rgb(0,0,0)"/> +<path d="M85,262 L 92,262 Q 100,262 100,247 L 100,237 Q 100,222 115,222 L 176,222 L 191,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="252,247 263,242 263,251" style="fill:rgb(0,0,0)"/> +<path d="M277,222 L 284,222 Q 292,222 292,235 Q 292,247 277,247 L 273,247 L 258,247" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M252,247 L 185,247 Q 170,247 170,235 Q 170,222 178,222 L 185,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="252,268 263,263 263,272" style="fill:rgb(0,0,0)"/> +<path d="M277,222 L 284,222 Q 292,222 292,237 L 292,253 Q 292,268 277,268 L 273,268 L 258,268" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="197,222 185,227 185,218" style="fill:rgb(0,0,0)"/> +<path d="M222,268 L 185,268 Q 170,268 170,253 L 170,237 Q 170,222 181,222 L 191,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> </svg> </div><br> <br></br> diff --git a/www/syntaxdiagrams.html b/www/syntaxdiagrams.html index b5b11b3..1ecbb7a 100644 --- a/www/syntaxdiagrams.html +++ b/www/syntaxdiagrams.html @@ -3775,99 +3775,137 @@ See also: <a href="lang_aggfunc.html">lang_aggfunc.html</a> &nb </div> <a name="numeric-literal"></a><h4>numeric-literal:</h4><div class='imgcontainer'> -<div style="max-width:765px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 765.562 214.056"> -<circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="63,36 51,41 51,32" style="fill:rgb(0,0,0)"/> -<path d="M9,36L57,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M78,51L98,51A15 15 0 0 0 113 36A15 15 0 0 0 98 21L78,21A15 15 0 0 0 63 36A15 15 0 0 0 78 51Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="88" y="36" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> -<polygon points="88,6 99,2 99,10" style="fill:rgb(0,0,0)"/> -<path d="M113,36 L 121,36 Q 128,36 128,21 L 128,21 Q 128,6 113,6 L 109,6 L 94,6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M88,6 L 51,6 Q 36,6 36,21 L 36,21 Q 36,36 44,36 L 51,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="176,66 164,71 164,62" style="fill:rgb(0,0,0)"/> -<path d="M113,36 L 134,36 Q 149,36 149,51 L 149,51 Q 149,66 159,66 L 170,66" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M191,82A15 15 0 0 0 206 66L206,66A15 15 0 0 0 191 51A15 15 0 0 0 176 66L176,66A15 15 0 0 0 191 82Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="191" y="66" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">.</text> -<polygon points="267,66 255,71 255,62" style="fill:rgb(0,0,0)"/> -<path d="M206,66L261,66" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="340,66 328,71 328,62" style="fill:rgb(0,0,0)"/> -<path d="M267,66L334,66" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="381,36 370,41 370,32" style="fill:rgb(0,0,0)"/> -<path d="M340,66 L 347,66 Q 355,66 355,51 L 355,51 Q 355,36 365,36 L 375,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="423,74 411,78 411,70" style="fill:rgb(0,0,0)"/> -<path d="M381,36 L 389,36 Q 396,36 396,51 L 396,59 Q 396,74 406,74 L 417,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M438,89A15 15 0 0 0 453 74L453,74A15 15 0 0 0 438 59A15 15 0 0 0 423 74L423,74A15 15 0 0 0 438 89Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="438" y="74" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">E</text> -<polygon points="494,74 483,78 483,70" style="fill:rgb(0,0,0)"/> -<path d="M453,74L489,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="423,112 411,116 411,108" style="fill:rgb(0,0,0)"/> -<path d="M381,36 L 389,36 Q 396,36 396,51 L 396,97 Q 396,112 406,112 L 417,112" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M438,127A15 15 0 0 0 453 112A15 15 0 0 0 438 97A15 15 0 0 0 423 112A15 15 0 0 0 438 127Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="438" y="112" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">e</text> -<path d="M453,112 L 460,112 Q 468,112 468,97 L 468,89 Q 468,74 475,74 L 483,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M257,112L277,112A15 15 0 0 0 292 97L292,97A15 15 0 0 0 277 82L257,82A15 15 0 0 0 242 97L242,97A15 15 0 0 0 257 112Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="267" y="97" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> -<polygon points="292,97 304,92 304,101" style="fill:rgb(0,0,0)"/> -<path d="M267,66 L 304,66 Q 319,66 319,81 L 319,82 Q 319,97 308,97 L 298,97" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M242,97 L 234,97 Q 227,97 227,82 L 227,81 Q 227,66 234,66 L 242,66" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="267,36 255,41 255,32" style="fill:rgb(0,0,0)"/> -<path d="M113,36L261,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M267,36L370,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="50,135 39,139 39,130" style="fill:rgb(0,0,0)"/> -<path d="M9,36 L 16,36 Q 24,36 24,51 L 24,120 Q 24,135 34,135 L 45,135" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M66,150A15 15 0 0 0 81 135A15 15 0 0 0 66 119A15 15 0 0 0 50 135A15 15 0 0 0 66 150Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="66" y="135" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">.</text> -<polygon points="117,135 105,139 105,130" style="fill:rgb(0,0,0)"/> -<path d="M81,135L111,135" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M132,150L152,150A15 15 0 0 0 167 135A15 15 0 0 0 152 119L132,119A15 15 0 0 0 117 135A15 15 0 0 0 132 150Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="142" y="135" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> -<polygon points="340,135 328,139 328,130" style="fill:rgb(0,0,0)"/> -<path d="M167,135L334,135" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M340,135 L 347,135 Q 355,135 355,120 L 355,66 L 355,51" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="142,104 153,100 153,109" style="fill:rgb(0,0,0)"/> -<path d="M167,135 L 174,135 Q 182,135 182,120 L 182,119 Q 182,104 167,104 L 162,104 L 147,104" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M142,104 L 105,104 Q 90,104 90,119 L 90,120 Q 90,135 98,135 L 105,135" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="536,142 524,146 524,138" style="fill:rgb(0,0,0)"/> -<path d="M494,74 L 502,74 Q 509,74 509,89 L 509,127 Q 509,142 520,142 L 530,142" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M551,157A15 15 0 0 0 566 142A15 15 0 0 0 551 127A15 15 0 0 0 536 142A15 15 0 0 0 551 157Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="551" y="142" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">-</text> -<polygon points="628,74 616,78 616,70" style="fill:rgb(0,0,0)"/> -<path d="M566,142 L 574,142 Q 581,142 581,127 L 581,89 Q 581,74 596,74 L 607,74 L 622,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M643,89L663,89A15 15 0 0 0 678 74L678,74A15 15 0 0 0 663 59L643,59A15 15 0 0 0 628 74L628,74A15 15 0 0 0 643 89Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="653" y="74" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> -<polygon points="714,74 703,78 703,70" style="fill:rgb(0,0,0)"/> -<path d="M678,74L708,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="756,36 744,41 744,32" style="fill:rgb(0,0,0)"/> -<path d="M714,74 L 722,74 Q 729,74 729,59 L 729,51 Q 729,36 740,36 L 750,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<circle cx="759" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="536,104 524,109 524,100" style="fill:rgb(0,0,0)"/> -<path d="M494,74 L 502,74 Q 509,74 509,89 L 509,89 Q 509,104 520,104 L 530,104" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M551,119A15 15 0 0 0 566 104A15 15 0 0 0 551 89A15 15 0 0 0 536 104A15 15 0 0 0 551 119Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="551" y="104" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">+</text> -<path d="M566,104 L 574,104 Q 581,104 581,97 L 581,89" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="551,36 540,41 540,32" style="fill:rgb(0,0,0)"/> -<path d="M381,36L545,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M551,36L744,36" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="551,74 540,78 540,70" style="fill:rgb(0,0,0)"/> -<path d="M494,74L545,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M551,74L616,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="653,50 665,46 665,54" style="fill:rgb(0,0,0)"/> -<path d="M678,74 L 686,74 Q 693,74 693,62 Q 693,50 678,50 L 674,50 L 659,50" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M653,50 L 616,50 Q 601,50 601,62 Q 601,74 609,74 L 616,74" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="50,180 39,184 39,176" style="fill:rgb(0,0,0)"/> -<path d="M9,36 L 16,36 Q 24,36 24,51 L 24,165 Q 24,180 34,180 L 45,180" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M66,195L69,195A15 15 0 0 0 84 180A15 15 0 0 0 69 165L66,165A15 15 0 0 0 50 180A15 15 0 0 0 66 195Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="67" y="180" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">0x</text> -<polygon points="120,180 108,184 108,176" style="fill:rgb(0,0,0)"/> -<path d="M84,180L114,180" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M135,195L185,195A15 15 0 0 0 200 180A15 15 0 0 0 185 165L135,165A15 15 0 0 0 120 180A15 15 0 0 0 135 195Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<text x="160" y="180" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">hexdigit</text> -<polygon points="714,180 703,184 703,176" style="fill:rgb(0,0,0)"/> -<path d="M200,180L708,180" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M714,180 L 722,180 Q 729,180 729,165 L 729,74 L 729,59" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<polygon points="160,207 171,203 171,211" style="fill:rgb(0,0,0)"/> -<path d="M200,180 L 207,180 Q 215,180 215,193 Q 215,207 200,207 L 180,207 L 165,207" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> -<path d="M160,207 L 108,207 Q 93,207 93,193 Q 93,180 101,180 L 108,180" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<div style="max-width:765px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 765.562 285.552"> +<circle cx="5" cy="62" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="63,62 51,66 51,58" style="fill:rgb(0,0,0)"/> +<path d="M9,62L57,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M78,77L98,77A15 15 0 0 0 113 62A15 15 0 0 0 98 47L78,47A15 15 0 0 0 63 62A15 15 0 0 0 78 77Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="88" y="62" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> +<path d="M88,32A15 15 0 0 0 103 17A15 15 0 0 0 88 2A15 15 0 0 0 73 17A15 15 0 0 0 88 32Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="88" y="17" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="103,38 115,34 115,42" style="fill:rgb(0,0,0)"/> +<path d="M113,62 L 121,62 Q 128,62 128,50 Q 128,38 118,38 L 109,38" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M103,38 L 51,38 Q 36,38 36,50 Q 36,62 44,62 L 51,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="103,17 115,12 115,21" style="fill:rgb(0,0,0)"/> +<path d="M113,62 L 121,62 Q 128,62 128,47 L 128,32 Q 128,17 118,17 L 109,17" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="63,62 51,66 51,58" style="fill:rgb(0,0,0)"/> +<path d="M73,17 L 51,17 Q 36,17 36,32 L 36,47 Q 36,62 47,62 L 57,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="176,92 164,97 164,88" style="fill:rgb(0,0,0)"/> +<path d="M113,62 L 134,62 Q 149,62 149,77 L 149,77 Q 149,92 159,92 L 170,92" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M191,108A15 15 0 0 0 206 92L206,92A15 15 0 0 0 191 77A15 15 0 0 0 176 92L176,92A15 15 0 0 0 191 108Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="191" y="92" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">.</text> +<polygon points="267,92 255,97 255,88" style="fill:rgb(0,0,0)"/> +<path d="M206,92L261,92" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="340,92 328,97 328,88" style="fill:rgb(0,0,0)"/> +<path d="M267,92L334,92" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="381,62 370,66 370,58" style="fill:rgb(0,0,0)"/> +<path d="M340,92 L 347,92 Q 355,92 355,77 L 355,77 Q 355,62 365,62 L 375,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="423,100 411,104 411,96" style="fill:rgb(0,0,0)"/> +<path d="M381,62 L 389,62 Q 396,62 396,77 L 396,85 Q 396,100 406,100 L 417,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M438,115A15 15 0 0 0 453 100L453,100A15 15 0 0 0 438 85A15 15 0 0 0 423 100L423,100A15 15 0 0 0 438 115Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="438" y="100" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">E</text> +<polygon points="494,100 483,104 483,96" style="fill:rgb(0,0,0)"/> +<path d="M453,100L489,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="423,138 411,142 411,133" style="fill:rgb(0,0,0)"/> +<path d="M381,62 L 389,62 Q 396,62 396,77 L 396,123 Q 396,138 406,138 L 417,138" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M438,153A15 15 0 0 0 453 138A15 15 0 0 0 438 123A15 15 0 0 0 423 138A15 15 0 0 0 438 153Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="438" y="138" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">e</text> +<path d="M453,138 L 460,138 Q 468,138 468,123 L 468,115 Q 468,100 475,100 L 483,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M257,132L277,132A15 15 0 0 0 292 117A15 15 0 0 0 277 101L257,101A15 15 0 0 0 242 117A15 15 0 0 0 257 132Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="267" y="117" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> +<path d="M267,168A15 15 0 0 0 282 153A15 15 0 0 0 267 138A15 15 0 0 0 252 153A15 15 0 0 0 267 168Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="267" y="153" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="292,117 304,112 304,121" style="fill:rgb(0,0,0)"/> +<path d="M267,92 L 304,92 Q 319,92 319,104 Q 319,117 308,117 L 298,117" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M242,117 L 234,117 Q 227,117 227,104 Q 227,92 234,92 L 242,92" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="252,153 240,157 240,149" style="fill:rgb(0,0,0)"/> +<path d="M242,117 L 234,117 Q 227,117 227,132 L 227,138 Q 227,153 236,153 L 246,153" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="292,117 304,112 304,121" style="fill:rgb(0,0,0)"/> +<path d="M282,153 L 304,153 Q 319,153 319,138 L 319,132 Q 319,117 308,117 L 298,117" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="267,62 255,66 255,58" style="fill:rgb(0,0,0)"/> +<path d="M113,62L261,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M267,62L370,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="50,177 39,181 39,173" style="fill:rgb(0,0,0)"/> +<path d="M9,62 L 16,62 Q 24,62 24,77 L 24,162 Q 24,177 34,177 L 45,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M66,192A15 15 0 0 0 81 177A15 15 0 0 0 66 162A15 15 0 0 0 50 177A15 15 0 0 0 66 192Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="66" y="177" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">.</text> +<polygon points="117,177 105,181 105,173" style="fill:rgb(0,0,0)"/> +<path d="M81,177L111,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M132,192L152,192A15 15 0 0 0 167 177A15 15 0 0 0 152 162L132,162A15 15 0 0 0 117 177A15 15 0 0 0 132 192Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="142" y="177" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> +<path d="M142,147A15 15 0 0 0 157 132A15 15 0 0 0 142 117A15 15 0 0 0 127 132A15 15 0 0 0 142 147Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="142" y="132" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="340,177 328,181 328,173" style="fill:rgb(0,0,0)"/> +<path d="M167,177L334,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M340,177 L 347,177 Q 355,177 355,162 L 355,92 L 355,77" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="157,153 168,149 168,157" style="fill:rgb(0,0,0)"/> +<path d="M167,177 L 174,177 Q 182,177 182,165 Q 182,153 172,153 L 163,153" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M157,153 L 105,153 Q 90,153 90,165 Q 90,177 98,177 L 105,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="157,132 168,127 168,136" style="fill:rgb(0,0,0)"/> +<path d="M167,177 L 174,177 Q 182,177 182,162 L 182,147 Q 182,132 172,132 L 163,132" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="105,177 94,181 94,173" style="fill:rgb(0,0,0)"/> +<path d="M127,132 L 105,132 Q 90,132 90,147 L 90,162 Q 90,177 95,177 L 99,177" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="536,168 524,172 524,164" style="fill:rgb(0,0,0)"/> +<path d="M494,100 L 502,100 Q 509,100 509,115 L 509,153 Q 509,168 520,168 L 530,168" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M551,183A15 15 0 0 0 566 168A15 15 0 0 0 551 153A15 15 0 0 0 536 168A15 15 0 0 0 551 183Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="551" y="168" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">-</text> +<polygon points="628,100 616,104 616,96" style="fill:rgb(0,0,0)"/> +<path d="M566,168 L 574,168 Q 581,168 581,153 L 581,115 Q 581,100 596,100 L 607,100 L 622,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M643,115L663,115A15 15 0 0 0 678 100L678,100A15 15 0 0 0 663 85L643,85A15 15 0 0 0 628 100L628,100A15 15 0 0 0 643 115Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="653" y="100" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">digit</text> +<path d="M653,151A15 15 0 0 0 668 136A15 15 0 0 0 653 121A15 15 0 0 0 638 136A15 15 0 0 0 653 151Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="653" y="136" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="714,100 703,104 703,96" style="fill:rgb(0,0,0)"/> +<path d="M678,100L708,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="756,62 744,66 744,58" style="fill:rgb(0,0,0)"/> +<path d="M714,100 L 722,100 Q 729,100 729,85 L 729,77 Q 729,62 740,62 L 750,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<circle cx="759" cy="62" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="536,130 524,135 524,126" style="fill:rgb(0,0,0)"/> +<path d="M494,100 L 502,100 Q 509,100 509,115 L 509,115 Q 509,130 520,130 L 530,130" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M551,145A15 15 0 0 0 566 130A15 15 0 0 0 551 115A15 15 0 0 0 536 130A15 15 0 0 0 551 145Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="551" y="130" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">+</text> +<path d="M566,130 L 574,130 Q 581,130 581,123 L 581,115" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="551,62 540,66 540,58" style="fill:rgb(0,0,0)"/> +<path d="M381,62L545,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M551,62L744,62" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="551,100 540,104 540,96" style="fill:rgb(0,0,0)"/> +<path d="M494,100L545,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M551,100L616,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="653,76 665,71 665,80" style="fill:rgb(0,0,0)"/> +<path d="M678,100 L 686,100 Q 693,100 693,88 Q 693,76 678,76 L 674,76 L 659,76" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M653,76 L 616,76 Q 601,76 601,88 Q 601,100 609,100 L 616,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="668,136 680,132 680,141" style="fill:rgb(0,0,0)"/> +<path d="M678,100 L 686,100 Q 693,100 693,115 L 693,121 Q 693,136 684,136 L 674,136" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="628,100 616,104 616,96" style="fill:rgb(0,0,0)"/> +<path d="M638,136 L 616,136 Q 601,136 601,121 L 601,115 Q 601,100 612,100 L 622,100" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="50,222 39,227 39,218" style="fill:rgb(0,0,0)"/> +<path d="M9,62 L 16,62 Q 24,62 24,77 L 24,207 Q 24,222 34,222 L 45,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M66,238L69,238A15 15 0 0 0 84 222A15 15 0 0 0 69 207L66,207A15 15 0 0 0 50 222A15 15 0 0 0 66 238Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="67" y="222" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">0x</text> +<polygon points="155,222 144,227 144,218" style="fill:rgb(0,0,0)"/> +<path d="M84,222L149,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="197,222 185,227 185,218" style="fill:rgb(0,0,0)"/> +<path d="M155,222L191,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M64,277L70,277A15 15 0 0 0 85 262A15 15 0 0 0 70 247L64,247A15 15 0 0 0 49 262A15 15 0 0 0 64 277Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="67" y="262" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">0X</text> +<path d="M212,238L262,238A15 15 0 0 0 277 222A15 15 0 0 0 262 207L212,207A15 15 0 0 0 197 222A15 15 0 0 0 212 238Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="237" y="222" text-anchor="middle" fill="rgb(0,0,0)" dominant-baseline="central">hexdigit</text> +<path d="M237,283A15 15 0 0 0 252 268A15 15 0 0 0 237 253A15 15 0 0 0 222 268A15 15 0 0 0 237 283Z" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<text x="237" y="268" text-anchor="middle" font-weight="bold" fill="rgb(0,0,0)" dominant-baseline="central">_</text> +<polygon points="714,222 703,227 703,218" style="fill:rgb(0,0,0)"/> +<path d="M277,222L708,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M714,222 L 722,222 Q 729,222 729,207 L 729,100 L 729,85" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="49,262 38,266 38,257" style="fill:rgb(0,0,0)"/> +<path d="M24,202 L 24,247 Q 24,262 34,262 L 43,262" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="197,222 185,227 185,218" style="fill:rgb(0,0,0)"/> +<path d="M85,262 L 92,262 Q 100,262 100,247 L 100,237 Q 100,222 115,222 L 176,222 L 191,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="252,247 263,242 263,251" style="fill:rgb(0,0,0)"/> +<path d="M277,222 L 284,222 Q 292,222 292,235 Q 292,247 277,247 L 273,247 L 258,247" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<path d="M252,247 L 185,247 Q 170,247 170,235 Q 170,222 178,222 L 185,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="252,268 263,263 263,272" style="fill:rgb(0,0,0)"/> +<path d="M277,222 L 284,222 Q 292,222 292,237 L 292,253 Q 292,268 277,268 L 273,268 L 258,268" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> +<polygon points="197,222 185,227 185,218" style="fill:rgb(0,0,0)"/> +<path d="M222,268 L 185,268 Q 170,268 170,253 L 170,237 Q 170,222 181,222 L 191,222" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> </svg> </div> <br></br> Binary files differdiff --git a/www/vfs.html b/www/vfs.html index 9615971..695c643 100644 --- a/www/vfs.html +++ b/www/vfs.html @@ -415,7 +415,7 @@ on the device. This file implements a shim used during SQLite testing that verifies that the database and rollback journal are written in the correct order and are "synced" at appropriate times in order to guarantee that the database -can recover from a power lose are hard reset at any time. The shim +can recover from a power loss or hard reset at any time. The shim checks several invariants on the operation of databases and rollback journals and raises exceptions if any of those invariants are violated. These invariants, in turn, assure that the database is always recoverable. diff --git a/www/wal.html b/www/wal.html index abb6b4d..2e32dba 100644 --- a/www/wal.html +++ b/www/wal.html @@ -706,14 +706,12 @@ database files in exclusive locking mode, so attempts to read Chrome or Firefox databases while the applications are running will run into this problem, for example. -</p></li><li><p> -When the last connection to a particular database is closing, that -connection will acquire an exclusive lock for a short time while it -cleans up the WAL and shared-memory files. If a second database tries -to open and query the database while the first connection -is still in the middle -of its cleanup process, the second connection might get an <a href="rescode.html#busy">SQLITE_BUSY</a> -error. +</p></li><li><p> When the last connection to a particular database is closing, +that connection will acquire an exclusive lock for a short time while +it cleans up the WAL and shared-memory files. If a separate attempt +is made to open and query the database while the first connection is +still in the middle of its cleanup process, the second connection +might get an <a href="rescode.html#busy">SQLITE_BUSY</a> error. </p></li><li><p> If the last connection to a database crashed, then the first new diff --git a/www/whentouse.html b/www/whentouse.html index 746f097..59d287e 100644 --- a/www/whentouse.html +++ b/www/whentouse.html @@ -115,10 +115,38 @@ antiRobotGo(); } antiRobotDefense(); </script> +<div class=fancy> +<div class=nosearch> +<div class="fancy_title"> +Appropriate Uses For SQLite +</div> +<div class="fancy_toc"> +<a onclick="toggle_toc()"> +<span class="fancy_toc_mark" id="toc_mk">►</span> +Table Of Contents +</a> +<div id="toc_sub"><div class="fancy-toc1"><a href="#situations_where_sqlite_works_well">1. Situations Where SQLite Works Well</a></div> +<div class="fancy-toc1"><a href="#situations_where_a_client_server_rdbms_may_work_better">2. Situations Where A Client/Server RDBMS May Work Better</a></div> +<div class="fancy-toc1"><a href="#checklist_for_choosing_the_right_database_engine">3. Checklist For Choosing The Right Database Engine</a></div> +</div> +</div> +<script> +function toggle_toc(){ +var sub = document.getElementById("toc_sub") +var mk = document.getElementById("toc_mk") +if( sub.style.display!="block" ){ +sub.style.display = "block"; +mk.innerHTML = "▼"; +} else { +sub.style.display = "none"; +mk.innerHTML = "►"; +} +} +</script> +</div> -<h1 align="center">Appropriate Uses For SQLite</h1> <p> SQLite is not directly comparable to client/server SQL database engines such @@ -141,7 +169,7 @@ SQLite does not compete with client/server databases. SQLite competes with <a href="http://man.he.net/man3/fopen">fopen()</a>. </p> -<h2>Situations Where SQLite Works Well</h2> +<h1 id="situations_where_sqlite_works_well"><span>1. </span>Situations Where SQLite Works Well</h1> <ul> @@ -164,7 +192,7 @@ SQLite works there too, but SQLite also thrives at the edge of the network, fending for itself while providing fast and reliable data services to applications that would otherwise have dodgy connectivity. -</li> +</p></li> <li><p><b>Application file format</b></p> @@ -188,7 +216,7 @@ improved reliability. See technical notes This use case is closely related to the <a href="#wireproto">data transfer format</a> and <a href="#container">data container</a> use cases below. -</li> +</p></li> <a name="website"></a> @@ -212,8 +240,8 @@ the database. Dynamic content uses <a href="np1queryprob.html">about 200 SQL st This setup runs on a single VM that shares a physical server with 23 others and yet still keeps the load average below 0.1 most of the time. -<p>See also: <a href="https://news.ycombinator.com/item?id=33975635">Hacker New discussion from 2022-12-13</a>. -</li> +</p><p>See also: <a href="https://news.ycombinator.com/item?id=33975635">Hacker New discussion from 2022-12-13</a>. +</p></li> <li><p><b>Data analysis</b></p> @@ -285,16 +313,16 @@ connections, but each SQLite database is only used by one connection.</p> <a name="wireproto"></a> -<li><p><b>Data transfer format</b><p> +<li><p><b>Data transfer format</b></p><p> -<p>Because an SQLite database is a single compact file in a +</p><p>Because an SQLite database is a single compact file in a <a href="fileformat2.html">well-defined cross-platform format</a>, it is often used as a container for transferring content from one system to another. The sender gathers content into an SQLite database file, transfers that one file to the receiver, then the receiver uses SQL to extract the content as needed. -<p>An SQLite database facilitates data transfer between systems even +</p><p>An SQLite database facilitates data transfer between systems even when the endpoints have different word sizes and/or byte orders. The data can be a complex mix of large binary blobs, text, and small numeric or boolean values. The data format can be easily extended @@ -305,7 +333,7 @@ received content as needed. The data format is "transparent" in the sense that it is easily decoded for human viewing using a variety of universally available, open-source tools, from multiple vendors. -</li> +</p></li> <a name="container"></a> @@ -355,7 +383,7 @@ particularly well as a replacement for these <i>ad hoc</i> data files. Contrary to intuition, SQLite can be <a href="fasterthanfs.html">faster than the filesystem</a> for reading and writing content to disk. -</li> +</p></li> <li><p><b>Internal or temporary databases</b></p> @@ -407,12 +435,12 @@ prototyping new, experimental database language features or ideas. </ul> -<h2>Situations Where A Client/Server RDBMS May Work Better</h2> +<h1 id="situations_where_a_client_server_rdbms_may_work_better"><span>2. </span>Situations Where A Client/Server RDBMS May Work Better</h1> <ul> -<li><p><b>Client/Server Applications</b><p> +<li><p><b>Client/Server Applications</b></p><p> -<p>If there are many client programs sending SQL to the same +</p><p>If there are many client programs sending SQL to the same database over a network, then use a client/server database engine instead of SQLite. SQLite will work over a network filesystem, but because of the latency associated with most network filesystems, @@ -469,7 +497,7 @@ solution. <a name="dbcklst"></a> -<h2>Checklist For Choosing The Right Database Engine</h2> +<h1 id="checklist_for_choosing_the_right_database_engine"><span>3. </span>Checklist For Choosing The Right Database Engine</h1> <ol> <li><p><b>Is the data separated from the application by a network? @@ -481,14 +509,14 @@ the same physical device so that the high-bandwidth engine-to-disk link does not have to traverse the network, only the lower-bandwidth application-to-engine link. -<p>But SQLite is built into the application. So if the data is on a +</p><p>But SQLite is built into the application. So if the data is on a separate device from the application, it is required that the higher bandwidth engine-to-disk link be across the network. This works, but it is suboptimal. Hence, it is usually better to select a client/server database engine when the data is on a separate device from the application. -<p><em>Nota Bene:</em> +</p><p><em>Nota Bene:</em> In this rule, "application" means the code that issues SQL statements. If the "application" is an <a href="whentouse.html#serversidedb">application server</a> and if the content resides on the same physical machine as the application server, @@ -503,14 +531,14 @@ database at the same instant (and they cannot queue up and take turns) then it is best to select a database engine that supports that capability, which always means a client/server database engine. -<p>SQLite only supports one writer at a time per database file. +</p><p>SQLite only supports one writer at a time per database file. But in most cases, a write transaction only takes milliseconds and so multiple writers can simply take turns. SQLite will handle more write concurrency than many people suspect. Nevertheless, client/server database systems, because they have a long-running server process at hand to coordinate access, can usually handle far more write concurrency than SQLite ever will. -</li> +</p></li> <li><p><b>Big data? → choose client/server</b></p> @@ -521,7 +549,7 @@ a solution other than SQLite. SQLite supports databases up to that will support 281-terabyte files. Even so, when the size of the content looks like it might creep into the terabyte range, it would be good to consider a centralized client/server database. -</li> +</p></li> <li><p><b>Otherwise → choose SQLite!</b></p> @@ -529,7 +557,7 @@ be good to consider a centralized client/server database. terabyte of content, SQLite is almost always a better solution. SQLite is fast and reliable and it requires no configuration or maintenance. It keeps things simple. SQLite "just works". -</li> +</p></li> </ol> <p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/whentouse.in?m=3425224a93">2024-04-03 17:48:26</a> UTC </small></i></p> diff --git a/www/whybytecode.html b/www/whybytecode.html new file mode 100644 index 0000000..98da8b3 --- /dev/null +++ b/www/whybytecode.html @@ -0,0 +1,435 @@ +<!DOCTYPE html> +<html><head> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta http-equiv="content-type" content="text/html; charset=UTF-8"> +<link href="sqlite.css" rel="stylesheet"> +<title>Why SQLite Uses Bytecode</title> +<!-- path= --> +</head> +<body> +<div class=nosearch> +<a href="index.html"> +<img class="logo" src="images/sqlite370_banner.gif" alt="SQLite" border="0"> +</a> +<div><!-- IE hack to prevent disappearing logo --></div> +<div class="tagline desktoponly"> +Small. Fast. Reliable.<br>Choose any three. +</div> +<div class="menu mainmenu"> +<ul> +<li><a href="index.html">Home</a> +<li class='mobileonly'><a href="javascript:void(0)" onclick='toggle_div("submenu")'>Menu</a> +<li class='wideonly'><a href='about.html'>About</a> +<li class='desktoponly'><a href="docs.html">Documentation</a> +<li class='desktoponly'><a href="download.html">Download</a> +<li class='wideonly'><a href='copyright.html'>License</a> +<li class='desktoponly'><a href="support.html">Support</a> +<li class='desktoponly'><a href="prosupport.html">Purchase</a> +<li class='search' id='search_menubutton'> +<a href="javascript:void(0)" onclick='toggle_search()'>Search</a> +</ul> +</div> +<div class="menu submenu" id="submenu"> +<ul> +<li><a href='about.html'>About</a> +<li><a href='docs.html'>Documentation</a> +<li><a href='download.html'>Download</a> +<li><a href='support.html'>Support</a> +<li><a href='prosupport.html'>Purchase</a> +</ul> +</div> +<div class="searchmenu" id="searchmenu"> +<form method="GET" action="search"> +<select name="s" id="searchtype"> +<option value="d">Search Documentation</option> +<option value="c">Search Changelog</option> +</select> +<input type="text" name="q" id="searchbox" value=""> +<input type="submit" value="Go"> +</form> +</div> +</div> +<script> +function toggle_div(nm) { +var w = document.getElementById(nm); +if( w.style.display=="block" ){ +w.style.display = "none"; +}else{ +w.style.display = "block"; +} +} +function toggle_search() { +var w = document.getElementById("searchmenu"); +if( w.style.display=="block" ){ +w.style.display = "none"; +} else { +w.style.display = "block"; +setTimeout(function(){ +document.getElementById("searchbox").focus() +}, 30); +} +} +function div_off(nm){document.getElementById(nm).style.display="none";} +window.onbeforeunload = function(e){div_off("submenu");} +/* Disable the Search feature if we are not operating from CGI, since */ +/* Search is accomplished using CGI and will not work without it. */ +if( !location.origin || !location.origin.match || !location.origin.match(/http/) ){ +document.getElementById("search_menubutton").style.display = "none"; +} +/* Used by the Hide/Show button beside syntax diagrams, to toggle the */ +function hideorshow(btn,obj){ +var x = document.getElementById(obj); +var b = document.getElementById(btn); +if( x.style.display!='none' ){ +x.style.display = 'none'; +b.innerHTML='show'; +}else{ +x.style.display = ''; +b.innerHTML='hide'; +} +return false; +} +var antiRobot = 0; +function antiRobotGo(){ +if( antiRobot!=3 ) return; +antiRobot = 7; +var j = document.getElementById("mtimelink"); +if(j && j.hasAttribute("data-href")) j.href=j.getAttribute("data-href"); +} +function antiRobotDefense(){ +document.body.onmousedown=function(){ +antiRobot |= 2; +antiRobotGo(); +document.body.onmousedown=null; +} +document.body.onmousemove=function(){ +antiRobot |= 2; +antiRobotGo(); +document.body.onmousemove=null; +} +setTimeout(function(){ +antiRobot |= 1; +antiRobotGo(); +}, 100) +antiRobotGo(); +} +antiRobotDefense(); +</script> +<div class=fancy> +<div class=nosearch> +<div class="fancy_title"> +Why SQLite Uses Bytecode +</div> +<div class="fancy_toc"> +<a onclick="toggle_toc()"> +<span class="fancy_toc_mark" id="toc_mk">►</span> +Table Of Contents +</a> +<div id="toc_sub"><div class="fancy-toc1"><a href="#introduction">1. Introduction</a></div> +<div class="fancy-toc2"><a href="#how_to_provide_feedback">1.1. How To Provide Feedback</a></div> +<div class="fancy-toc2"><a href="#definition_of_bytecode_">1.2. Definition Of "Bytecode"</a></div> +<div class="fancy-toc2"><a href="#definition_of_abstract_syntax_tree_or_ast_">1.3. Definition Of "Abstract Syntax Tree" or "AST"</a></div> +<div class="fancy-toc2"><a href="#dataflow_programming">1.4. Dataflow Programming</a></div> +<div class="fancy-toc1"><a href="#advantages_to_compiling_into_bytecode">2. Advantages To Compiling Into Bytecode</a></div> +<div class="fancy-toc2"><a href="#bytecode_is_easier_to_understand">2.1. Bytecode Is Easier To Understand</a></div> +<div class="fancy-toc2"><a href="#bytecode_is_easier_to_debug">2.2. Bytecode Is Easier To Debug</a></div> +<div class="fancy-toc2"><a href="#bytecode_can_be_run_incrementally">2.3. Bytecode Can Be Run Incrementally</a></div> +<div class="fancy-toc2"><a href="#bytecode_is_smaller">2.4. Bytecode Is Smaller</a></div> +<div class="fancy-toc2"><a href="#bytecode_is_faster">2.5. Bytecode Is Faster</a></div> +<div class="fancy-toc1"><a href="#advantages_of_compiling_into_a_tree_of_objects">3. Advantages Of Compiling Into A Tree Of Objects</a></div> +<div class="fancy-toc2"><a href="#query_planning_decisions_can_be_deferred_until_runtime">3.1. Query Planning Decisions Can Be Deferred Until Runtime</a></div> +<div class="fancy-toc2"><a href="#dataflow_programs_are_easy_to_parallelize">3.2. Dataflow Programs Are Easy To Parallelize</a></div> +</div> +</div> +<script> +function toggle_toc(){ +var sub = document.getElementById("toc_sub") +var mk = document.getElementById("toc_mk") +if( sub.style.display!="block" ){ +sub.style.display = "block"; +mk.innerHTML = "▼"; +} else { +sub.style.display = "none"; +mk.innerHTML = "►"; +} +} +</script> +</div> + + + + + +<h1 id="introduction"><span>1. </span>Introduction</h1> + +<p>Every SQL database engine works in roughly the same way: It first +translates the input SQL text into a "prepared statement". Then it "executes" +the prepared statement to generate a result. + +</p><p>A prepared statement is an object that represents the steps needed +to accomplish the input SQL. Or, to think of it in another way, +the prepared statement is the SQL statement translated into a form that is +more easily understood by the computer. + +</p><p>In SQLite, a prepared statement is an instance of the +<a href="c3ref/stmt.html">sqlite3_stmt object</a>. In other systems, the prepared +statement is usually an internal data structure that is not directly visible to +the application programmer. Developers of other SQL database engines +do not necessarily call these objects "prepared statements". +But such objects exists, whatever they might be called. +This paper will use the term "prepared statement". + +</p><p>There are countless ways of implementing a prepared statement. This +paper will look at the two most common methods: + +</p><ol> +<li><p> +<b>Bytecode</b> → The input SQL is translated into a virtual machine language +that is then run by a virtual machine interpreter. This is the technique +used by SQLite. + +</p></li><li><p> +<b>Tree-Of-Objects</b> → The input SQL is translated in a tree of objects +that represent the processing to be done. The SQL is executed by walking this +tree. This is the technique used by MySQL and PostgreSQL. +</p></li></ol> + +<p> +There are advantages and disadvantages to each of these representations of +a prepared statement. The purpose of this paper is to articulate some of those +advantages and disadvantages. + +</p><h2 id="how_to_provide_feedback"><span>1.1. </span>How To Provide Feedback</h2> + +<p> +This document is written from the perspective of the original author of SQLite. +If you disagree with any of the opinions offered in this document, you are +welcomed to offer corrections and/or contrary views on the +<a href="https://sqlite.org/forum">SQLite Forum</a>. Or you can email the author +directly. + +</p><h2 id="definition_of_bytecode_"><span>1.2. </span>Definition Of "Bytecode"</h2> + +<p>The <a href="opcode.html">bytecode generated by SQLite</a> might be a little different from what +many readers think of as bytecode. The bytecode used (for example) by the +<a href="https://en.wikipedia.org/wiki/Java_virtual_machine">Java virtual machine</a> or +by <a href="https://en.wikipedia.org/wiki/WebAssembly">WebAssembly</a> consists almost +entirely of low-level operations, similar to what physical CPUs implement: +basic math operators, comparisons, conditional jumps, and +instructions to move content between different memory locations. SQLite bytecode +has these kinds of low-level instructions, too. But SQLite bytecode also contains +some high-level operations that are specific to the needs of a database engine. +Here are just a few examples: + +</p><p> +</p><ul> +<li><p><b>OP_Column</b> → Extract the value from the N-th column of the +database row that a particular cursor is currently pointing at. +</p></li><li><p><b>OP_CreateBtree</b> → Allocate space for a new B-Tree in the +database file. +</p></li><li><p><b>OP_ParseSchema</b> → Reread and reparse all or part of the +<a href="schematab.html">sqlite_schema table</a> and refresh internal symbol tables accordingly. +</p></li><li><p><b>OP_SeekGE</b> → Move a cursor on a particular B-Tree to the first +entry that is greater than or equal to a given key. +</p></li><li><p><b>OP_Next</b> → Advance a cursor on a particular B-Tree to the next +entry in the B-Tree and jump, or fall through if there are no more entries in that +B-Tree. +</p></li></ul> + +<p>In other words, the "bytecode" used by SQLite is not so much a set of CPU +instructions as it is a list of database primitives that are to be run +in a particular order. + +</p><h2 id="definition_of_abstract_syntax_tree_or_ast_"><span>1.3. </span>Definition Of "Abstract Syntax Tree" or "AST"</h2> + +<p> +An "<a href="https://en.wikipedia.org/wiki/Abstract_syntax_tree">Abstract Syntax Tree</a>" or AST +is a data structure that describes a program or statement in some kind of formal +language. In our context, the formal language is SQL. An AST is typically +implemented as a tree of objects where each object represents one small part of +the overall SQL statement. ASTs emerge naturally from parsers for formal languages. +The usual technique is to use an +<a href="https://en.wikipedia.org/wiki/LALR_parser">LALR(1) parser</a>. +With such a parser, each terminal +symbol holds metadata that will become a leaf of the AST, and each non-terminal +symbol holds metadata that will become a sub-branch of the overall AST. +As rules of the grammar are "reduced" by the parser, new nodes of the AST are +allocated and connected to subnodes. +After the parse completes, the start-symbol of the grammar is left holding the +root of the AST. + +</p><p>An AST is a tree of objects. But an AST is not a suitable form for +a prepared statement. After being generated, an AST first needs to be +transformed in various ways before it can executed. Symbols need to be +resolved. Semantic rules need to be checked. Optimizations need to be +applied that transform input SQL statement into different forms that +execute more quickly. Finally, the AST needs to be translated into an +alternative representation that is more amenable to execution. + +</p><p>Some people refer to the tree of objects that is used as the +executable form for MySQL and PostgreSQL as an AST. This is probably a +misuse of the term "AST", because by the time the tree of objects is +ready to be executed, it has been changed so much that it has little +resemblance to the original SQL text. The confusion arises in part because +both the final prepared statement object and the original AST are both +trees of objects. The usual technique is for the original AST that comes +directly out of the parser to be transformed little by little, in multiple +passes, until at the end it is fully converted into an tree of objects +that is no longer strictly an AST but that can be evaluated to +generate a result. There is not necessarily a clear point during this +process when the tree-of-objects ceases to be an AST and becomes a +prepared statement instead. And because there is no clear boundary between an +AST and a prepared statement, people often refer to a prepared statement +that is represented as a tree of objects as an "AST", even though that +description is not precise. + +</p><h2 id="dataflow_programming"><span>1.4. </span>Dataflow Programming</h2> + +<p><a href="https://en.wikipedia.org/wiki/Dataflow_programming">Dataflow programming</a> +is a style of programming in which individual nodes specialize in doing +one small part of the overall computation. Each node receives inputs from +other nodes and sends its output to other nodes. Thus the nodes form a +directed graph that carry inputs into outputs. + +</p><p> +A "dataflow program" is perhaps a better description than "AST" for +the tree of objects that an SQL database engine uses as a prepared statement. + +</p><h1 id="advantages_to_compiling_into_bytecode"><span>2. </span>Advantages To Compiling Into Bytecode</h1> + +<p>SQLite compiles to bytecode, and the SQLite developers are very happy +with this approach. Here is why: + +</p><h2 id="bytecode_is_easier_to_understand"><span>2.1. </span>Bytecode Is Easier To Understand</h2> + +<p>A flat list of opcodes can be easily printed to see exactly +how an SQL statement is being implemented. This is what happens in SQLite +when you preface an SQL statement with the "EXPLAIN" keyword: Instead of +actually running the SQL, the result is a listing of the bytecode +that would have been used to implement that SQL. + +</p><p>Bytecode lends itself to this because a bytecode program is easily +represented as a table. In SQLite bytecode, each instruction +has one opcode and five operands. Thus a prepared statement can be +rendered as if it were a query against a six-column table. + +</p><p>A tree-of-objects representation is more difficult to publish in +a human-readable form. The objects that comprise the tree tend to +all be very different, and thus it is tricky to come up with a +consistent and simple table representation with which to display +the objects. Any such table representation that you do come up +with would almost certainly have more than six columns, probably many more. +The problem of rendering a tree-of-objects as a table is sufficiently +difficult that nobody does it, as far as I know. Hence, no +tree-of-objects database engine provides the level +of detail in their "EXPLAIN" output that SQLite provides. + +</p><h2 id="bytecode_is_easier_to_debug"><span>2.2. </span>Bytecode Is Easier To Debug</h2> + +<p>Bytecode provides a clear separation between front-end parsing and +analysis and back-end evaluation of an SQL statement. When problems arise +(incorrect answers and/or poor performance), the developers can examine +the bytecode to quickly determine if the source of the trouble is either the +front-end analysis or the back-end data storage section of the product. + +</p><p>In debugging builds of SQLite, the <a href="pragma.html#pragma_vdbe_trace">PRAGMA vdbe_trace=ON;</a> command will +cause a trace of the bytecode execution to appear on the console. + +</p><h2 id="bytecode_can_be_run_incrementally"><span>2.3. </span>Bytecode Can Be Run Incrementally</h2> + +<p> +SQL statements written in bytecode can be evaluated incrementally. +For example, a statement can be run until it generates just its first +row of output. The statement then pauses until it is stepped again. +It is not necessary to run the statement to completion before examining +the first row of output. + +</p><p> +This is more difficult to achieve in a tree-of-objects design. When +the prepared statement is a tree-of-objects, execution is normally +accomplished by walking the tree. To pause the statement in the middle +of a computation means unwinding the stack back up to the caller, all +the while saving enough state to resume evaluation where it last left +off. This is not impossible to do, but is sufficiently difficult that +I have never seen it actually done. + +</p><p> +Most SQL database engines do not really need to do incremental +execution of prepared statements because most SQL database engines +are client/server. In client/server engines, a single SQL statement is sent +to the server, then the complete reply comes back over the wire +all at once. Thus each statement runs to completion in a single go. +But SQLite is not client/server. SQLite is a library +that runs in the same address space and using the same stack as the +application. Being able to easily and reliably perform incremental +execution of an SQL statement is important to SQLite. + +</p><h2 id="bytecode_is_smaller"><span>2.4. </span>Bytecode Is Smaller</h2> + +<p> +The bytecode generated by SQLite is usually smaller than the corresponding +AST coming out of the parser. During initial processing of SQL text +(during the call to <a href="c3ref/prepare.html">sqlite3_prepare()</a> and similar) both the AST and the +bytecode exist in memory at the same time, so more memory is used then. +But that is a transient state. The AST +is quickly discarded and its memory recycled, even before the call to +<a href="c3ref/prepare.html">sqlite3_prepare()</a> returns, so the resulting <a href="c3ref/stmt.html">prepared statement</a> ends +up consuming less memory in its bytecode representation than it did as an AST. +This is important because calls to <a href="c3ref/prepare.html">sqlite3_prepare()</a> are transient, but +prepared statements are often cached for possible reuse and persist in memory +for a long time. + +</p><h2 id="bytecode_is_faster"><span>2.5. </span>Bytecode Is Faster</h2> + +<p> +I <i>believe</i> that a bytecode representation of a prepared statement +runs faster, because fewer decisions need to be made for each step of +the computation. Emphasis on "believe" in the previous sentence +→ it is difficult to verify +this claim experimentally since nobody has ever put in the multiple years +of effort necessary to generate equivalent bytecode and tree-of-object +representations of a prepared statement to see which one actually runs faster. +We do know that <a href="fasterthanfs.html">SQLite is very fast</a>, but we +do not have good side-by-side comparisons with other SQL databases since +the other databases spend a lot of time doing client/server message processing, +and it is difficult to untangle the message round-trip overhead from the +actual processing time. + +</p><h1 id="advantages_of_compiling_into_a_tree_of_objects"><span>3. </span>Advantages Of Compiling Into A Tree Of Objects</h1> + +<p>The SQLite developers think that the bytecode approach is +best, at least for the use cases the SQLite tries to fill, but the +tree-of-objects approach to processing SQL does have some advantages over +bytecode. There are always tradeoffs. + +</p><h2 id="query_planning_decisions_can_be_deferred_until_runtime"><span>3.1. </span>Query Planning Decisions Can Be Deferred Until Runtime</h2> + +<p> +When a prepared statement is bytecode, once the bytecode has been generated, +the algorithm is fixed and cannot be subsequently changed without completely +rewriting the bytecode. +This is not the case with a tree-of-objects prepared +statement. A tree-of-objects is easier to modify on-the-fly. The query +plan is mutable and can be tweaked as it is running, based on the progress +of the query. Thus a query can be dynamically self-tuning. + +</p><h2 id="dataflow_programs_are_easy_to_parallelize"><span>3.2. </span>Dataflow Programs Are Easy To Parallelize</h2> + +<p>In a dataflow program, each processing node can be assigned to a +different thread. There needs to be some kind of threadsafe queuing +mechanism for transferring intermediate results from one node to the +next. But no synchronization primitives are typically needed within +each node of the program. Node schedule is trivial: A node becomes +eligible to run when it has data available and there is space in its +output queue. + +</p><p>This is an important consideration for database engines that are +designed to run large analytic queries +(<a href="https://en.wikipedia.org/wiki/Online_analytical_processing">OLAP</a>) +on large multi-core servers. +The primary focus of SQLite is transaction processing +(<a href="https://en.wikipedia.org/wiki/Online_transaction_processing">OLTP</a>) +on the internet-of-things, so there is less need to +represent prepared statements as dataflow programs in SQLite. +</p><p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/whybytecode.in?m=d62430c8d6">2024-05-09 17:38:03</a> UTC </small></i></p> + diff --git a/www/windowfunctions.html b/www/windowfunctions.html index d210532..3acd831 100644 --- a/www/windowfunctions.html +++ b/www/windowfunctions.html @@ -175,8 +175,8 @@ have a FILTER clause in between the function and the OVER clause. <p><b><a href="syntax/window-function-invocation.html">window-function-invocation:</a></b> -<button id='x44e4cb77' onclick='hideorshow("x44e4cb77","xb008b89c")'>hide</button></p> - <div id='xb008b89c' class='imgcontainer'> +<button id='x48ad4271' onclick='hideorshow("x48ad4271","x53925228")'>hide</button></p> + <div id='x53925228' class='imgcontainer'> <div style="max-width:870px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 870.446 132.84"> <circle cx="5" cy="55" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,55 20,59 20,50" style="fill:rgb(0,0,0)"/> @@ -232,8 +232,8 @@ have a FILTER clause in between the function and the OVER clause. </svg> </div> <p><b><a href="syntax/expr.html">expr:</a></b> -<button id='xde55489c' onclick='hideorshow("xde55489c","xab0ca079")'>show</button></p> - <div id='xab0ca079' style='display:none;' class='imgcontainer'> +<button id='xb2746424' onclick='hideorshow("xb2746424","x64380fba")'>show</button></p> + <div id='x64380fba' style='display:none;' class='imgcontainer'> <div style="max-width:963px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 963.96 1068.77"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -714,8 +714,8 @@ have a FILTER clause in between the function and the OVER clause. </svg> </div> <p><b><a href="syntax/function-arguments.html">function-arguments:</a></b> -<button id='xd8262bee' onclick='hideorshow("xd8262bee","xc4e3ffe6")'>show</button></p> - <div id='xc4e3ffe6' style='display:none;' class='imgcontainer'> +<button id='x4478980c' onclick='hideorshow("x4478980c","xb3d62a12")'>show</button></p> + <div id='xb3d62a12' style='display:none;' class='imgcontainer'> <div style="max-width:456px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 456.566 223.344"> <circle cx="5" cy="56" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,56 20,60 20,52" style="fill:rgb(0,0,0)"/> @@ -777,8 +777,8 @@ have a FILTER clause in between the function and the OVER clause. </svg> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='x98ae4005' onclick='hideorshow("x98ae4005","x0a87bd5c")'>show</button></p> - <div id='x0a87bd5c' style='display:none;' class='imgcontainer'> +<button id='x76291b21' onclick='hideorshow("x76291b21","x7d4fd215")'>show</button></p> + <div id='x7d4fd215' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -839,8 +839,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/literal-value.html">literal-value:</a></b> -<button id='x4a625953' onclick='hideorshow("x4a625953","x9125574b")'>show</button></p> - <div id='x9125574b' style='display:none;' class='imgcontainer'> +<button id='x215fbba5' onclick='hideorshow("x215fbba5","x81da5fe3")'>show</button></p> + <div id='x81da5fe3' style='display:none;' class='imgcontainer'> <div style="max-width:341px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 341.376 336.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,319 39,324 39,315" style="fill:rgb(0,0,0)"/> @@ -910,8 +910,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/over-clause.html">over-clause:</a></b> -<button id='xb0bfa350' onclick='hideorshow("xb0bfa350","x3b0338ed")'>show</button></p> - <div id='x3b0338ed' style='display:none;' class='imgcontainer'> +<button id='x1113251e' onclick='hideorshow("x1113251e","xff163cd6")'>show</button></p> + <div id='xff163cd6' style='display:none;' class='imgcontainer'> <div style="max-width:600px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 600.706 418.392"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1002,8 +1002,8 @@ have a FILTER clause in between the function and the OVER clause. </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x2961ee84' onclick='hideorshow("x2961ee84","x04891692")'>hide</button></p> - <div id='x04891692' class='imgcontainer'> +<button id='x4e8e9265' onclick='hideorshow("x4e8e9265","x17ffaecd")'>hide</button></p> + <div id='x17ffaecd' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -1212,8 +1212,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='xcf7c2f66' onclick='hideorshow("xcf7c2f66","x4da0c1d5")'>show</button></p> - <div id='x4da0c1d5' style='display:none;' class='imgcontainer'> +<button id='x8e41936b' onclick='hideorshow("x8e41936b","x6fd1ecaf")'>show</button></p> + <div id='x6fd1ecaf' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1274,8 +1274,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/raise-function.html">raise-function:</a></b> -<button id='xd499344a' onclick='hideorshow("xd499344a","x86451066")'>show</button></p> - <div id='x86451066' style='display:none;' class='imgcontainer'> +<button id='x994542dd' onclick='hideorshow("x994542dd","x8b34c08b")'>show</button></p> + <div id='x8b34c08b' style='display:none;' class='imgcontainer'> <div style="max-width:627px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 627.302 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1330,8 +1330,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='x3e9b2388' onclick='hideorshow("x3e9b2388","x1db2093e")'>show</button></p> - <div id='x1db2093e' style='display:none;' class='imgcontainer'> +<button id='x0ed31772' onclick='hideorshow("x0ed31772","x95a67155")'>show</button></p> + <div id='x95a67155' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -1609,8 +1609,8 @@ have a FILTER clause in between the function and the OVER clause. </svg> </div> <p><b><a href="syntax/common-table-expression.html">common-table-expression:</a></b> -<button id='x22e81d6a' onclick='hideorshow("x22e81d6a","x4c1ab371")'>show</button></p> - <div id='x4c1ab371' style='display:none;' class='imgcontainer'> +<button id='x5c775959' onclick='hideorshow("x5c775959","x4c86bd0e")'>show</button></p> + <div id='x4c86bd0e' style='display:none;' class='imgcontainer'> <div style="max-width:638px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 638.525 167.4"> <circle cx="5" cy="29" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,29 20,33 20,24" style="fill:rgb(0,0,0)"/> @@ -1680,8 +1680,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/compound-operator.html">compound-operator:</a></b> -<button id='x89950653' onclick='hideorshow("x89950653","xceff8d96")'>show</button></p> - <div id='xceff8d96' style='display:none;' class='imgcontainer'> +<button id='x2a0433b1' onclick='hideorshow("x2a0433b1","x2a5ff775")'>show</button></p> + <div id='x2a5ff775' style='display:none;' class='imgcontainer'> <div style="max-width:293px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 293.842 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1722,8 +1722,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='x5ecb3f06' onclick='hideorshow("x5ecb3f06","x25642fa8")'>show</button></p> - <div id='x25642fa8' style='display:none;' class='imgcontainer'> +<button id='x3513ae9f' onclick='hideorshow("x3513ae9f","x25979698")'>show</button></p> + <div id='x25979698' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1754,8 +1754,8 @@ have a FILTER clause in between the function and the OVER clause. </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='x9f0e73e3' onclick='hideorshow("x9f0e73e3","x105195d3")'>show</button></p> - <div id='x105195d3' style='display:none;' class='imgcontainer'> +<button id='x7994968a' onclick='hideorshow("x7994968a","x2661b185")'>show</button></p> + <div id='x2661b185' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -1802,8 +1802,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='xfa31f036' onclick='hideorshow("xfa31f036","x58a596b4")'>show</button></p> - <div id='x58a596b4' style='display:none;' class='imgcontainer'> +<button id='x42064693' onclick='hideorshow("x42064693","x950dfd4a")'>show</button></p> + <div id='x950dfd4a' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -1870,8 +1870,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='x50e5887c' onclick='hideorshow("x50e5887c","x3985c24c")'>show</button></p> - <div id='x3985c24c' style='display:none;' class='imgcontainer'> +<button id='xd4106520' onclick='hideorshow("xd4106520","x5cd745fd")'>show</button></p> + <div id='x5cd745fd' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -1931,8 +1931,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='x0857d62f' onclick='hideorshow("x0857d62f","x094cf564")'>show</button></p> - <div id='x094cf564' style='display:none;' class='imgcontainer'> +<button id='x409b09bb' onclick='hideorshow("x409b09bb","x875cc923")'>show</button></p> + <div id='x875cc923' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -1984,8 +1984,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='xee1e290d' onclick='hideorshow("xee1e290d","x1d3f9721")'>show</button></p> - <div id='x1d3f9721' style='display:none;' class='imgcontainer'> +<button id='x827d9266' onclick='hideorshow("x827d9266","x9829c2ab")'>show</button></p> + <div id='x9829c2ab' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -2130,8 +2130,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/type-name.html">type-name:</a></b> -<button id='xcf057e45' onclick='hideorshow("xcf057e45","xdd8e2cf1")'>show</button></p> - <div id='xdd8e2cf1' style='display:none;' class='imgcontainer'> +<button id='x9818642d' onclick='hideorshow("x9818642d","x6455eb06")'>show</button></p> + <div id='x6455eb06' style='display:none;' class='imgcontainer'> <div style="max-width:661px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 661.008 110.16"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -2185,8 +2185,8 @@ have a FILTER clause in between the function and the OVER clause. </svg> </div> <p><b><a href="syntax/signed-number.html">signed-number:</a></b> -<button id='xbfbe88e9' onclick='hideorshow("xbfbe88e9","x27d3cd5a")'>show</button></p> - <div id='x27d3cd5a' style='display:none;' class='imgcontainer'> +<button id='x75542a8b' onclick='hideorshow("x75542a8b","x04d29758")'>show</button></p> + <div id='x04d29758' style='display:none;' class='imgcontainer'> <div style="max-width:292px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 292.013 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,44 39,48 39,40" style="fill:rgb(0,0,0)"/> @@ -2214,8 +2214,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/filter-clause.html">filter-clause:</a></b> -<button id='x42666c57' onclick='hideorshow("x42666c57","x3adc8ba7")'>hide</button></p> - <div id='x3adc8ba7' class='imgcontainer'> +<button id='xf2f57ed1' onclick='hideorshow("xf2f57ed1","xe8bc788f")'>hide</button></p> + <div id='xe8bc788f' class='imgcontainer'> <div style="max-width:422px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 422.381 34.56"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -2245,8 +2245,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='x792b9975' onclick='hideorshow("x792b9975","x477af11c")'>hide</button></p> - <div id='x477af11c' class='imgcontainer'> +<button id='x0ac8b2da' onclick='hideorshow("x0ac8b2da","x8e58a488")'>hide</button></p> + <div id='x8e58a488' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -2326,8 +2326,8 @@ have a FILTER clause in between the function and the OVER clause. </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x3af3f931' onclick='hideorshow("x3af3f931","xc7f772f6")'>hide</button></p> - <div id='xc7f772f6' class='imgcontainer'> +<button id='xdbb8ae77' onclick='hideorshow("xdbb8ae77","x0842b931")'>hide</button></p> + <div id='x0842b931' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -2536,8 +2536,8 @@ have a FILTER clause in between the function and the OVER clause. </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='xe0fe7824' onclick='hideorshow("xe0fe7824","x537a9e34")'>show</button></p> - <div id='x537a9e34' style='display:none;' class='imgcontainer'> +<button id='xb69c6776' onclick='hideorshow("xb69c6776","xd86e3a7e")'>show</button></p> + <div id='xd86e3a7e' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -2609,7 +2609,7 @@ ORDER BY clause of a SELECT statement. </p><p>Window functions come in two varieties: <a href="windowfunctions.html#aggwinfunc">aggregate window functions</a> and <a href="windowfunctions.html#builtins">built-in window functions</a>. Every aggregate window function -can also work as a ordinary aggregate function, simply by omitting +can also work as an ordinary aggregate function, simply by omitting the OVER and FILTER clauses. Furthermore, all of the built-in <a href="lang_aggfunc.html">aggregate functions</a> of SQLite can be used as an aggregate window function by adding an appropriate OVER clause. @@ -2797,8 +2797,8 @@ read by an aggregate window function. The <p> Here are the syntax details: <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x0199aef6' onclick='hideorshow("x0199aef6","x56b9bd0c")'>hide</button></p> - <div id='x56b9bd0c' class='imgcontainer'> +<button id='x2d48b895' onclick='hideorshow("x2d48b895","xf29b33b1")'>hide</button></p> + <div id='xf29b33b1' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -3006,8 +3006,8 @@ read by an aggregate window function. The </svg> </div> <p><b><a href="syntax/expr.html">expr:</a></b> -<button id='xac4aee76' onclick='hideorshow("xac4aee76","x789c4ff5")'>show</button></p> - <div id='x789c4ff5' style='display:none;' class='imgcontainer'> +<button id='x535031ae' onclick='hideorshow("x535031ae","x5898a7c9")'>show</button></p> + <div id='x5898a7c9' style='display:none;' class='imgcontainer'> <div style="max-width:963px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 963.96 1068.77"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -3488,8 +3488,8 @@ read by an aggregate window function. The </svg> </div> <p><b><a href="syntax/filter-clause.html">filter-clause:</a></b> -<button id='x6e5adba8' onclick='hideorshow("x6e5adba8","xdbb0e8d4")'>show</button></p> - <div id='xdbb0e8d4' style='display:none;' class='imgcontainer'> +<button id='xa2ba9142' onclick='hideorshow("xa2ba9142","xb4adf57b")'>show</button></p> + <div id='xb4adf57b' style='display:none;' class='imgcontainer'> <div style="max-width:422px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 422.381 34.56"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -3519,8 +3519,8 @@ read by an aggregate window function. The </div> </div> <p><b><a href="syntax/function-arguments.html">function-arguments:</a></b> -<button id='x62f7c893' onclick='hideorshow("x62f7c893","x2e28c5e5")'>show</button></p> - <div id='x2e28c5e5' style='display:none;' class='imgcontainer'> +<button id='xde7e5666' onclick='hideorshow("xde7e5666","x7c405d41")'>show</button></p> + <div id='x7c405d41' style='display:none;' class='imgcontainer'> <div style="max-width:456px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 456.566 223.344"> <circle cx="5" cy="56" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,56 20,60 20,52" style="fill:rgb(0,0,0)"/> @@ -3582,8 +3582,8 @@ read by an aggregate window function. The </svg> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='xa4e5c48b' onclick='hideorshow("xa4e5c48b","xf02c44ea")'>show</button></p> - <div id='xf02c44ea' style='display:none;' class='imgcontainer'> +<button id='xaca473da' onclick='hideorshow("xaca473da","xbdfb6faa")'>show</button></p> + <div id='xbdfb6faa' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -3644,8 +3644,8 @@ read by an aggregate window function. The </div> </div> <p><b><a href="syntax/literal-value.html">literal-value:</a></b> -<button id='x7c347ea1' onclick='hideorshow("x7c347ea1","x94bc3bbf")'>show</button></p> - <div id='x94bc3bbf' style='display:none;' class='imgcontainer'> +<button id='x8c815ca5' onclick='hideorshow("x8c815ca5","xf97a6947")'>show</button></p> + <div id='xf97a6947' style='display:none;' class='imgcontainer'> <div style="max-width:341px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 341.376 336.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,319 39,324 39,315" style="fill:rgb(0,0,0)"/> @@ -3715,8 +3715,8 @@ read by an aggregate window function. The </div> </div> <p><b><a href="syntax/over-clause.html">over-clause:</a></b> -<button id='x52470a2d' onclick='hideorshow("x52470a2d","x792b8a02")'>show</button></p> - <div id='x792b8a02' style='display:none;' class='imgcontainer'> +<button id='x316aaf72' onclick='hideorshow("x316aaf72","x9c859035")'>show</button></p> + <div id='x9c859035' style='display:none;' class='imgcontainer'> <div style="max-width:600px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 600.706 418.392"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -3807,8 +3807,8 @@ read by an aggregate window function. The </svg> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='x85933096' onclick='hideorshow("x85933096","x08cc4720")'>show</button></p> - <div id='x08cc4720' style='display:none;' class='imgcontainer'> +<button id='xcbe16931' onclick='hideorshow("xcbe16931","x134b52e3")'>show</button></p> + <div id='x134b52e3' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -3869,8 +3869,8 @@ read by an aggregate window function. The </div> </div> <p><b><a href="syntax/raise-function.html">raise-function:</a></b> -<button id='x78ec9ddf' onclick='hideorshow("x78ec9ddf","xaaf6e4dd")'>show</button></p> - <div id='xaaf6e4dd' style='display:none;' class='imgcontainer'> +<button id='xe58b1bb9' onclick='hideorshow("xe58b1bb9","x544978e2")'>show</button></p> + <div id='x544978e2' style='display:none;' class='imgcontainer'> <div style="max-width:627px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 627.302 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -3925,8 +3925,8 @@ read by an aggregate window function. The </div> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='x55ed670b' onclick='hideorshow("x55ed670b","x8d102754")'>show</button></p> - <div id='x8d102754' style='display:none;' class='imgcontainer'> +<button id='xd6121c61' onclick='hideorshow("xd6121c61","xb2ebe95d")'>show</button></p> + <div id='xb2ebe95d' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -4204,8 +4204,8 @@ read by an aggregate window function. The </svg> </div> <p><b><a href="syntax/common-table-expression.html">common-table-expression:</a></b> -<button id='xb5f243c6' onclick='hideorshow("xb5f243c6","x9ff2c574")'>show</button></p> - <div id='x9ff2c574' style='display:none;' class='imgcontainer'> +<button id='xcdb1b778' onclick='hideorshow("xcdb1b778","xae5136de")'>show</button></p> + <div id='xae5136de' style='display:none;' class='imgcontainer'> <div style="max-width:638px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 638.525 167.4"> <circle cx="5" cy="29" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,29 20,33 20,24" style="fill:rgb(0,0,0)"/> @@ -4275,8 +4275,8 @@ read by an aggregate window function. The </div> </div> <p><b><a href="syntax/compound-operator.html">compound-operator:</a></b> -<button id='x91d419e5' onclick='hideorshow("x91d419e5","x5d685770")'>show</button></p> - <div id='x5d685770' style='display:none;' class='imgcontainer'> +<button id='xab893daf' onclick='hideorshow("xab893daf","xcbd83a12")'>show</button></p> + <div id='xcbd83a12' style='display:none;' class='imgcontainer'> <div style="max-width:293px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 293.842 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -4317,8 +4317,8 @@ read by an aggregate window function. The </div> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='xefb9c824' onclick='hideorshow("xefb9c824","x3aab8e3c")'>show</button></p> - <div id='x3aab8e3c' style='display:none;' class='imgcontainer'> +<button id='xde46189e' onclick='hideorshow("xde46189e","x948e1885")'>show</button></p> + <div id='x948e1885' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -4349,8 +4349,8 @@ read by an aggregate window function. The </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='x1bff3899' onclick='hideorshow("x1bff3899","x2354f933")'>show</button></p> - <div id='x2354f933' style='display:none;' class='imgcontainer'> +<button id='xd1111596' onclick='hideorshow("xd1111596","x60d743e2")'>show</button></p> + <div id='x60d743e2' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -4397,8 +4397,8 @@ read by an aggregate window function. The </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='xd89646f0' onclick='hideorshow("xd89646f0","x06401d72")'>show</button></p> - <div id='x06401d72' style='display:none;' class='imgcontainer'> +<button id='xd0cf6393' onclick='hideorshow("xd0cf6393","x2f88c1d8")'>show</button></p> + <div id='x2f88c1d8' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -4465,8 +4465,8 @@ read by an aggregate window function. The </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='xfb6a9b78' onclick='hideorshow("xfb6a9b78","xad22eab0")'>show</button></p> - <div id='xad22eab0' style='display:none;' class='imgcontainer'> +<button id='x32cb9fc5' onclick='hideorshow("x32cb9fc5","xa1e90b9e")'>show</button></p> + <div id='xa1e90b9e' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -4526,8 +4526,8 @@ read by an aggregate window function. The </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='xdb83a7b9' onclick='hideorshow("xdb83a7b9","xcca4ae9d")'>show</button></p> - <div id='xcca4ae9d' style='display:none;' class='imgcontainer'> +<button id='x445e0b16' onclick='hideorshow("x445e0b16","xaa77a6e7")'>show</button></p> + <div id='xaa77a6e7' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -4579,8 +4579,8 @@ read by an aggregate window function. The </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='x5c9faa54' onclick='hideorshow("x5c9faa54","x02ce5f50")'>show</button></p> - <div id='x02ce5f50' style='display:none;' class='imgcontainer'> +<button id='xc19e5848' onclick='hideorshow("xc19e5848","xe56e459d")'>show</button></p> + <div id='xe56e459d' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -4724,8 +4724,8 @@ read by an aggregate window function. The </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='xb0d1461b' onclick='hideorshow("xb0d1461b","xa8f015e1")'>show</button></p> - <div id='xa8f015e1' style='display:none;' class='imgcontainer'> +<button id='x02de707e' onclick='hideorshow("x02de707e","xe3bca836")'>show</button></p> + <div id='xe3bca836' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -4807,8 +4807,8 @@ read by an aggregate window function. The </div> </div> <p><b><a href="syntax/type-name.html">type-name:</a></b> -<button id='x187bb7f1' onclick='hideorshow("x187bb7f1","x2230c8ce")'>show</button></p> - <div id='x2230c8ce' style='display:none;' class='imgcontainer'> +<button id='xd448932b' onclick='hideorshow("xd448932b","xe9a3227c")'>show</button></p> + <div id='xe9a3227c' style='display:none;' class='imgcontainer'> <div style="max-width:661px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 661.008 110.16"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -4862,8 +4862,8 @@ read by an aggregate window function. The </svg> </div> <p><b><a href="syntax/signed-number.html">signed-number:</a></b> -<button id='x2e27fd13' onclick='hideorshow("x2e27fd13","x3f3bc4fd")'>show</button></p> - <div id='x3f3bc4fd' style='display:none;' class='imgcontainer'> +<button id='x4bb1a0c0' onclick='hideorshow("x4bb1a0c0","x25a888e5")'>show</button></p> + <div id='x25a888e5' style='display:none;' class='imgcontainer'> <div style="max-width:292px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 292.013 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,44 39,48 39,40" style="fill:rgb(0,0,0)"/> @@ -5145,8 +5145,8 @@ FROM t1 ORDER BY c, a; <h2 id="the_filter_clause"><span>2.3. </span>The FILTER Clause</h2> <p><b><a href="syntax/filter-clause.html">filter-clause:</a></b> -<button id='x9c6ef48a' onclick='hideorshow("x9c6ef48a","x4dc11b33")'>hide</button></p> - <div id='x4dc11b33' class='imgcontainer'> +<button id='xdfe67349' onclick='hideorshow("xdfe67349","x80505591")'>hide</button></p> + <div id='x80505591' class='imgcontainer'> <div style="max-width:422px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 422.381 34.56"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -5175,8 +5175,8 @@ FROM t1 ORDER BY c, a; </svg> </div> <p><b><a href="syntax/expr.html">expr:</a></b> -<button id='xdc983a44' onclick='hideorshow("xdc983a44","x697d9515")'>show</button></p> - <div id='x697d9515' style='display:none;' class='imgcontainer'> +<button id='xa2fc8f5d' onclick='hideorshow("xa2fc8f5d","xb80e9d88")'>show</button></p> + <div id='xb80e9d88' style='display:none;' class='imgcontainer'> <div style="max-width:963px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 963.96 1068.77"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -5657,8 +5657,8 @@ FROM t1 ORDER BY c, a; </svg> </div> <p><b><a href="syntax/function-arguments.html">function-arguments:</a></b> -<button id='x7f57e866' onclick='hideorshow("x7f57e866","xd7a5c5d5")'>show</button></p> - <div id='xd7a5c5d5' style='display:none;' class='imgcontainer'> +<button id='xf6ac8e66' onclick='hideorshow("xf6ac8e66","xec5b4a4b")'>show</button></p> + <div id='xec5b4a4b' style='display:none;' class='imgcontainer'> <div style="max-width:456px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 456.566 223.344"> <circle cx="5" cy="56" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,56 20,60 20,52" style="fill:rgb(0,0,0)"/> @@ -5720,8 +5720,8 @@ FROM t1 ORDER BY c, a; </svg> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='x085f9125' onclick='hideorshow("x085f9125","xa064d583")'>show</button></p> - <div id='xa064d583' style='display:none;' class='imgcontainer'> +<button id='x4dd4cd8d' onclick='hideorshow("x4dd4cd8d","x9cc14ebe")'>show</button></p> + <div id='x9cc14ebe' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -5782,8 +5782,8 @@ FROM t1 ORDER BY c, a; </div> </div> <p><b><a href="syntax/literal-value.html">literal-value:</a></b> -<button id='x301b5e69' onclick='hideorshow("x301b5e69","x7dbaddb3")'>show</button></p> - <div id='x7dbaddb3' style='display:none;' class='imgcontainer'> +<button id='x28c234c3' onclick='hideorshow("x28c234c3","x8fafc3ce")'>show</button></p> + <div id='x8fafc3ce' style='display:none;' class='imgcontainer'> <div style="max-width:341px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 341.376 336.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,319 39,324 39,315" style="fill:rgb(0,0,0)"/> @@ -5853,8 +5853,8 @@ FROM t1 ORDER BY c, a; </div> </div> <p><b><a href="syntax/over-clause.html">over-clause:</a></b> -<button id='xd98e3155' onclick='hideorshow("xd98e3155","x17f939ee")'>show</button></p> - <div id='x17f939ee' style='display:none;' class='imgcontainer'> +<button id='x4682c9e8' onclick='hideorshow("x4682c9e8","xe4d4002e")'>show</button></p> + <div id='xe4d4002e' style='display:none;' class='imgcontainer'> <div style="max-width:600px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 600.706 418.392"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -5945,8 +5945,8 @@ FROM t1 ORDER BY c, a; </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='x36e52421' onclick='hideorshow("x36e52421","x0f9f75a4")'>show</button></p> - <div id='x0f9f75a4' style='display:none;' class='imgcontainer'> +<button id='xe32bb2d7' onclick='hideorshow("xe32bb2d7","x48dd3ee9")'>show</button></p> + <div id='x48dd3ee9' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -6155,8 +6155,8 @@ FROM t1 ORDER BY c, a; </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='x1df87fd8' onclick='hideorshow("x1df87fd8","x420baa92")'>show</button></p> - <div id='x420baa92' style='display:none;' class='imgcontainer'> +<button id='x4cead0b3' onclick='hideorshow("x4cead0b3","xb4ecb865")'>show</button></p> + <div id='xb4ecb865' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -6217,8 +6217,8 @@ FROM t1 ORDER BY c, a; </div> </div> <p><b><a href="syntax/raise-function.html">raise-function:</a></b> -<button id='x4a5943b5' onclick='hideorshow("x4a5943b5","x85d7df8c")'>show</button></p> - <div id='x85d7df8c' style='display:none;' class='imgcontainer'> +<button id='x6dd82a26' onclick='hideorshow("x6dd82a26","xfec4a21d")'>show</button></p> + <div id='xfec4a21d' style='display:none;' class='imgcontainer'> <div style="max-width:627px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 627.302 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -6273,8 +6273,8 @@ FROM t1 ORDER BY c, a; </div> </div> <p><b><a href="syntax/select-stmt.html">select-stmt:</a></b> -<button id='xb11a1037' onclick='hideorshow("xb11a1037","x12d9418a")'>show</button></p> - <div id='x12d9418a' style='display:none;' class='imgcontainer'> +<button id='xc07d1e39' onclick='hideorshow("xc07d1e39","x063a4d98")'>show</button></p> + <div id='x063a4d98' style='display:none;' class='imgcontainer'> <div style="max-width:669px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 669.677 1162.3"> <path d="M55,845L667,845L667,99L55,99Z" style="fill:none;stroke-width:3.24;stroke:rgb(211,211,211);" /> <circle cx="6" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> @@ -6552,8 +6552,8 @@ FROM t1 ORDER BY c, a; </svg> </div> <p><b><a href="syntax/common-table-expression.html">common-table-expression:</a></b> -<button id='x09152732' onclick='hideorshow("x09152732","x4c0fda46")'>show</button></p> - <div id='x4c0fda46' style='display:none;' class='imgcontainer'> +<button id='xd4ddba1a' onclick='hideorshow("xd4ddba1a","xded90b1e")'>show</button></p> + <div id='xded90b1e' style='display:none;' class='imgcontainer'> <div style="max-width:638px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 638.525 167.4"> <circle cx="5" cy="29" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,29 20,33 20,24" style="fill:rgb(0,0,0)"/> @@ -6623,8 +6623,8 @@ FROM t1 ORDER BY c, a; </div> </div> <p><b><a href="syntax/compound-operator.html">compound-operator:</a></b> -<button id='xbe4aff98' onclick='hideorshow("xbe4aff98","xbacc089d")'>show</button></p> - <div id='xbacc089d' style='display:none;' class='imgcontainer'> +<button id='x9b0ac1ee' onclick='hideorshow("x9b0ac1ee","x2ead26cf")'>show</button></p> + <div id='x2ead26cf' style='display:none;' class='imgcontainer'> <div style="max-width:293px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 293.842 147.96"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -6665,8 +6665,8 @@ FROM t1 ORDER BY c, a; </div> </div> <p><b><a href="syntax/join-clause.html">join-clause:</a></b> -<button id='x09db4fdc' onclick='hideorshow("x09db4fdc","xf6525aa6")'>show</button></p> - <div id='xf6525aa6' style='display:none;' class='imgcontainer'> +<button id='xdda04908' onclick='hideorshow("xdda04908","x93f8cd90")'>show</button></p> + <div id='x93f8cd90' style='display:none;' class='imgcontainer'> <div style="max-width:793px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 793.282 84.24"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -6697,8 +6697,8 @@ FROM t1 ORDER BY c, a; </svg> </div> <p><b><a href="syntax/join-constraint.html">join-constraint:</a></b> -<button id='xf5b07b14' onclick='hideorshow("xf5b07b14","x7d470f23")'>show</button></p> - <div id='x7d470f23' style='display:none;' class='imgcontainer'> +<button id='x35740004' onclick='hideorshow("x35740004","x414583c7")'>show</button></p> + <div id='x414583c7' style='display:none;' class='imgcontainer'> <div style="max-width:483px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 483.336 126.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,55 39,59 39,50" style="fill:rgb(0,0,0)"/> @@ -6745,8 +6745,8 @@ FROM t1 ORDER BY c, a; </div> </div> <p><b><a href="syntax/join-operator.html">join-operator:</a></b> -<button id='x1f8f067e' onclick='hideorshow("x1f8f067e","x77621cba")'>show</button></p> - <div id='x77621cba' style='display:none;' class='imgcontainer'> +<button id='x0dcd7060' onclick='hideorshow("x0dcd7060","x90198d7e")'>show</button></p> + <div id='x90198d7e' style='display:none;' class='imgcontainer'> <div style="max-width:620px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 620.333 255.312"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,71 39,76 39,67" style="fill:rgb(0,0,0)"/> @@ -6813,8 +6813,8 @@ FROM t1 ORDER BY c, a; </div> </div> <p><b><a href="syntax/ordering-term.html">ordering-term:</a></b> -<button id='x2c2d83da' onclick='hideorshow("x2c2d83da","x4f75c28b")'>show</button></p> - <div id='x4f75c28b' style='display:none;' class='imgcontainer'> +<button id='x74a61c7c' onclick='hideorshow("x74a61c7c","xd78a941d")'>show</button></p> + <div id='xd78a941d' style='display:none;' class='imgcontainer'> <div style="max-width:798px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 798.451 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -6874,8 +6874,8 @@ FROM t1 ORDER BY c, a; </div> </div> <p><b><a href="syntax/result-column.html">result-column:</a></b> -<button id='x9766d8b9' onclick='hideorshow("x9766d8b9","xbe4652fc")'>show</button></p> - <div id='xbe4652fc' style='display:none;' class='imgcontainer'> +<button id='x4e7118b7' onclick='hideorshow("x4e7118b7","xd3843625")'>show</button></p> + <div id='xd3843625' style='display:none;' class='imgcontainer'> <div style="max-width:398px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 398.054 163.08"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -6927,8 +6927,8 @@ FROM t1 ORDER BY c, a; </div> </div> <p><b><a href="syntax/table-or-subquery.html">table-or-subquery:</a></b> -<button id='xa37b1d70' onclick='hideorshow("xa37b1d70","xdd371957")'>show</button></p> - <div id='xdd371957' style='display:none;' class='imgcontainer'> +<button id='x73838f84' onclick='hideorshow("x73838f84","x71e2799e")'>show</button></p> + <div id='x71e2799e' style='display:none;' class='imgcontainer'> <div style="max-width:720px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 720.778 457.704"> <circle cx="5" cy="36" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,74 39,78 39,70" style="fill:rgb(0,0,0)"/> @@ -7072,8 +7072,8 @@ FROM t1 ORDER BY c, a; </div> </div> <p><b><a href="syntax/window-defn.html">window-defn:</a></b> -<button id='x5a375ead' onclick='hideorshow("x5a375ead","x050877ef")'>show</button></p> - <div id='x050877ef' style='display:none;' class='imgcontainer'> +<button id='xdc9ba9a7' onclick='hideorshow("xdc9ba9a7","x903a8b75")'>show</button></p> + <div id='x903a8b75' style='display:none;' class='imgcontainer'> <div style="max-width:479px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 479.765 380.592"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="32,17 20,21 20,12" style="fill:rgb(0,0,0)"/> @@ -7153,8 +7153,8 @@ FROM t1 ORDER BY c, a; </svg> </div> <p><b><a href="syntax/frame-spec.html">frame-spec:</a></b> -<button id='xc09a2f4d' onclick='hideorshow("xc09a2f4d","xea11e11d")'>show</button></p> - <div id='xea11e11d' style='display:none;' class='imgcontainer'> +<button id='x27a69ac8' onclick='hideorshow("x27a69ac8","x0837afac")'>show</button></p> + <div id='x0837afac' style='display:none;' class='imgcontainer'> <div style="max-width:1039px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 1039.65 522.72"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,92 39,97 39,88" style="fill:rgb(0,0,0)"/> @@ -7365,8 +7365,8 @@ FROM t1 ORDER BY c, a; </div> </div> <p><b><a href="syntax/type-name.html">type-name:</a></b> -<button id='x6fd3d99a' onclick='hideorshow("x6fd3d99a","x5baa1694")'>show</button></p> - <div id='x5baa1694' style='display:none;' class='imgcontainer'> +<button id='xf5f7b40b' onclick='hideorshow("xf5f7b40b","x7cdd2b3d")'>show</button></p> + <div id='x7cdd2b3d' style='display:none;' class='imgcontainer'> <div style="max-width:661px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 661.008 110.16"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="45,17 33,21 33,12" style="fill:rgb(0,0,0)"/> @@ -7420,8 +7420,8 @@ FROM t1 ORDER BY c, a; </svg> </div> <p><b><a href="syntax/signed-number.html">signed-number:</a></b> -<button id='x725d3852' onclick='hideorshow("x725d3852","xa38da6e2")'>show</button></p> - <div id='xa38da6e2' style='display:none;' class='imgcontainer'> +<button id='x6fc5ca4e' onclick='hideorshow("x6fc5ca4e","x1b4a7c7b")'>show</button></p> + <div id='x1b4a7c7b' style='display:none;' class='imgcontainer'> <div style="max-width:292px"><svg xmlns='http://www.w3.org/2000/svg' class="pikchr" viewBox="0 0 292.013 99.576"> <circle cx="5" cy="17" r="3.6" style="fill:none;stroke-width:2.16;stroke:rgb(0,0,0);" /> <polygon points="50,44 39,48 39,40" style="fill:rgb(0,0,0)"/> @@ -7932,5 +7932,5 @@ windows function support was extended to include the EXCLUDE clause, GROUPS frame types, window chaining, and support for "<expr> PRECEDING" and "<expr> FOLLOWING" boundaries in RANGE frames. -</p><p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/windowfunctions.in?m=e661cf1613">2024-04-01 12:41:31</a> UTC </small></i></p> +</p><p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/windowfunctions.in?m=e544fdba2f">2024-04-16 17:22:18</a> UTC </small></i></p> |