Enable an ORDER BY clause to refer to columns in outer queries.

FossilOrigin-Name: ef9b4b1e4690c889c48f4e725d42127c46f60c6bf2023ae79bf1e9c6c83368ec
This commit is contained in:
drh committed 2025-12-15 11:59:47 +00:00
1 parent 76f1fe2942
commit e2bb4cf412
4 files changed
+16 -23

No files matched your search

+7 -7
View File
@@ -1,5 +1,5 @@
C Use\sthe\scorrect\swildcard\scharacter\sin\ssqlite3_strlike()\sin\sthe\sprevious\ncheck-in.
D 2025-12-13T23:18:04.144
C Enable\san\sORDER\sBY\sclause\sto\srefer\sto\scolumns\sin\souter\squeries.
D 2025-12-15T11:59:47.350
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -734,7 +734,7 @@ F src/pragma.c ecec75795c1821520266e4f93fa8840cce48979af532db06f085e36a7813860f
F src/prepare.c f6a6e28a281bd1d1da12f47d370a81af46159b40f73bf7fa0b276b664f9c8b7d
F src/printf.c b1b29b5e58e1530d5daeee5963d3c318d8ab2d7e38437580e28755753e0c1ded
F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
F src/resolve.c 8d53771eb51a4ab5f970150c3a70969d8db79cd04a8774c2d296bbcf471a0dd0
F src/resolve.c 47aa7fdc9ec4c19b103ac5e79d7887d30119b5675309facf5eed1118391c868b
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
F src/select.c 344518c1bba9c4636bf651b7642304abd2e7075ba35feb4bae42a51e5efe991f
F src/shell.c.in e584486e622dea388ea18e34e31bc873e24c6c24f337f012b4bb21260a735dee
@@ -1303,7 +1303,7 @@ F test/insert.test 97cfb30b83ca1622b9422a1e4c4831b4cb767cf5d654660945036d1e72067
F test/insert2.test 4d14b8f1b810a41995f6286b64a6943215d52208
F test/insert3.test 1b7db95a03ad9c5013fdf7d6722b6cd66ee55e30
F test/insert4.test 2bf81535a990c969665d66db51fcf76c23499b39893b5109f413d1de4ad34cd3
F test/insert5.test 394f96728d1258f406fe5f5aeb0aaf29487c39a6
F test/insert5.test 79f6b6efd0d3db5f4e3ff442300b7d9e7185adb345b29aacc3ea5a9c58ab9beb
F test/insertfault.test ac63d14ea3b49c573673a572f4014b9117383a03e497c58f308b5c776e4a7f74
F test/instr.test 67ba309e9697c24a304e98a7c8f372456177dd4e32237d2a305e1e05f7bb79c2
F test/instrfault.test 95e28efade652e6d51ae11b377088fe523a581a07ec428009e152a4dd0e0f44c
@@ -2184,8 +2184,8 @@ F tool/version-info.c 33d0390ef484b3b1cb685d59362be891ea162123cea181cb8e6d2cf6dd
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P 19cc0522e2255f21f6fb6af1442c2ba122fdd4deacd9ea2c181ce9e597b88770
R 7a73b7f1bc5ed629cd68f0086c0f9453
P 87bca1250c5e660debbb29c5fabb89082c2d2059fc8b5851e1b1a519c3be7fc1
R f004c13af1a1be21bad8d4c7d8ba20e0
U drh
Z 52ad00c135771aee4324337abaa21212
Z 5c74dbec152b78ca8dccf7f221dabb42
# Remove this line to create a well-formed Fossil manifest.
+1 -1
View File
@@ -1 +1 @@
87bca1250c5e660debbb29c5fabb89082c2d2059fc8b5851e1b1a519c3be7fc1
ef9b4b1e4690c889c48f4e725d42127c46f60c6bf2023ae79bf1e9c6c83368ec
-4
View File
@@ -2011,10 +2011,6 @@ static int resolveSelectStep(Walker *pWalker, Select *p){
}
#endif
/* The ORDER BY and GROUP BY clauses may not refer to terms in
** outer queries
*/
sNC.pNext = 0;
sNC.ncFlags |= NC_AllowAgg|NC_AllowWin;
/* If this is a converted compound query, move the ORDER BY clause from
+8 -11
View File
@@ -96,22 +96,19 @@ do_test insert5-2.8 {
}
} {1}
# UPDATE: Using a column from the outer query (main.id) in the GROUP BY
# or ORDER BY of a sub-query is no longer supported.
#
# do_test insert5-2.9 {
# uses_temp_table {
# INSERT INTO b
# SELECT * FROM main
# WHERE id > 10 AND (SELECT count(*) FROM v2 GROUP BY main.id)
# }
# } {}
do_test insert5-2.9 {
catchsql {
INSERT INTO b
SELECT * FROM main
WHERE id > 10 AND (SELECT count(*) FROM v2 GROUP BY main.id)
}
} {1 {no such column: main.id}}
} {0 {}}
do_execsql_test insert5-2.10 {
CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES(2);
CREATE TABLE t2(c INT, d INT);
INSERT INTO t2 VALUES(3,4),(10,NULL);
SELECT (SELECT c FROM t2 ORDER BY coalesce(d,a) LIMIT 1) FROM t1;
} {10}
finish_test