]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Bring sqlite3_vtab_distinct() up to spec so that it works as described in the sqlite3_vtab_distinct
authordrh <>
Sat, 22 Jan 2022 20:45:57 +0000 (20:45 +0000)
committerdrh <>
Sat, 22 Jan 2022 20:45:57 +0000 (20:45 +0000)
documentation.

FossilOrigin-Name: 4289edf3c5e32a05b51f232020099b33f6f5e79b0ceca2b96baf1186168d9af6

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

index 00218ad384a97a0eb375a94ba7d9fc207bf4ff10..882cfbc89f77ff9cebc9e825ffc5c8fb2b816b07 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Iimproved\sdocumentation\sfor\ssqlite3_vtab_distinct().\s\sNo\schanges\sto\scode.
-D 2022-01-22T19:19:35.721
+C Bring\ssqlite3_vtab_distinct()\sup\sto\sspec\sso\sthat\sit\sworks\sas\sdescribed\sin\sthe\ndocumentation.
+D 2022-01-22T20:45:57.210
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -639,7 +639,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 bf15b922a134948a56a078e0a01d1e63f9f8ff59f6503cba241855f8cb961b4f
+F src/where.c 9824d15f2a92cbe4d6566e2a97fa4466ce6297e68693322e64281db5e942fa92
 F src/whereInt.h 8a215acde0f833a4dea3d30a7bbed9f48b4b547b5d5e34cd02acee366476ab80
 F src/wherecode.c a0a5138b28550dd95916435283c507aa6bf24607ef38a0a18011e6626684330a
 F src/whereexpr.c 9f64c39e53070584e99e4d20c1dd3397e125fabbae8fd414ffec574c410ac7d3
@@ -1724,7 +1724,7 @@ F test/vtabK.test 13293177528fada1235c0112db0d187d754af1355c5a39371abd365104e3af
 F test/vtab_alter.test 736e66fb5ec7b4fee58229aa3ada2f27ec58bc58c00edae4836890c3784c6783
 F test/vtab_err.test dcc8b7b9cb67522b3fe7a272c73856829dae4ab7fdb30399aea1b6981bda2b65
 F test/vtab_shared.test 5253bff2355a9a3f014c15337da7e177ab0ef8ad
-F test/vtabdistinct.test e35a8c91cd9e2a1130eb708376e33aa38511b880fb7c1691387d3e9ec57d9157
+F test/vtabdistinct.test 7688f0889358f849fd60bbfde1ded38b014b18066076d4bfbb75395804dfe072
 F test/vtabdrop.test 65d4cf6722972e5499bdaf0c0d70ee3b8133944a4e4bc31862563f32a7edca12
 F test/vtabrhs1.test c138346be341916ecc9d918dcfc2657d27bce211a350a82b01d62d224b167b56
 F test/wal.test b7cc6984709f54afbf8441747ced1f646af120bf0c1b1d847bfa39306fbea089
@@ -1941,8 +1941,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 a13afc909c8bb643aa154b39ba8c023bae7352d3cd7cfb96be3891fa0e4bc045
-R ee7e69afa00103e3a528aaa0afa4a945
+P 7af03f02940b5380ee7375672ca8d0ff68c5f741d0ea206911631f3eb5a78555
+R 8c92b45cd50ac9ababc3056da5861966
 U drh
-Z f9808520490668283a6ca50de433adb3
+Z 0f40ebbc8d49180e2de4a825f9a960d1
 # Remove this line to create a well-formed Fossil manifest.
index fb902954b0bc59e3df29d09b8af84b284db8e503..e96d220661d5481e0eabd5488ce498ce1f32f8a5 100644 (file)
@@ -1 +1 @@
-7af03f02940b5380ee7375672ca8d0ff68c5f741d0ea206911631f3eb5a78555
\ No newline at end of file
+4289edf3c5e32a05b51f232020099b33f6f5e79b0ceca2b96baf1186168d9af6
\ No newline at end of file
index c8e7d906b91074ca2264d49ae002671db3a3d4e5..57c4808906d09d13a5c920e6895551ce049e6354 100644 (file)
@@ -1206,8 +1206,8 @@ static sqlite3_index_info *allocateIndexInfo(
     }
     if( i==n){
       nOrderBy = n;
-      if( (pWInfo->wctrlFlags & WHERE_DISTINCTBY) ){
-        eDistinct = 1;
+      if( (pWInfo->wctrlFlags & (WHERE_GROUPBY|WHERE_DISTINCTBY)) ){
+        eDistinct = 1 + ((pWInfo->wctrlFlags & WHERE_DISTINCTBY)!=0);
       }
     }
   }
index 63fa1569d3b2be8c6f557a0d589c376a491683e5..e18e121e50e6292d25fc36cb3d0b3c68fcf516d8 100644 (file)
@@ -27,10 +27,15 @@ do_execsql_test 1.1 {
 } {0}
 do_execsql_test 1.2 {
   SELECT DISTINCT ix FROM qpvtab WHERE vn='sqlite3_vtab_distinct';
-} {1}
+} {2}
 do_execsql_test 1.3 {
   SELECT distinct vn, ix FROM qpvtab(3)
    WHERE +vn IN ('sqlite3_vtab_distinct','nOrderBy');
-} {nOrderBy 2 sqlite3_vtab_distinct 1}
+} {nOrderBy 2 sqlite3_vtab_distinct 2}
+do_execsql_test 1.4 {
+  SELECT vn, ix FROM qpvtab
+   GROUP BY vn
+  HAVING vn='sqlite3_vtab_distinct';
+} {sqlite3_vtab_distinct 1}
 
 finish_test