]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a problem caused by a non-aggregate function with an OVER clause in a multi-row...
authordan <Dan Kennedy>
Mon, 18 Mar 2024 10:54:48 +0000 (10:54 +0000)
committerdan <Dan Kennedy>
Mon, 18 Mar 2024 10:54:48 +0000 (10:54 +0000)
FossilOrigin-Name: 10ee6fcba08ab1281235197602148fe062560e1d5034a477b8e7b574dd3e2907

manifest
manifest.uuid
src/expr.c
test/values.test

index 7f301770970622eaf781a4950ad50ce5c0e4c1a2..f72f4d1d80772d3de769e3c04300f96d997c2c56 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Omit\sthe\s"noop(X)"\stest\sSQL\sfunction.\s\sAccomplish\sthe\ssame\sthing\susing\nthe\sidiom:\s\s"coalesce(X,random())".
-D 2024-03-17T16:01:23.923
+C Fix\sa\sproblem\scaused\sby\sa\snon-aggregate\sfunction\swith\san\sOVER\sclause\sin\sa\smulti-row\sVALUES\sclause.
+D 2024-03-18T10:54:48.739
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -700,7 +700,7 @@ F src/date.c 126ba2ab10aeb2e7ba6e089b5f07b747c0625b8287f78b60da346eda8d23c875
 F src/dbpage.c 80e46e1df623ec40486da7a5086cb723b0275a6e2a7b01d9f9b5da0f04ba2782
 F src/dbstat.c 3b677254d512fcafd4d0b341bf267b38b235ccfddbef24f9154e19360fa22e43
 F src/delete.c cb766727c78e715f9fb7ec8a7d03658ed2a3016343ca687acfcec9083cdca500
-F src/expr.c eef4b58b1c5f488c7bd099af3a571ff32509d00a1c990f17c0bc5e752ed33462
+F src/expr.c 27fdcdc65bca88934dfc4af0efe7a3eae095267bf7592b562abb6a11292c2b82
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c a47610f0a5c6cb0ad79f8fcef039c01833dec0c751bb695f28dc0ec6a4c3ba00
 F src/func.c 4204c56196847faefef57fa14e43b8e4d65eb8d7e65318abe463472e3fd148cb
@@ -1921,7 +1921,7 @@ F test/vacuum4.test 7ea76b769fffeb41f925303b04cbcf5a5bbeabe55e4c60ae754ff24eeeb7
 F test/vacuum5.test 263b144d537e92ad8e9ca8a73cc6e1583f41cfd0dda9432b87f7806174a2f48c
 F test/vacuum6.test b137b04bf3392d3f5c3b8fda0ce85a6775a70ca112f6559f74ff52dc9ce042fd
 F test/vacuummem.test 4b30f5b95a9ff86e9d5c20741e50a898b2dc10b0962a3211571eb165357003fb
-F test/values.test 60723a55f68e8e42027d49a159a1be8b92cb0f538a65cb363ff65637e8a41703
+F test/values.test 336ce9404c15cc9ff70f74a374e6da474724c94e69ea658aeab279d94623142f
 F test/valuesfault.test 2ef23ed965e3bd08e268cdc38a0d11653390ddbbe1e8e2e98d16f55edd30f6e8
 F test/varint.test bbce22cda8fc4d135bcc2b589574be8410614e62
 F test/veryquick.test 57ab846bacf7b90cf4e9a672721ea5c5b669b661
@@ -2179,8 +2179,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 0dce6211690210e802545cbca9b3375e07075e117fad3f8c921879da7671d981
-R 04c934383a09ffd06af013a1dd47675b
-U drh
-Z ca3e70db7b33adfad0eeda8b7a11174b
+P 0eb2fbb8910e7a372c50db3ae44238d7b161f0e45858b74061b5228aec5fcc7e
+R 0c271dec25d4e7ba3707539d1d6d785b
+U dan
+Z 92342f3e47401a6da453743f142fe632
 # Remove this line to create a well-formed Fossil manifest.
index 186e057cef31c52953b920f8dc323ba662af11ef..18c1998557f7e08e2384376d9f696ab9f80d18f8 100644 (file)
@@ -1 +1 @@
-0eb2fbb8910e7a372c50db3ae44238d7b161f0e45858b74061b5228aec5fcc7e
\ No newline at end of file
+10ee6fcba08ab1281235197602148fe062560e1d5034a477b8e7b574dd3e2907
\ No newline at end of file
index 3ba07fb2dc5aafb25a5446c9683981559c964813..be8339c305b8f0cbe8856eddbeb6ab021dd43b38 100644 (file)
@@ -2387,6 +2387,7 @@ static SQLITE_NOINLINE int exprNodeIsConstantFunction(
   if( pDef==0
    || pDef->xFinalize!=0
    || (pDef->funcFlags & (SQLITE_FUNC_CONSTANT|SQLITE_FUNC_SLOCHNG))==0
+   || pExpr->y.pWin
   ){
     pWalker->eCode = 0;
     return WRC_Abort;
index b96c9e5d23ee82cebe1599b9076fce9bd77fbf8f..caa33058bf1125a774a6376796eaf8e0ea19b80e 100644 (file)
@@ -415,5 +415,10 @@ do_execsql_test 13.0 {
   FROM t1;
 } {xyz}
 
+do_catchsql_test 13.1 {
+  VALUES(300), (zeroblob(300) OVER win);
+} {1 {zeroblob() may not be used as a window function}}
+
+
 finish_test