]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Documentation updates for the SQLITE_DIRECTONLY flag.
authordrh <drh@noemail.net>
Mon, 16 Sep 2019 14:42:07 +0000 (14:42 +0000)
committerdrh <drh@noemail.net>
Mon, 16 Sep 2019 14:42:07 +0000 (14:42 +0000)
FossilOrigin-Name: 5beb6dc9bc2d3d0003e33488df9c01aaf28c41c30fd9ca35543cbe3ec5a8d9ce

manifest
manifest.uuid
src/sqlite.h.in

index 3e4365572adeff77bf045665b166b01d0b15105c..cb853502188cd2c12ce970afe02d4d96b576ed2c 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sproblem\swith\sprocessing\sCTEs\sthat\suse\sa\sWINDOW\sclause.
-D 2019-09-16T05:34:08.899
+C Documentation\supdates\sfor\sthe\sSQLITE_DIRECTONLY\sflag.
+D 2019-09-16T14:42:07.286
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -527,7 +527,7 @@ F src/resolve.c 9891cf5fd155bb199f8b1ff5d1429b9f70484487f4c455bba94348d4cb6f829f
 F src/rowset.c d977b011993aaea002cab3e0bb2ce50cf346000dff94e944d547b989f4b1fe93
 F src/select.c e2c870548541d33d090a066e89ab2e7943299006e2827c1abfae39561041fc0b
 F src/shell.c.in 68698630c21c5489fb3dc961a3ab3840e726c3c01e475dab96055788a7b6e5e6
-F src/sqlite.h.in 155fea14c0747f8842c4e592e04734f47ad8218d0f33c511849b15d410a7fb5c
+F src/sqlite.h.in 5725a6b20190a1e8d662077a1c1c8ea889ad7be90dd803f914c2de226f5fe6ab
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h cef696ce3293242c67b2339763608427bf72ee66f1f3a05389ac2a7b46001c31
 F src/sqliteInt.h 4a478f7fa0937d7c3141393d8c30c49e242e5e696e6976e19281e4d933a8ab95
@@ -1843,7 +1843,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 01d71b947a7422081d5c7d6ac2c91b9c936dc41926ab58c92f4a088a64e8c051
-R c92814bccf2f0531ff265b831a716091
-U dan
-Z cfe2dcdda6abe970278e2187a7ab525e
+P ca564d4b5b19fe56842a04f31bb61352e6ae9d72a7e7634eb27ebcf5f670545a
+R dbcbe06a79a72ca3a0099e6c3a3876bb
+U drh
+Z 1fa643b2120c76ccf2a9a6f2357afb4d
index 177b32dc78a4e7a8cf0a6be322cf442b82ee6383..25ef849ad42935ec7e4defcea0069965e2ee262a 100644 (file)
@@ -1 +1 @@
-ca564d4b5b19fe56842a04f31bb61352e6ae9d72a7e7634eb27ebcf5f670545a
\ No newline at end of file
+5beb6dc9bc2d3d0003e33488df9c01aaf28c41c30fd9ca35543cbe3ec5a8d9ce
\ No newline at end of file
index acc04ca50adf62f0a8e21b28836992d285d64451..9dbc80764f4c140d91b147cbb9b3a018e70a07e2 100644 (file)
@@ -4860,9 +4860,12 @@ int sqlite3_reset(sqlite3_stmt *pStmt);
 ** function that is not deterministic.  The SQLite query planner is able to
 ** perform additional optimizations on deterministic functions, so use
 ** of the [SQLITE_DETERMINISTIC] flag is recommended where possible.
+**
 ** ^The fourth parameter may also optionally include the [SQLITE_DIRECTONLY]
 ** flag, which if present prevents the function from being invoked from
-** within VIEWs or TRIGGERs.
+** within VIEWs or TRIGGERs.  For security reasons, the [SQLITE_DIRECTONLY]
+** flag is recommended for any application-defined SQL function that has
+** side-effects.
 **
 ** ^(The fifth parameter is an arbitrary pointer.  The implementation of the
 ** function can gain access to this pointer using [sqlite3_user_data()].)^
@@ -4986,7 +4989,12 @@ int sqlite3_create_window_function(
 ** deterministic, for example, but randomblob() is not.
 **
 ** The SQLITE_DIRECTONLY flag means that the function may only be invoked
-** from top-level SQL, and cannot be used in VIEWs or TRIGGERs.
+** from top-level SQL, and cannot be used in VIEWs or TRIGGERs.  This is
+** a security feature which is recommended for all 
+** [application-defined SQL functions] that have side-effects.  This flag 
+** prevents an attacker from adding triggers and views to a schema then 
+** tricking a high-privilege application into causing unintended side-effects
+** while performing ordinary queries.
 **
 ** The SQLITE_SUBTYPE flag indicates to SQLite that a function may call
 ** [sqlite3_value_subtype()] to inspect the sub-types of its arguments.