summaryrefslogtreecommitdiffstats
path: root/www/c3ref
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 05:16:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 05:16:48 +0000
commit3640b21e686fef7e3f25dc775112c7d4be43f197 (patch)
treee7fec2ad45891adeada1227d655062cbd201dd5a /www/c3ref
parentReleasing progress-linux version 3.45.3-1~progress7.99u1. (diff)
downloadsqlite3-3640b21e686fef7e3f25dc775112c7d4be43f197.tar.xz
sqlite3-3640b21e686fef7e3f25dc775112c7d4be43f197.zip
Merging upstream version 3.46.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--www/c3ref/c_source_id.html6
-rw-r--r--www/c3ref/funclist.html8
-rw-r--r--www/c3ref/io_methods.html3
-rw-r--r--www/c3ref/keyword_check.html2
-rw-r--r--www/c3ref/profile.html4
-rw-r--r--www/c3ref/sqlite3.html4
-rw-r--r--www/c3ref/update_hook.html6
-rw-r--r--www/c3ref/vtab_distinct.html47
8 files changed, 53 insertions, 27 deletions
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"