]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Modify the SQLITE_DBCONFIG_ENABLE_VIEW option so that it always permits
authordrh <>
Fri, 5 Mar 2021 18:33:01 +0000 (18:33 +0000)
committerdrh <>
Fri, 5 Mar 2021 18:33:01 +0000 (18:33 +0000)
TEMP views, just as SQLITE_DBCONFIG_ENABLE_TRIGGER always permits TEMP
triggers.

FossilOrigin-Name: 83dab8b358b6832a221a58e74dd5e99b9cdea4eee65124bb6799881e867d989c

manifest
manifest.uuid
src/select.c
src/sqlite.h.in
test/view.test

index 62f72863bec3d9d667d394129b18346d76ee2486..e4ce5d3f8dde8595c03000d1977ee57052bbb0b2 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sproblems\swith\sRETURNING\sclauses\sattached\sto\sUPDATEs\son\stables\swith\svirtual\scolumns.
-D 2021-03-05T15:42:15.578
+C Modify\sthe\sSQLITE_DBCONFIG_ENABLE_VIEW\soption\sso\sthat\sit\salways\spermits\nTEMP\sviews,\sjust\sas\sSQLITE_DBCONFIG_ENABLE_TRIGGER\salways\spermits\sTEMP\ntriggers.
+D 2021-03-05T18:33:01.185
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -542,9 +542,9 @@ F src/printf.c 2b03a80d7c11bb422115dca175a18bf430e9c9dbaa0eee63b758f0c022f8f34f
 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
 F src/resolve.c 688070848f0a0c41bcc545a4b4b052921d9abc29ba3102985d3d6f7595d9637c
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
-F src/select.c 297724a06fb8ecfcebae72f80c4d0f579bd28d428e011a61a75be366da644323
+F src/select.c fb1851222c3ec1e0e1b4c8197a76a4595008956220ddebd7a0a898ad15705acc
 F src/shell.c.in af18a2e980aabe739a8188266464866fe7947b100674e07480e7ba3e37595947
-F src/sqlite.h.in 8855a19f37ade8dad189a9e48233a2ebe1b46faf469c7eb0906a654e252dcc57
+F src/sqlite.h.in 3426a080ea1f222a73e3bd91e7eacbd30570a0117c03d42c6dde606f33e5e318
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h 61b38c073d5e1e96a3d45271b257aef27d0d13da2bea5347692ae579475cd95e
 F src/sqliteInt.h 7c4679b3b068149f497fe50203a4b04be6b17b8aba581cdbc75da45329cad915
@@ -1676,7 +1676,7 @@ F test/vacuum6.test d3173a54edc81d13d99e4cf4972232b3cbb52f1d56ed48c3a939ef4e751c
 F test/vacuummem.test 7b42abb3208bd82dd23a7536588396f295a314f2
 F test/varint.test bbce22cda8fc4d135bcc2b589574be8410614e62
 F test/veryquick.test 57ab846bacf7b90cf4e9a672721ea5c5b669b661
-F test/view.test fd48eddb32a35a98c3de70062ebac66ebf4a2bbfc75a1cc1109159ef8bfc47a9
+F test/view.test ea88361d5e9bc8eabf9f573185a16aea73a885be9b6c6a95ae84908913416a80
 F test/vtab1.test c5d9e90ed02bcacd776dcbb7360199d290f7f53c26b484ddece543060c54319f
 F test/vtab2.test 14d4ab26cee13ba6cf5c5601b158e4f57552d3b055cdd9406cf7f711e9c84082
 F test/vtab3.test b45f47d20f225ccc9c28dc915d92740c2dee311e
@@ -1909,8 +1909,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 90c6b9fcb0e15e2552fe5be53f8201f145bb535cc37b603d488eadf33438412b f0ef5c76ab1a6568b9148b928277bf589d4cb7033c0acf3e6323879b656d8bd1
-R 9ce22f2ca863b622fffd6e204bd49f1c
-T +closed f0ef5c76ab1a6568b9148b928277bf589d4cb7033c0acf3e6323879b656d8bd1
-U dan
-Z 42641730ad48d1c5662411b50a4ba2b2
+P 6b41b136fbfc0b56a6948f2306b69fb1d69306adb86674a15a87fe3b52062512
+R 2b8fdfb64aa0287e9dad9e4deafc2264
+U drh
+Z 2672fe284ccfad8e2f3910b2a1b2092c
index a30e5c69c79cf000b77b6dafca23ea500ae74875..4153e89ec630b9b3c9eda42f931bc877cecb0270 100644 (file)
@@ -1 +1 @@
-6b41b136fbfc0b56a6948f2306b69fb1d69306adb86674a15a87fe3b52062512
\ No newline at end of file
+83dab8b358b6832a221a58e74dd5e99b9cdea4eee65124bb6799881e867d989c
\ No newline at end of file
index ef69c8e461ecc1d8de84ab3012416b5618fcd37c..2b73b2f4d51afd98ba427fae0b517a0a878f5653 100644 (file)
@@ -5254,7 +5254,10 @@ static int selectExpander(Walker *pWalker, Select *p){
         u8 eCodeOrig = pWalker->eCode;
         if( sqlite3ViewGetColumnNames(pParse, pTab) ) return WRC_Abort;
         assert( pFrom->pSelect==0 );
-        if( pTab->pSelect && (db->flags & SQLITE_EnableView)==0 ){
+        if( pTab->pSelect
+         && (db->flags & SQLITE_EnableView)==0
+         && pTab->pSchema!=db->aDb[1].pSchema
+        ){
           sqlite3ErrorMsg(pParse, "access to view \"%s\" prohibited",
             pTab->zName);
         }
index 8a9470f01b2c838cfd5c566452a980f8f482a48d..c018767d13a64c33946c0fae7f31f193896b5f3f 100644 (file)
@@ -2132,7 +2132,13 @@ struct sqlite3_mem_methods {
 ** The second parameter is a pointer to an integer into which
 ** is written 0 or 1 to indicate whether views are disabled or enabled
 ** following this call.  The second parameter may be a NULL pointer, in
-** which case the view setting is not reported back. </dd>
+** which case the view setting is not reported back.
+**
+** <p>Originally this option disabled all views.  ^(However, since
+** SQLite version 3.35.0, TEMP views are still allowed even if
+** this option is off.  So, in other words, this option now only disables
+** views in the main database schema or in the schemas of ATTACH-ed
+** databases.)^ </dd>
 **
 ** [[SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER]]
 ** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt>
index 66109c498c09d79b63a1f38de92a4ec8adba8b2f..b30d4162d007109e69f15ef0198386c739354416 100644 (file)
@@ -44,12 +44,17 @@ do_test view-1.1.100 {
     SELECT * FROM v1 ORDER BY a;
   }
 } {1 {access to view "v1" prohibited}}
+do_execsql_test view-1.1.101 {
+  CREATE TEMP VIEW v1temp AS SELECT a, b FROM t1;
+  SELECT * FROM v1temp ORDER BY a;
+} {1 2 4 5 7 8}
 do_test view-1.1.110 {
   db config enable_view on
   catchsql {
     SELECT * FROM v1 ORDER BY a;
+    SELECT * FROM v1temp ORDER BY a;
   }
-} {0 {1 2 4 5 7 8}}
+} {0 {1 2 4 5 7 8 1 2 4 5 7 8}}
 do_test view-1.2 {
   catchsql {
     ROLLBACK;