|
31 | 31 |
|
32 | 32 | #define SQLITE3MC_VERSION_MAJOR 1
|
33 | 33 | #define SQLITE3MC_VERSION_MINOR 8
|
34 |
| -#define SQLITE3MC_VERSION_RELEASE 4 |
| 34 | +#define SQLITE3MC_VERSION_RELEASE 6 |
35 | 35 | #define SQLITE3MC_VERSION_SUBRELEASE 0
|
36 |
| -#define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.8.4" |
| 36 | +#define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.8.6" |
37 | 37 |
|
38 | 38 | #endif /* SQLITE3MC_VERSION_H_ */
|
39 | 39 | /*** End of #include "sqlite3mc_version.h" ***/
|
@@ -192,9 +192,9 @@ extern "C" {
|
192 | 192 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
193 | 193 | ** [sqlite_version()] and [sqlite_source_id()].
|
194 | 194 | */
|
195 |
| -#define SQLITE_VERSION "3.45.2" |
196 |
| -#define SQLITE_VERSION_NUMBER 3045002 |
197 |
| -#define SQLITE_SOURCE_ID "2024-03-12 11:06:23 d8cd6d49b46a395b13955387d05e9e1a2a47e54fb99f3c9b59835bbefad6af77" |
| 195 | +#define SQLITE_VERSION "3.46.0" |
| 196 | +#define SQLITE_VERSION_NUMBER 3046000 |
| 197 | +#define SQLITE_SOURCE_ID "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" |
198 | 198 |
|
199 | 199 | /*
|
200 | 200 | ** CAPI3REF: Run-Time Library Version Numbers
|
@@ -810,11 +810,11 @@ struct sqlite3_file {
|
810 | 810 | ** </ul>
|
811 | 811 | ** xLock() upgrades the database file lock. In other words, xLock() moves the
|
812 | 812 | ** database file lock in the direction NONE toward EXCLUSIVE. The argument to
|
813 |
| -** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never |
| 813 | +** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never |
814 | 814 | ** SQLITE_LOCK_NONE. If the database file lock is already at or above the
|
815 | 815 | ** requested lock, then the call to xLock() is a no-op.
|
816 | 816 | ** xUnlock() downgrades the database file lock to either SHARED or NONE.
|
817 |
| -* If the lock is already at or below the requested lock state, then the call |
| 817 | +** If the lock is already at or below the requested lock state, then the call |
818 | 818 | ** to xUnlock() is a no-op.
|
819 | 819 | ** The xCheckReservedLock() method checks whether any database connection,
|
820 | 820 | ** either in this process or in some other process, is holding a RESERVED,
|
@@ -2189,6 +2189,22 @@ struct sqlite3_mem_methods {
|
2189 | 2189 | ** configuration setting is never used, then the default maximum is determined
|
2190 | 2190 | ** by the [SQLITE_MEMDB_DEFAULT_MAXSIZE] compile-time option. If that
|
2191 | 2191 | ** compile-time option is not set, then the default maximum is 1073741824.
|
| 2192 | +** |
| 2193 | +** [[SQLITE_CONFIG_ROWID_IN_VIEW]] |
| 2194 | +** <dt>SQLITE_CONFIG_ROWID_IN_VIEW |
| 2195 | +** <dd>The SQLITE_CONFIG_ROWID_IN_VIEW option enables or disables the ability |
| 2196 | +** for VIEWs to have a ROWID. The capability can only be enabled if SQLite is |
| 2197 | +** compiled with -DSQLITE_ALLOW_ROWID_IN_VIEW, in which case the capability |
| 2198 | +** defaults to on. This configuration option queries the current setting or |
| 2199 | +** changes the setting to off or on. The argument is a pointer to an integer. |
| 2200 | +** If that integer initially holds a value of 1, then the ability for VIEWs to |
| 2201 | +** have ROWIDs is activated. If the integer initially holds zero, then the |
| 2202 | +** ability is deactivated. Any other initial value for the integer leaves the |
| 2203 | +** setting unchanged. After changes, if any, the integer is written with |
| 2204 | +** a 1 or 0, if the ability for VIEWs to have ROWIDs is on or off. If SQLite |
| 2205 | +** is compiled without -DSQLITE_ALLOW_ROWID_IN_VIEW (which is the usual and |
| 2206 | +** recommended case) then the integer is always filled with zero, regardless |
| 2207 | +** if its initial value. |
2192 | 2208 | ** </dl>
|
2193 | 2209 | */
|
2194 | 2210 | #define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */
|
@@ -2220,6 +2236,7 @@ struct sqlite3_mem_methods {
|
2220 | 2236 | #define SQLITE_CONFIG_SMALL_MALLOC 27 /* boolean */
|
2221 | 2237 | #define SQLITE_CONFIG_SORTERREF_SIZE 28 /* int nByte */
|
2222 | 2238 | #define SQLITE_CONFIG_MEMDB_MAXSIZE 29 /* sqlite3_int64 */
|
| 2239 | +#define SQLITE_CONFIG_ROWID_IN_VIEW 30 /* int* */ |
2223 | 2240 |
|
2224 | 2241 | /*
|
2225 | 2242 | ** CAPI3REF: Database Connection Configuration Options
|
@@ -3334,8 +3351,8 @@ SQLITE_API int sqlite3_set_authorizer(
|
3334 | 3351 | #define SQLITE_RECURSIVE 33 /* NULL NULL */
|
3335 | 3352 |
|
3336 | 3353 | /*
|
3337 |
| -** CAPI3REF: Tracing And Profiling Functions |
3338 |
| -** METHOD: sqlite3 |
| 3354 | +** CAPI3REF: Deprecated Tracing And Profiling Functions |
| 3355 | +** DEPRECATED |
3339 | 3356 | **
|
3340 | 3357 | ** These routines are deprecated. Use the [sqlite3_trace_v2()] interface
|
3341 | 3358 | ** instead of the routines described here.
|
@@ -6916,6 +6933,12 @@ SQLITE_API int sqlite3_autovacuum_pages(
|
6916 | 6933 | ** The exceptions defined in this paragraph might change in a future
|
6917 | 6934 | ** release of SQLite.
|
6918 | 6935 | **
|
| 6936 | +** Whether the update hook is invoked before or after the |
| 6937 | +** corresponding change is currently unspecified and may differ |
| 6938 | +** depending on the type of change. Do not rely on the order of the |
| 6939 | +** hook call with regards to the final result of the operation which |
| 6940 | +** triggers the hook. |
| 6941 | +** |
6919 | 6942 | ** The update hook implementation must not do anything that will modify
|
6920 | 6943 | ** the database connection that invoked the update hook. Any actions
|
6921 | 6944 | ** to modify the database connection must be deferred until after the
|
@@ -8386,7 +8409,7 @@ SQLITE_API int sqlite3_test_control(int op, ...);
|
8386 | 8409 | ** The sqlite3_keyword_count() interface returns the number of distinct
|
8387 | 8410 | ** keywords understood by SQLite.
|
8388 | 8411 | **
|
8389 |
| -** The sqlite3_keyword_name(N,Z,L) interface finds the N-th keyword and |
| 8412 | +** The sqlite3_keyword_name(N,Z,L) interface finds the 0-based N-th keyword and |
8390 | 8413 | ** makes *Z point to that keyword expressed as UTF8 and writes the number
|
8391 | 8414 | ** of bytes in the keyword into *L. The string that *Z points to is not
|
8392 | 8415 | ** zero-terminated. The sqlite3_keyword_name(N,Z,L) routine returns
|
@@ -9965,24 +9988,45 @@ SQLITE_API const char *sqlite3_vtab_collation(sqlite3_index_info*,int);
|
9965 | 9988 | ** <li value="2"><p>
|
9966 | 9989 | ** ^(If the sqlite3_vtab_distinct() interface returns 2, that means
|
9967 | 9990 | ** that the query planner does not need the rows returned in any particular
|
9968 |
| -** order, as long as rows with the same values in all "aOrderBy" columns |
9969 |
| -** are adjacent.)^ ^(Furthermore, only a single row for each particular |
9970 |
| -** combination of values in the columns identified by the "aOrderBy" field |
9971 |
| -** needs to be returned.)^ ^It is always ok for two or more rows with the same |
9972 |
| -** values in all "aOrderBy" columns to be returned, as long as all such rows |
9973 |
| -** are adjacent. ^The virtual table may, if it chooses, omit extra rows |
9974 |
| -** that have the same value for all columns identified by "aOrderBy". |
9975 |
| -** ^However omitting the extra rows is optional. |
| 9991 | +** order, as long as rows with the same values in all columns identified |
| 9992 | +** by "aOrderBy" are adjacent.)^ ^(Furthermore, when two or more rows |
| 9993 | +** contain the same values for all columns identified by "colUsed", all but |
| 9994 | +** one such row may optionally be omitted from the result.)^ |
| 9995 | +** The virtual table is not required to omit rows that are duplicates |
| 9996 | +** over the "colUsed" columns, but if the virtual table can do that without |
| 9997 | +** too much extra effort, it could potentially help the query to run faster. |
9976 | 9998 | ** This mode is used for a DISTINCT query.
|
9977 | 9999 | ** <li value="3"><p>
|
9978 |
| -** ^(If the sqlite3_vtab_distinct() interface returns 3, that means |
9979 |
| -** that the query planner needs only distinct rows but it does need the |
9980 |
| -** rows to be sorted.)^ ^The virtual table implementation is free to omit |
9981 |
| -** rows that are identical in all aOrderBy columns, if it wants to, but |
9982 |
| -** it is not required to omit any rows. This mode is used for queries |
| 10000 | +** ^(If the sqlite3_vtab_distinct() interface returns 3, that means the |
| 10001 | +** virtual table must return rows in the order defined by "aOrderBy" as |
| 10002 | +** if the sqlite3_vtab_distinct() interface had returned 0. However if |
| 10003 | +** two or more rows in the result have the same values for all columns |
| 10004 | +** identified by "colUsed", then all but one such row may optionally be |
| 10005 | +** omitted.)^ Like when the return value is 2, the virtual table |
| 10006 | +** is not required to omit rows that are duplicates over the "colUsed" |
| 10007 | +** columns, but if the virtual table can do that without |
| 10008 | +** too much extra effort, it could potentially help the query to run faster. |
| 10009 | +** This mode is used for queries |
9983 | 10010 | ** that have both DISTINCT and ORDER BY clauses.
|
9984 | 10011 | ** </ol>
|
9985 | 10012 | **
|
| 10013 | +** <p>The following table summarizes the conditions under which the |
| 10014 | +** virtual table is allowed to set the "orderByConsumed" flag based on |
| 10015 | +** the value returned by sqlite3_vtab_distinct(). This table is a |
| 10016 | +** restatement of the previous four paragraphs: |
| 10017 | +** |
| 10018 | +** <table border=1 cellspacing=0 cellpadding=10 width="90%"> |
| 10019 | +** <tr> |
| 10020 | +** <td valign="top">sqlite3_vtab_distinct() return value |
| 10021 | +** <td valign="top">Rows are returned in aOrderBy order |
| 10022 | +** <td valign="top">Rows with the same value in all aOrderBy columns are adjacent |
| 10023 | +** <td valign="top">Duplicates over all colUsed columns may be omitted |
| 10024 | +** <tr><td>0<td>yes<td>yes<td>no |
| 10025 | +** <tr><td>1<td>no<td>yes<td>no |
| 10026 | +** <tr><td>2<td>no<td>yes<td>yes |
| 10027 | +** <tr><td>3<td>yes<td>yes<td>yes |
| 10028 | +** </table> |
| 10029 | +** |
9986 | 10030 | ** ^For the purposes of comparing virtual table output values to see if the
|
9987 | 10031 | ** values are same value for sorting purposes, two NULL values are considered
|
9988 | 10032 | ** to be the same. In other words, the comparison operator is "IS"
|
@@ -12027,6 +12071,30 @@ SQLITE_API int sqlite3changegroup_schema(sqlite3_changegroup*, sqlite3*, const c
|
12027 | 12071 | */
|
12028 | 12072 | SQLITE_API int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void *pData);
|
12029 | 12073 |
|
| 12074 | +/* |
| 12075 | +** CAPI3REF: Add A Single Change To A Changegroup |
| 12076 | +** METHOD: sqlite3_changegroup |
| 12077 | +** |
| 12078 | +** This function adds the single change currently indicated by the iterator |
| 12079 | +** passed as the second argument to the changegroup object. The rules for |
| 12080 | +** adding the change are just as described for [sqlite3changegroup_add()]. |
| 12081 | +** |
| 12082 | +** If the change is successfully added to the changegroup, SQLITE_OK is |
| 12083 | +** returned. Otherwise, an SQLite error code is returned. |
| 12084 | +** |
| 12085 | +** The iterator must point to a valid entry when this function is called. |
| 12086 | +** If it does not, SQLITE_ERROR is returned and no change is added to the |
| 12087 | +** changegroup. Additionally, the iterator must not have been opened with |
| 12088 | +** the SQLITE_CHANGESETAPPLY_INVERT flag. In this case SQLITE_ERROR is also |
| 12089 | +** returned. |
| 12090 | +*/ |
| 12091 | +SQLITE_API int sqlite3changegroup_add_change( |
| 12092 | + sqlite3_changegroup*, |
| 12093 | + sqlite3_changeset_iter* |
| 12094 | +); |
| 12095 | + |
| 12096 | + |
| 12097 | + |
12030 | 12098 | /*
|
12031 | 12099 | ** CAPI3REF: Obtain A Composite Changeset From A Changegroup
|
12032 | 12100 | ** METHOD: sqlite3_changegroup
|
@@ -12831,8 +12899,8 @@ struct Fts5PhraseIter {
|
12831 | 12899 | ** EXTENSION API FUNCTIONS
|
12832 | 12900 | **
|
12833 | 12901 | ** xUserData(pFts):
|
12834 |
| -** Return a copy of the context pointer the extension function was |
12835 |
| -** registered with. |
| 12902 | +** Return a copy of the pUserData pointer passed to the xCreateFunction() |
| 12903 | +** API when the extension function was registered. |
12836 | 12904 | **
|
12837 | 12905 | ** xColumnTotalSize(pFts, iCol, pnToken):
|
12838 | 12906 | ** If parameter iCol is less than zero, set output variable *pnToken
|
@@ -13475,7 +13543,7 @@ SQLITE_API int sqlite3_user_add(
|
13475 | 13543 | ** The sqlite3_user_change() interface can be used to change a users
|
13476 | 13544 | ** login credentials or admin privilege. Any user can change their own
|
13477 | 13545 | ** login credentials. Only an admin user can change another users login
|
13478 |
| -** credentials or admin privilege setting. No user may change their own |
| 13546 | +** credentials or admin privilege setting. No user may change their own |
13479 | 13547 | ** admin privilege setting.
|
13480 | 13548 | */
|
13481 | 13549 | SQLITE_API int sqlite3_user_change(
|
@@ -13709,6 +13777,7 @@ extern "C" {
|
13709 | 13777 | #ifndef SQLITE_PRIVATE
|
13710 | 13778 | #define SQLITE_PRIVATE
|
13711 | 13779 | #endif
|
| 13780 | + |
13712 | 13781 | SQLITE_PRIVATE int sqlite3mcCheckVfs(const char* zVfs);
|
13713 | 13782 |
|
13714 | 13783 | SQLITE_API int sqlite3mc_vfs_create(const char* zVfsReal, int makeDefault);
|
|
0 commit comments