]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Enable an ORDER BY clause to refer to columns in outer queries.
authordrh <>
Mon, 15 Dec 2025 11:59:47 +0000 (11:59 +0000)
committerdrh <>
Mon, 15 Dec 2025 11:59:47 +0000 (11:59 +0000)
FossilOrigin-Name: ef9b4b1e4690c889c48f4e725d42127c46f60c6bf2023ae79bf1e9c6c83368ec

manifest
manifest.uuid
src/resolve.c
test/insert5.test

index 39f2571223fb7164595478311610e416a1161437..b72a5996e23650c5c2eaa0d402ae28471df07a2c 100644 (file)
--- a/manifest
+++ b/manifest
@@ -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.
index 2dc554938a9827d2111091363a3a3fe8d0dbcdb9..5f3c7a224bd850663f2a2f446939307f75d506a0 100644 (file)
@@ -1 +1 @@
-87bca1250c5e660debbb29c5fabb89082c2d2059fc8b5851e1b1a519c3be7fc1
+ef9b4b1e4690c889c48f4e725d42127c46f60c6bf2023ae79bf1e9c6c83368ec
index 0b9000fb9baf3bf3e30083507c8f5d4ed8ed372e..6aa8d6653b58424b9e4658fdc910beca24c248d0 100644 (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
index 1e58902e078845642aae222fbeaa4f02c080613d..3ae99a5d236dc2dbda3c59c8240aeb90ffc00632 100644 (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