-C Fix\san\sincompatibility\swith\sTcl\s9\sin\sscanstatus2.test.
-D 2026-07-24T16:28:47.830
+C Ignore\sany\sDISTINCT\squalifier\son\sa\sSELECT\sstatement\son\sthe\sRHS\sof\san\sIN(...)\sexpression.\sForum\spost\s[bugs:/info/2026-07-25T08:40:13Z\s|\s2026-07-25T08:40:13Z].
+D 2026-07-25T14:49:40.062
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F src/dbpage.c c6a9de13b0a01f0bc94a41e16213ab1ecd15ccfe86df7255ced40fda9446257d
F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c
F src/delete.c 59eeca3fb88c29329afc41bb803ee568b120d9dd7470b5f38ab55cc38390b451
-F src/expr.c fb5075dc231746e795817b096c39d0d1423d8ec29697e97959a50db84dcff211
+F src/expr.c f9bb5f7677dbc85fcb598c9444a5dafa0f21d9ae7b2d8f63fb3b2c36f6eb3cf6
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
F src/fkey.c 931f74cec1dc8038a0217ef340c91ce147dd1bbed08dc40c47ee0ec6edfffb08
F src/func.c 208b4d073a1e823df8d0e19d0529093c09a9984851dcfda9808445541cefe6d0
F test/in.test edf979bff3244b9e47849e2b43886631354c8213791f42da92216f08012141af
F test/in2.test 5d4c61d17493c832f7d2d32bef785119e87bde75
F test/in3.test 3cbf58c87f4052cee3a58b37b6389777505aa0c0
-F test/in4.test e7b1456d423453884aeb9d68fafe9c8e7be7abddc8f028c04205e67820f10772
+F test/in4.test 6630816b7e59b7bd336b0a95cbf831dcf046d35b10ea987d6e69d223735f1887
F test/in5.test 4fd79c70dfa0681313e8cdca07f5ff0400bdc0e20f808a5c59eaef1e4b48082a
F test/in6.test f5f40d6816a8bb7c784424b58a10ac38efb76ab29127a2c17399e0cbeeda0e4b
F test/in7.test d9efdee00b074a60c6343993b2eda78bc369ab080dad864513c73f8aca89d566
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 2cb22877683680c1f89bcc9edb47bd1a4a8755d4a6b846a1a20136a657dacdcc
-R 65549160c0c052b8f6b7cd57bb6323aa
+P 2f1f4f73535386549c12694dc57cfe555eec689ae6824c6241aaf8d5befcd74d
+R 281ba175d7dc74451cfbb28c113fac8a
U dan
-Z b865688db0645fb9c83de093e62c13c9
+Z 48fef5873d55c06851c436c4fd093680
# Remove this line to create a well-formed Fossil manifest.
if( ExprHasProperty(pX, EP_VarSelect) ) return 0; /* Correlated subq */
p = pX->x.pSelect;
if( p->pPrior ) return 0; /* Not a compound SELECT */
- if( p->selFlags & (SF_Distinct|SF_Aggregate) ){
- testcase( (p->selFlags & (SF_Distinct|SF_Aggregate))==SF_Distinct );
- testcase( (p->selFlags & (SF_Distinct|SF_Aggregate))==SF_Aggregate );
- return 0; /* No DISTINCT keyword and no aggregate functions */
+ if( p->selFlags & SF_Aggregate ){
+ return 0; /* No GROUP BY keyword or aggregate functions */
}
assert( p->pGroupBy==0 ); /* Has no GROUP BY clause */
if( p->pLimit ) return 0; /* Has no LIMIT clause */
ORDER BY +id;
} {10 1 2 5 20 1 3 5 30 1 2 4 40 1 3 4}
+#-------------------------------------------------------------------------
+# DISTINCT on the RHS of an IN(...) clause does not prevent it from
+# using an index.
+#
+reset_db
+do_execsql_test 14.0 {
+ CREATE TABLE t1(a INTEGER PRIMARY KEY, b);
+ CREATE TABLE t2(c INTEGER PRIMARY KEY, d);
+ CREATE TABLE t3(e INTEGER PRIMARY KEY, f);
+ CREATE INDEX t3f ON t3(f);
+}
+
+do_execsql_test 14.1 {
+ EXPLAIN SELECT count(*) FROM t2 WHERE d IN (SELECT DISTINCT a FROM t1)
+} [execsql {
+ EXPLAIN SELECT count(*) FROM t2 WHERE d IN (SELECT a FROM t1)
+}]
+
+do_execsql_test 14.2 {
+ EXPLAIN SELECT count(*) FROM t2 WHERE d IN (SELECT DISTINCT f FROM t3)
+} [execsql {
+ EXPLAIN SELECT count(*) FROM t2 WHERE d IN (SELECT f FROM t3)
+}]
+
+
finish_test