-C Enhance\sdocumentation\sto\sshow\sthat\s"ro"\sis\sthe\scorrect\sway\sto\ssay\s"readonly"\nin\sthe\smode=\squery\sparameter.
-D 2020-12-21T14:51:33.242
+C Fix\sa\sproblem\swhen\sflattening\sjoins\sbetween\sa\sUNION\sALL\ssub-query\sand\sanother\ssub-query\sthat\suses\smore\sthan\sone\swindow\sfunction.
+D 2020-12-21T18:39:58.008
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
F src/wal.c 69e770e96fd56cc21608992bf2c6f1f3dc5cf2572d0495c6a643b06c3a679f14
F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a
-F src/walker.c 3df26a33dc4f54e8771600fb7fdebe1ece0896c2ad68c30ab40b017aa4395049
+F src/walker.c d9c4e454ebb9499e908aa62d55b8994c375cf5355ac78f60d45af17f7890701c
F src/where.c 2d593bfc6fa24e53dfe7c99bd327af687f8502e5f0e0299dd2c0f503b133f0bb
F src/whereInt.h 9a3f577619f07700d16d89eeb2f3d94d6b7ed7f109c2dacf0ce8844921549506
F src/wherecode.c a3a1aff30fe99a818d8e7c607980f033f40c68d890e03ed25838b9dbb7908bee
F test/types.test bf816ce73c7dfcfe26b700c19f97ef4050d194ff
F test/types2.test 1aeb81976841a91eef292723649b5c4fe3bc3cac
F test/types3.test 99e009491a54f4dc02c06bdbc0c5eea56ae3e25a
-F test/unionall.test 9dcc5faefe8caa4e2e4084fd4f45ad783abb7cfb86fcb87a3b74204e03f86014
+F test/unionall.test 70d6ec7bce279cf63edc11589b0541ddf289ef6efe51c24cbf4efaceeb4ce5b8
F test/unionallfault.test 652bfbb630e6c43135965dc1e8f0a9a791da83aec885d626a632fe1909c56f73
F test/unionvtab.test e1704ab1b4c1bb3ffc9da4681f8e85a0b909fd80b937984fc94b27415ac8e5a4
F test/unionvtabfault.test e8759f3d14fb938ce9657e2342db34aeac0fb9bc1692b0d1ebb0069630151d06
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 3b0c9b41a877c7344ef3b7c5b6981436005716e25b41b1a1ffc145520243abd3
-R b74c560d3085cb3bea733f18ec03ab77
-U drh
-Z 76c875139f02e2b74c2635d603850742
+P 788b96851d9ced84757c48dc3e0414cab27ee7e50e9730dab30b2e42a7762397
+R 8f0537d0e7a9b2ba57d49d118851dfa2
+U dan
+Z 750efdd05db1f99dfea3008ae72af1b9
-788b96851d9ced84757c48dc3e0414cab27ee7e50e9730dab30b2e42a7762397
\ No newline at end of file
+ef9733fe1c6b31849a5da1037d21915f82e0e4ab42d1a23ead8a121012f1bace
\ No newline at end of file
** Walk all expressions linked into the list of Window objects passed
** as the second argument.
*/
-static int walkWindowList(Walker *pWalker, Window *pList){
+static int walkWindowList(Walker *pWalker, Window *pList, int bOneOnly){
Window *pWin;
for(pWin=pList; pWin; pWin=pWin->pNextWin){
int rc;
if( NEVER(rc) ) return WRC_Abort;
rc = sqlite3WalkExpr(pWalker, pWin->pEnd);
if( NEVER(rc) ) return WRC_Abort;
+ if( bOneOnly ) break;
}
return WRC_Continue;
}
}
#ifndef SQLITE_OMIT_WINDOWFUNC
if( ExprHasProperty(pExpr, EP_WinFunc) ){
- if( walkWindowList(pWalker, pExpr->y.pWin) ) return WRC_Abort;
+ if( walkWindowList(pWalker, pExpr->y.pWin, 1) ) return WRC_Abort;
}
#endif
}
if( pParse && IN_RENAME_OBJECT ){
/* The following may return WRC_Abort if there are unresolvable
** symbols (e.g. a table that does not exist) in a window definition. */
- int rc = walkWindowList(pWalker, p->pWinDefn);
+ int rc = walkWindowList(pWalker, p->pWinDefn, 0);
return rc;
}
}
SELECT * FROM (SELECT * FROM t1, t3) ORDER BY k;
} {123 t1_a 456 t3_a}
+do_execsql_test 4.3 {
+ SELECT * FROM (SELECT * FROM t1, t3), (
+ SELECT max(a) OVER () FROM t1
+ UNION ALL
+ SELECT min(a) OVER () FROM t1
+ )
+ ORDER BY k;
+} {
+ 123 t1_a 456 t3_a 123
+ 123 t1_a 456 t3_a 123
+}
+
+do_execsql_test 4.3 {
+ SELECT * FROM (SELECT * FROM t1, t3), (
+ SELECT group_concat(a) OVER (ORDER BY a),
+ group_concat(a) OVER (ORDER BY a),
+ group_concat(a) OVER (ORDER BY a),
+ group_concat(a) OVER (ORDER BY a),
+ group_concat(a) OVER (ORDER BY a),
+ group_concat(a) OVER (ORDER BY a),
+ group_concat(a) OVER (ORDER BY a),
+ group_concat(a) OVER (ORDER BY a),
+ group_concat(a) OVER (ORDER BY a)
+ FROM t1
+ )
+ ORDER BY k;
+} {
+ 123 t1_a 456 t3_a 123 123 123 123 123 123 123 123 123
+}
+
finish_test