]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a problem in cursor-hints for WITHOUT ROWID tables used in a RIGHT JOIN.
authordrh <>
Fri, 24 Mar 2023 19:17:25 +0000 (19:17 +0000)
committerdrh <>
Fri, 24 Mar 2023 19:17:25 +0000 (19:17 +0000)
[forum:/forumpost/591006b1cc|Forum post 591006b1cc].

FossilOrigin-Name: 221fdcec964f8317b2c23e926cc23799615cd3b4239a8a9ff87a83588d05bc64

manifest
manifest.uuid
src/where.c
test/cursorhint.test

index d4368779322614cbff398521f3eaafb5e39309ee..5bfae257ebf66f64dd1fc48681022109fbc7f28a 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sa\sJS\stest\swhich\schecks\sfor\sthe\sissue\sdescribed\sin\s[forum\spost\s895425b49a|forum:895425b49a].
-D 2023-03-24T17:15:15.541
+C Fix\sa\sproblem\sin\scursor-hints\sfor\sWITHOUT\sROWID\stables\sused\sin\sa\sRIGHT\sJOIN.\n[forum:/forumpost/591006b1cc|Forum\spost\s591006b1cc].
+D 2023-03-24T19:17:25.884
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -710,7 +710,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
 F src/wal.c b9df133a705093da8977da5eb202eaadb844839f1c7297c08d33471f5491843d
 F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a
 F src/walker.c f890a3298418d7cba3b69b8803594fdc484ea241206a8dfa99db6dd36f8cbb3b
-F src/where.c db043f9b2da776105e04b0796f42034745a8bb59433d5b7dae798a4417987e52
+F src/where.c 2bf0f0e28a7093b8f3fa661c5474993413bfac5cc55939288856952e73d9d140
 F src/whereInt.h e25203e5bfee149f5f1225ae0166cfb4f1e65490c998a024249e98bb0647377c
 F src/wherecode.c 9919e5a22f4b24dd96c49b8981484cbe6bbfcf466ff73ac40a06e1356aa8bf87
 F src/whereexpr.c 1dfda1695e4480c24248157df55bb4d66c732dc8d14ac16b4f076bb15de93d63
@@ -911,7 +911,7 @@ F test/createtab.test 85cdfdae5c3de331cd888d6c66e1aba575b47c2e3c3cc4a1d6f5414069
 F test/cse.test 00b3aea44b16828833c94fbe92475fd6977583fcb064ae0bc590986812b38d0c
 F test/csv01.test 2ab5514005fd308995c8910bc313e47f0368b94213b9d6c27f9a2da78796a091
 F test/ctime.test 340f362f41f92972bbd71f44e10569a5cc694062b692231bd08aa6fe6c1c4773
-F test/cursorhint.test 0175e4404181ace3ceca8b114eb0a98eae600d565aa4e2705abbe6614c7fe201
+F test/cursorhint.test 096c8a210b31934a1964d45d7fb2aedf1e09e91773b0942abd039285b9953906
 F test/cursorhint2.test 6f3aa9cb19e7418967a10ec6905209bcbb5968054da855fc36c8beee9ae9c42f
 F test/dataversion1.test 6e5e86ac681f0782e766ebcb56c019ae001522d114e0e111e5ebf68ccf2a7bb8
 F test/date.test 118e04db8c8b4efeb885542b4918c7b869a34c460a6bebbfe927dfd75706b80d
@@ -2051,8 +2051,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 2bf5413dc2c19d5feb32e5b01aa9b990ec2f74f45f5ca0dca15215f8c9dbc9b9
-R 9fe10dfde164fd7e9d2d141aa7003a01
-U stephan
-Z 3260419241ad58efe4624da079c64fb7
+P 98d30400e4721b1d48ff601698ced146052654f8c6de7c014d4d239bb2dbef43
+R 6146bc2919cc9016e0146c0a3f2b25ac
+U drh
+Z 04567d784fa8abfc6c05842f7b980df9
 # Remove this line to create a well-formed Fossil manifest.
index a0cde4908e9c198efbd731fad1370a051e24306d..bed544cb06b3c36bbe72aa7fa1e59ec7a57ce1a4 100644 (file)
@@ -1 +1 @@
-98d30400e4721b1d48ff601698ced146052654f8c6de7c014d4d239bb2dbef43
\ No newline at end of file
+221fdcec964f8317b2c23e926cc23799615cd3b4239a8a9ff87a83588d05bc64
\ No newline at end of file
index 9de72d76de1ee682beb038fb9098d2c84c76612d..dd2b8b73c41fd43903de6796ad9f69812d878512 100644 (file)
@@ -6238,7 +6238,7 @@ WhereInfo *sqlite3WhereBegin(
         assert( n<=pTab->nCol );
       }
 #ifdef SQLITE_ENABLE_CURSOR_HINTS
-      if( pLoop->u.btree.pIndex!=0 ){
+      if( pLoop->u.btree.pIndex!=0 && (pTab->tabFlags & TF_WithoutRowid)==0 ){
         sqlite3VdbeChangeP5(v, OPFLAG_SEEKEQ|bFordelete);
       }else
 #endif
index a3397b867328a1eb1e77408eb56272f09d6405ac..16e26fecd4718019bd7eee053ac897779b3bcb25 100644 (file)
@@ -159,4 +159,13 @@ do_test 4.6desc {
   }
 } {AND(AND(EQ(c0,22),GE(c1,10)),LE(c1,20))}
 
+# 2023-03-24 https://sqlite.org/forum/forumpost/591006b1cc
+#
+reset_db
+do_execsql_test 5.0 {
+  CREATE TABLE t1(x TEXT PRIMARY KEY) WITHOUT ROWID;
+  CREATE VIEW t2 AS SELECT 0 FROM t1 WHERE x>='a' OR x='1';
+  SELECT * FROM t2 RIGHT JOIN t1 ON true;
+}
+
 finish_test