-C Merge\sdebugging\soutput\sfixes\sfrom\strunk\sinto\sthe\slateral-join\sbranch.
-D 2024-07-21T23:36:32.351
+C Allow\sLIMIT\sand\sOFFSET\sto\scontain\svariables\sfrom\sprior\sterms\sof\sthe\nFROM\sclause\sin\sa\sLATERAL\ssubquery.\n[forum:/forumpost/dfe2cd37ca3a9a80|Forum\spost\sdfe2cd37ca3a9a80]
+D 2024-07-22T00:46:10.960
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F src/prepare.c d99931f45416652895e502328ca49fe782cfc4e1ebdcda13b3736d991ebf42ce
F src/printf.c 8b250972305e14b365561be5117ed0fd364e4fd58968776df1ce64c6280b90f9
F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
-F src/resolve.c 24bc6206fea31e1100ffb29bc4eed6908341787c75245c1224575f4393dce383
+F src/resolve.c bb2629301456e739d0bb245497af3d370cb740004107ee926a7a12c19443c652
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
-F src/select.c 1fdd9e2d9b68b6cf3fb1565c2ef34a48b4c81f154889b1c45ba7050dc035d27d
+F src/select.c 1f5f1663fe84ee1963a55aef8871f1e7740a8030db517dcbfa16e27c6187fe74
F src/shell.c.in b7d435c137eb323981adff814f172dbaabb9ba504fef17cb11d4681c1633ee13
F src/sqlite.h.in 6c884a87bbf8828562b49272025a1e66e3801a196a58b0bdec87edcd2c9c8fc1
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
F test/joinE.test d5d182f3812771e2c0d97c9dcf5dbe4c41c8e21c82560e59358731c4a3981d6b
F test/joinF.test 53dd66158806823ea680dd7543b5406af151b5aafa5cd06a7f3231cd94938127
F test/joinH.test 55f69e64da74d4eca2235237f3acb657aef181e22e45daa228e35bba865e0255
-F test/joinL.test 87217fd82a283ba08597cfb3ba5a9a3eaea8a0971d357d463d3ada5105d1c3ae
+F test/joinL.test f4c7e70dc2cc293b70d4fbbeab19724366e62d6ebc15eb7005bff6e269d2297e
F test/journal1.test c7b768041b7f494471531e17abc2f4f5ebf9e5096984f43ed17c4eb80ba34497
F test/journal2.test 9dac6b4ba0ca79c3b21446bbae993a462c2397c4
F test/journal3.test 7c3cf23ffc77db06601c1fcfc9743de8441cb77db9d1aa931863d94f5ffa140e
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 6d863172dc736169bd5c303fab5d2fc47324261f29cdabb692781cd0fd609c87 b6aed8bcb06edc7f0221fd707d5adc227856fe62dbcaae5ffe1fb4faa5c542e1
-R f945ef86fef54dc43bf41701ceeec911
+P 9182e999524bf55bf6a336c02ff5fb129a89ee7ed6fd859d4050ba1dbffcf4df
+R 1b514e88847c4dd672bf624993e269d1
U drh
-Z 325044715fc2b274aef2f5fbc81890a3
+Z 2df173ea627adbc98fc3632c926e23f0
# Remove this line to create a well-formed Fossil manifest.
assert( (p->selFlags & SF_Resolved)==0 );
p->selFlags |= SF_Resolved;
- /* Resolve the expressions in the LIMIT and OFFSET clauses. These
- ** are not allowed to refer to any names, so pass an empty NameContext.
- */
+ /* Resolve the expressions in the LIMIT and OFFSET clauses. */
memset(&sNC, 0, sizeof(sNC));
sNC.pParse = pParse;
sNC.pWinSelect = p;
+ sNC.pNext = pOuterNC;
if( sqlite3ResolveExprNames(&sNC, p->pLimit) ){
return WRC_Abort;
}
substExprList(pSubst, p->pEList);
substExprList(pSubst, p->pGroupBy);
substExprList(pSubst, p->pOrderBy);
+ p->pLimit = substExpr(pSubst, p->pLimit);
p->pHaving = substExpr(pSubst, p->pHaving);
p->pWhere = substExpr(pSubst, p->pWhere);
pSrc = p->pSrc;
do_execsql_test 4.0 {
SELECT * FROM (VALUES (1), (2)) JOIN LATERAL (select COUNT(*), column1);
} {1 1 1 2 1 2}
+do_execsql_test 4.1 {
+ CREATE TABLE t3(x INTEGER PRIMARY KEY);
+ WITH RECURSIVE c(n) AS (VALUES(0) UNION ALL SELECT n+1 FROM c WHERE n<20)
+ INSERT INTO t3(x) SELECT n FROM c;
+ CREATE TABLE t4(y,z);
+ INSERT INTO t4 VALUES(1,0),(3,2),(5,7);
+ SELECT * FROM t4, LATERAL(SELECT x FROM t3 ORDER BY x LIMIT y OFFSET z);
+} {
+ 1 0 0
+ 3 2 2
+ 3 2 3
+ 3 2 4
+ 5 7 7
+ 5 7 8
+ 5 7 9
+ 5 7 10
+ 5 7 11
+}
+do_execsql_test 4.2 {
+ SELECT * FROM (VALUES(1,0),(3,2),(5,7)),
+ LATERAL(SELECT x FROM t3 ORDER BY x LIMIT column1 OFFSET column2);
+} {
+ 1 0 0
+ 3 2 2
+ 3 2 3
+ 3 2 4
+ 5 7 7
+ 5 7 8
+ 5 7 9
+ 5 7 10
+ 5 7 11
+}
+
# https://sqlite.org/forum/forumpost/fc29fa4f14
#
ORDER BY a, c;
} {3 1 2}
-
-
-
-
finish_test