]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
First steps toward getting -DSQLITE_ALLOW_ROWID_IN_VIEW to work again. That
authordrh <>
Tue, 19 Mar 2024 02:30:24 +0000 (02:30 +0000)
committerdrh <>
Tue, 19 Mar 2024 02:30:24 +0000 (02:30 +0000)
compile-time option is untested, undocumented, and unsupported.  But it was
mentioned in the release notes for version 3.36.0, so I think that means we
need to support it forever.

FossilOrigin-Name: 7c46ff640247584f1ea260c062de29a0e49f649d1894a526574c1a479006a1fc

manifest
manifest.uuid
src/select.c

index a13b01a2c2e572de5a34a16fd5a81f6d548c5a2f..a8b9d2e2ff122b08930333fa743c02961d8b32d1 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sasan\sproblems\sin\ssqlite3rbu.c.\sEnable\sRBU\sfor\ssanitizer\srelease\stests.
-D 2024-03-18T21:08:33.041
+C First\ssteps\stoward\sgetting\s-DSQLITE_ALLOW_ROWID_IN_VIEW\sto\swork\sagain.\s\sThat\ncompile-time\soption\sis\suntested,\sundocumented,\sand\sunsupported.\s\sBut\sit\swas\nmentioned\sin\sthe\srelease\snotes\sfor\sversion\s3.36.0,\sso\sI\sthink\sthat\smeans\swe\nneed\sto\ssupport\sit\sforever.
+D 2024-03-19T02:30:24.246
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -750,7 +750,7 @@ F src/printf.c 87b67bba3662a0523f39ae6b084a3907109702f717c654d6cecb838af5cd57f1
 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c ef87e3bc7700bfe761a7bbee2ce6084f1766dc816dd82a3ae77c133eec898432
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
-F src/select.c df2bf515fc36e02e97959a70e82da8a4967d6c85590646a7fda2926a734c81ce
+F src/select.c 934eb6e543133cb373ab76f791ded2b2b5c13ac50684453494c4b6c4ea4fba24
 F src/shell.c.in cf80c636bccb0ff9db46995e39d69ca21fde2a8a331d1691e4d62a69d7841c8a
 F src/sqlite.h.in 19a2db3995a699bd7f6dfb423856242bfceb7ec849a93c91d241d19fc28d9f0f
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
@@ -2180,8 +2180,11 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 0f485dbece9146eabe5a5c0998a9e35c685a170c3fe6d4509e92aa8dae18a2c0
-R 59c6c1819c5f6280d4b2fc1e8ab12326
-U dan
-Z 8b503392df6e7d7e46ebd7af33bbcc16
+P ad2ae7717e7a10cf42aeabd3c544e7884fa082295c2babf0fdb19a684d2aba1e
+R cc156187f695f7801f18b2af21acf477
+T *branch * rowid-in-view
+T *sym-rowid-in-view *
+T -sym-trunk *
+U drh
+Z d1168aa5ebee2530ad432f8f9a6ecbd1
 # Remove this line to create a well-formed Fossil manifest.
index 7dfd6e937329fcfa2ad2d2197f1e22e9f301938f..3c83ab3dfc6c65303b86563df28512dfbb57776b 100644 (file)
@@ -1 +1 @@
-ad2ae7717e7a10cf42aeabd3c544e7884fa082295c2babf0fdb19a684d2aba1e
\ No newline at end of file
+7c46ff640247584f1ea260c062de29a0e49f649d1894a526574c1a479006a1fc
\ No newline at end of file
index 1085b994369cae01c9010eecaef010da229de12b..5dfabb140dd5f24414968828dfaf523eadd66438 100644 (file)
@@ -6142,7 +6142,9 @@ static int selectExpander(Walker *pWalker, Select *p){
             pNestedFrom = pFrom->pSelect->pEList;
             assert( pNestedFrom!=0 );
             assert( pNestedFrom->nExpr==pTab->nCol );
+#ifndef SQLITE_ALLOW_ROWID_IN_VIEW
             assert( VisibleRowid(pTab)==0 );
+#endif
           }else{
             if( zTName && sqlite3StrICmp(zTName, zTabName)!=0 ){
               continue;
@@ -6174,7 +6176,10 @@ static int selectExpander(Walker *pWalker, Select *p){
             pUsing = 0;
           }
 
-          nAdd = pTab->nCol + (VisibleRowid(pTab) && (selFlags&SF_NestedFrom));
+          nAdd = pTab->nCol;
+#ifndef SQLITE_ALLOW_ROWID_IN_VIEW
+          if( VisibleRowid(pTab) && (selFlags & SF_NestedFrom)!=0 ) nAdd++;
+#endif
           for(j=0; j<nAdd; j++){
             const char *zName; 
             struct ExprList_item *pX; /* Newly added ExprList term */