mirror of
https://github.com/sqlite/sqlite.git
synced 2026-10-23 21:49:02 +03:00
Minor fixes. Tests are passing now.
FossilOrigin-Name: 305ae331f5e791941c12b04b727656ac8d80f7c5cb6343277b979a456eb3b834
This commit is contained in:
27
manifest
27
manifest
@@ -1,5 +1,5 @@
|
||||
C Be\smore\saggressive\sabout\susing\sa\ssort-and-merge\sto\scompute\sthe\sUNION\sof\ntwo\sSELECT\sstatements.\s\sExperimental\sbranch.\s\sThis\scheck-in\sis\sfailing\ssome\ntests.
|
||||
D 2026-01-19T19:51:03.991
|
||||
C Minor\sfixes.\s\sTests\sare\spassing\snow.
|
||||
D 2026-01-20T15:07:28.159
|
||||
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
@@ -738,12 +738,12 @@ F src/printf.c b1b29b5e58e1530d5daeee5963d3c318d8ab2d7e38437580e28755753e0c1ded
|
||||
F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
|
||||
F src/resolve.c 47aa7fdc9ec4c19b103ac5e79d7887d30119b5675309facf5eed1118391c868b
|
||||
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
|
||||
F src/select.c c2c07615ec16f7040228ba80115c00c7c8639b1ac9a0a99e28f97af5ebe4300b
|
||||
F src/select.c db7af5c5e3cdcbf4ce443f5540cfa782e0fd4de5481af9814c188f05aef8193c
|
||||
F src/shell.c.in 3bc4c6aa962bdf950dc144c2138eb4bc734bf7e305f2ac42dbda5a83c4a4c660
|
||||
F src/sqlite.h.in 476f3efeb5dd26ad94dcbce262ca7eb9d042d797a92d624059c67ef37d5b3ab4
|
||||
F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
|
||||
F src/sqlite3ext.h f590cd8cb4c36fc727632c9b5fbbafc85f7efe2c6890f9958d7e711dc26ec01e
|
||||
F src/sqliteInt.h af67bc95fa6b66cd3c7f3d18d2d040ad386e4cbb02965ee318cc721ee9d5fa45
|
||||
F src/sqliteInt.h 71a2ae85d45c6cda8571bab66a6ab86b36a439a82c8a712681e6a99c381ab79b
|
||||
F src/sqliteLimit.h 904a3f520362c7065c18165aaabd504fb13cc1b76cb411f38bd41ac219e4af1e
|
||||
F src/status.c 7565d63a79aa2f326339a24a0461a60096d0bd2bce711fefb50b5c89335f3592
|
||||
F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
|
||||
@@ -973,7 +973,7 @@ F test/collate1.test 0890fa372753b59eba53832d37328af815f6b8e4b16761823180eeb62c8
|
||||
F test/collate2.test 471c6f74573382b89b0f8b88a05256faa52f7964f9e4799e76708a3b1ece6ba4
|
||||
F test/collate3.test 89defc49983ddfbf0a0555aca8c0521a676f56a5
|
||||
F test/collate4.test c953715fb498b87163e3e73dd94356bff1f317bd
|
||||
F test/collate5.test b1dfeff239ea69ee9225832553f423d37a6184eb730cee06f6846ab4e3c6dbef
|
||||
F test/collate5.test 42daaf7799b04221206a219fb3c0f9efeede03e760f9562b8c0114b8df183fe3
|
||||
F test/collate6.test 8be65a182abaac8011a622131486dafb8076e907
|
||||
F test/collate7.test 8ec29d98f3ee4ccebce6e16ce3863fb6b8c7b868
|
||||
F test/collate8.test cd9b3d3f999b8520ffaa7cc1647061fc5bab1334
|
||||
@@ -1058,7 +1058,7 @@ F test/descidx2.test a0ba347037ff3b811f4c6ceca5fd0f9d5d72e74e59f2d9de346a9d2f6ad
|
||||
F test/descidx3.test 953c831df7ea219c73826dfbf2f6ee02d95040725aa88ccb4fa43d1a1999b926
|
||||
F test/diskfull.test 106391384780753ea6896b7b4f005d10e9866b6e
|
||||
F test/distinct.test 691c9e850b0d0b56b66e7e235453198cb4cf0760e324b7403d3c5abbeab0a014
|
||||
F test/distinct2.test 4d6316b6487a0aa5a90bee111575c957e2a5ba5a9be9156febe9533ce78876e8
|
||||
F test/distinct2.test a6af6a90b2c1eea64c3cc87ea7f8feb832053f7276fe3c212abacf646de4762a
|
||||
F test/distinctagg.test 40d7169ae5846caaf62c6e307d2ca3c333daf9b6f7cde888956a339a97afe85f
|
||||
F test/e_blobbytes.test 4c01dfe4f12087b92b20705a3fdfded45dc4ed16d5a211fed4e1d2786ba68a52
|
||||
F test/e_blobclose.test 692fc02a058476c2222a63d97e3f3b2b809c1842e5525ded7f854d540ac2e075
|
||||
@@ -1090,7 +1090,7 @@ F test/enc.test b5503a87b31cea8a5084c6e447383f9ca08933bd2f29d97b6b6201081b2343eb
|
||||
F test/enc2.test 872afe58db772e7dfa1ad8e0759f8cc820e9efc8172d460fae83023101c2e435
|
||||
F test/enc3.test 55ef64416d72975c66167310a51dc9fc544ba3ae4858b8d5ab22f4cb6500b087
|
||||
F test/enc4.test c8f1ce3618508fd0909945beb8b8831feef2c020
|
||||
F test/eqp.test 746db9fe11629a0d00328e1721cc2a2e4726d574b677ab14de35fd914f54cc82
|
||||
F test/eqp.test 1d653fe8d2612cd6764e5ea2f16dcf5f13a9f50448b9233bb1573804bccd7579
|
||||
F test/eqp2.test 6e8996148de88f0e7670491e92e712a2920a369b4406f21a27c3c9b6a46b68dd
|
||||
F test/errmsg.test eae9f091eb39ce7e20305de45d8e5d115b68fa856fba4ea6757b6ca3705ff7f9
|
||||
F test/errofst1.test 6da78363739ba8991f498396ab331b5d64e7ab5c4172c12b5884683ef523ac53
|
||||
@@ -1468,7 +1468,7 @@ F test/null.test b7ff206a1c60fe01aa2abd33ef9ea83c93727d993ca8a613de86e925c9f2bc6
|
||||
F test/nulls1.test 7a5e4346ee4285034100b4cd20e6784f16a9d6c927e44ecdf10034086bbee9c9
|
||||
F test/numcast.test 5d126f7f581432e86a90d1e35cac625164aec4a1
|
||||
F test/numindex1.test 20a5450d4b056e48cd5db30e659f13347a099823
|
||||
F test/offset1.test 72cca52482cbd5bc687cfa67aa2566c859081b5a353fd2f9da9bbd3914dea1ef
|
||||
F test/offset1.test c21e67d2d5ae8ed310243fbe84fc2f0dca49e9ffed3ea89110c0d5914c0de620
|
||||
F test/openv2.test 0d3040974bf402e19b7df4b783e447289d7ab394
|
||||
F test/optfuzz-db01.c 9f2fa80b8f84ebbf1f2e8b13421a4e0477fe300f6686fbd76cac1d2db66e0fdc
|
||||
F test/optfuzz-db01.txt 21f6bdeadc701cf11528276e2a55c70bfcb846ba42df327f979bd9e7b6ce7041
|
||||
@@ -1811,7 +1811,7 @@ F test/tkt2213.test a9702175601a57b61aba095a233b001d6f362474
|
||||
F test/tkt2251.test 5aab8c7898cd2df2a68fe19289cc29e8f5cf8c82
|
||||
F test/tkt2285.test cca17be61cf600b397188e77e7143844d2b977e9
|
||||
F test/tkt2332.test fc955609b958ca86dfa102832243370a0cc84070
|
||||
F test/tkt2339.test 73bd17818924cd2ac442e5fd9916b58565739450
|
||||
F test/tkt2339.test bad48bd064594aa7b4de23f6d59a72b0b0c4175fd917f4b66907584732d41652
|
||||
F test/tkt2391.test ab7a11be7402da8b51a5be603425367aa0684567
|
||||
F test/tkt2409.test be0d60e7d283f639dccea4b0b5e1cd3a4851fb5b
|
||||
F test/tkt2450.test 77ed94863f2049c1420288ddfea2d41e5e0971d6
|
||||
@@ -2193,11 +2193,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
|
||||
F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
|
||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
|
||||
P c1e55132410a80d37bad30e4ddecc7a98fad92a68b436880324998af1cee37ae
|
||||
R 14b52d7d0f8047724839557171235a7f
|
||||
T *branch * union-by-merge
|
||||
T *sym-union-by-merge *
|
||||
T -sym-trunk *
|
||||
P e534af8a78f5458bd656f70eb9f68084c0ed3f97360f5a033fba3564849e970c
|
||||
R 1d72d9705c75984ccfe6b20a584dbf44
|
||||
U drh
|
||||
Z f2ba17780829856e94c58b16fe623059
|
||||
Z 5c48ba141145c0386883674b17f13be2
|
||||
# Remove this line to create a well-formed Fossil manifest.
|
||||
|
||||
@@ -1 +1 @@
|
||||
e534af8a78f5458bd656f70eb9f68084c0ed3f97360f5a033fba3564849e970c
|
||||
305ae331f5e791941c12b04b727656ac8d80f7c5cb6343277b979a456eb3b834
|
||||
|
||||
@@ -2779,6 +2779,7 @@ static void generateWithRecursiveQuery(
|
||||
/* Store the results of the setup-query in Queue. */
|
||||
pSetup = pFirstRec->pPrior;
|
||||
pSetup->pNext = 0;
|
||||
pSetup->selFlags |= SF_NoMerge;
|
||||
ExplainQueryPlan((pParse, 1, "SETUP"));
|
||||
rc = sqlite3Select(pParse, pSetup, &destQueue);
|
||||
pSetup->pNext = p;
|
||||
@@ -2983,7 +2984,7 @@ static int multiSelect(
|
||||
*/
|
||||
if( p->pOrderBy ){
|
||||
return multiSelectOrderBy(pParse, p, pDest);
|
||||
}else if( p->op!=TK_ALL && (p->selFlags & SF_NoopOrderBy)==0 ){
|
||||
}else if( p->op!=TK_ALL && (p->selFlags & SF_NoMerge)==0 ){
|
||||
Expr *pOne = sqlite3ExprInt32(db, 1);
|
||||
p->pOrderBy = sqlite3ExprListAppend(pParse, 0, pOne);
|
||||
if( pParse->nErr ) goto multi_select_end;
|
||||
@@ -2998,7 +2999,7 @@ static int multiSelect(
|
||||
ExplainQueryPlan((pParse, 1, "LEFT-MOST SUBQUERY"));
|
||||
}
|
||||
#endif
|
||||
pPrior->selFlags |= SF_NoopOrderBy;
|
||||
pPrior->selFlags |= SF_NoMerge;
|
||||
|
||||
/* Generate code for the left and right SELECT statements.
|
||||
*/
|
||||
@@ -7759,7 +7760,7 @@ int sqlite3Select(
|
||||
p->pOrderBy = 0;
|
||||
}
|
||||
p->selFlags &= ~(u32)SF_Distinct;
|
||||
p->selFlags |= SF_NoopOrderBy;
|
||||
p->selFlags |= SF_NoopOrderBy|SF_NoMerge;
|
||||
}
|
||||
sqlite3SelectPrep(pParse, p, 0);
|
||||
if( pParse->nErr ){
|
||||
|
||||
@@ -3647,7 +3647,7 @@ struct Select {
|
||||
#define SF_MinMaxAgg 0x0001000 /* Aggregate containing min() or max() */
|
||||
#define SF_Recursive 0x0002000 /* The recursive part of a recursive CTE */
|
||||
#define SF_FixedLimit 0x0004000 /* nSelectRow set by a constant LIMIT */
|
||||
#define SF_MaybeConvert 0x0008000 /* Need convertCompoundSelectToSubquery() */
|
||||
#define SF_NoMerge 0x0008000 /* Don't use merge to compute compounds */
|
||||
#define SF_Converted 0x0010000 /* By convertCompoundSelectToSubquery() */
|
||||
#define SF_IncludeHidden 0x0020000 /* Include hidden columns in output */
|
||||
#define SF_ComplexResult 0x0040000 /* Result contains subquery or function */
|
||||
|
||||
@@ -122,9 +122,9 @@ do_test collate5-2.0 {
|
||||
} {}
|
||||
|
||||
do_test collate5-2.1.1 {
|
||||
execsql {
|
||||
string toupper [execsql {
|
||||
SELECT a FROM collate5t1 UNION select a FROM collate5t2;
|
||||
}
|
||||
}]
|
||||
} {A B N}
|
||||
do_test collate5-2.1.2 {
|
||||
execsql {
|
||||
@@ -132,10 +132,10 @@ do_test collate5-2.1.2 {
|
||||
}
|
||||
} {A B N a b n}
|
||||
do_test collate5-2.1.3 {
|
||||
execsql {
|
||||
string tolower [execsql {
|
||||
SELECT a, b FROM collate5t1 UNION select a, b FROM collate5t2;
|
||||
}
|
||||
} {A Apple A apple B Banana b banana N {}}
|
||||
}]
|
||||
} {a apple a apple b banana b banana n {}}
|
||||
do_test collate5-2.1.4 {
|
||||
execsql {
|
||||
SELECT a, b FROM collate5t2 UNION select a, b FROM collate5t1;
|
||||
@@ -143,9 +143,9 @@ do_test collate5-2.1.4 {
|
||||
} {A Apple B banana N {} a apple b banana n {}}
|
||||
|
||||
do_test collate5-2.2.1 {
|
||||
execsql {
|
||||
string toupper [execsql {
|
||||
SELECT a FROM collate5t1 EXCEPT select a FROM collate5t2;
|
||||
}
|
||||
}]
|
||||
} {N}
|
||||
do_test collate5-2.2.2 {
|
||||
execsql {
|
||||
@@ -153,10 +153,10 @@ do_test collate5-2.2.2 {
|
||||
}
|
||||
} {A a}
|
||||
do_test collate5-2.2.3 {
|
||||
execsql {
|
||||
string tolower [execsql {
|
||||
SELECT a, b FROM collate5t1 EXCEPT select a, b FROM collate5t2;
|
||||
}
|
||||
} {A Apple N {}}
|
||||
}]
|
||||
} {a apple n {}}
|
||||
do_test collate5-2.2.4 {
|
||||
execsql {
|
||||
SELECT a, b FROM collate5t2 EXCEPT select a, b FROM collate5t1
|
||||
@@ -165,9 +165,9 @@ do_test collate5-2.2.4 {
|
||||
} {A apple a apple}
|
||||
|
||||
do_test collate5-2.3.1 {
|
||||
execsql {
|
||||
string toupper [execsql {
|
||||
SELECT a FROM collate5t1 INTERSECT select a FROM collate5t2;
|
||||
}
|
||||
}]
|
||||
} {A B}
|
||||
do_test collate5-2.3.2 {
|
||||
execsql {
|
||||
@@ -175,10 +175,10 @@ do_test collate5-2.3.2 {
|
||||
}
|
||||
} {B b}
|
||||
do_test collate5-2.3.3 {
|
||||
execsql {
|
||||
string tolower [execsql {
|
||||
SELECT a, b FROM collate5t1 INTERSECT select a, b FROM collate5t2;
|
||||
}
|
||||
} {a apple B banana}
|
||||
}]
|
||||
} {a apple b banana}
|
||||
do_test collate5-2.3.4 {
|
||||
execsql {
|
||||
SELECT a, b FROM collate5t2 INTERSECT select a, b FROM collate5t1;
|
||||
|
||||
@@ -311,7 +311,7 @@ do_execsql_test 4010 {
|
||||
}
|
||||
do_execsql_test 4020 {
|
||||
SELECT b FROM t1 UNION SELECT 1;
|
||||
} {1 { }}
|
||||
} {1 {}}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -124,10 +124,10 @@ do_eqp_test 1.8 {
|
||||
} {
|
||||
QUERY PLAN
|
||||
|--CO-ROUTINE (subquery-xxxxxx)
|
||||
| `--COMPOUND QUERY
|
||||
| |--LEFT-MOST SUBQUERY
|
||||
| `--MERGE (UNION)
|
||||
| |--LEFT
|
||||
| | `--SCAN CONSTANT ROW
|
||||
| `--UNION USING TEMP B-TREE
|
||||
| `--RIGHT
|
||||
| `--SCAN CONSTANT ROW
|
||||
|--SCAN (subquery-xxxxxx)
|
||||
`--SCAN t3
|
||||
@@ -137,24 +137,26 @@ do_eqp_test 1.9 {
|
||||
} {
|
||||
QUERY PLAN
|
||||
|--CO-ROUTINE abc
|
||||
| `--COMPOUND QUERY
|
||||
| |--LEFT-MOST SUBQUERY
|
||||
| `--MERGE (EXCEPT)
|
||||
| |--LEFT
|
||||
| | `--SCAN CONSTANT ROW
|
||||
| `--EXCEPT USING TEMP B-TREE
|
||||
| `--SCAN t3
|
||||
|--SCAN abc
|
||||
`--SCAN t3
|
||||
| `--RIGHT
|
||||
| |--SCAN t3
|
||||
| `--USE TEMP B-TREE FOR ORDER BY
|
||||
|--SCAN t3
|
||||
`--SCAN abc
|
||||
}
|
||||
do_eqp_test 1.10 {
|
||||
SELECT * FROM t3 JOIN (SELECT 1 INTERSECT SELECT a FROM t3 LIMIT 17) AS abc
|
||||
} {
|
||||
QUERY PLAN
|
||||
|--CO-ROUTINE abc
|
||||
| `--COMPOUND QUERY
|
||||
| |--LEFT-MOST SUBQUERY
|
||||
| `--MERGE (INTERSECT)
|
||||
| |--LEFT
|
||||
| | `--SCAN CONSTANT ROW
|
||||
| `--INTERSECT USING TEMP B-TREE
|
||||
| `--SCAN t3
|
||||
| `--RIGHT
|
||||
| |--SCAN t3
|
||||
| `--USE TEMP B-TREE FOR ORDER BY
|
||||
|--SCAN abc
|
||||
`--SCAN t3
|
||||
}
|
||||
@@ -455,10 +457,11 @@ do_eqp_test 4.3.1 {
|
||||
SELECT x FROM t1 UNION SELECT x FROM t2
|
||||
} {
|
||||
QUERY PLAN
|
||||
`--COMPOUND QUERY
|
||||
|--LEFT-MOST SUBQUERY
|
||||
| `--SCAN t1
|
||||
`--UNION USING TEMP B-TREE
|
||||
`--MERGE (UNION)
|
||||
|--LEFT
|
||||
| |--SCAN t1
|
||||
| `--USE TEMP B-TREE FOR ORDER BY
|
||||
`--RIGHT
|
||||
`--SCAN t2 USING COVERING INDEX t2i1
|
||||
}
|
||||
|
||||
@@ -466,13 +469,17 @@ do_eqp_test 4.3.2 {
|
||||
SELECT x FROM t1 UNION SELECT x FROM t2 UNION SELECT x FROM t1
|
||||
} {
|
||||
QUERY PLAN
|
||||
`--COMPOUND QUERY
|
||||
|--LEFT-MOST SUBQUERY
|
||||
| `--SCAN t1
|
||||
|--UNION USING TEMP B-TREE
|
||||
| `--SCAN t2 USING COVERING INDEX t2i1
|
||||
`--UNION USING TEMP B-TREE
|
||||
`--SCAN t1
|
||||
`--MERGE (UNION)
|
||||
|--LEFT
|
||||
| `--MERGE (UNION)
|
||||
| |--LEFT
|
||||
| | |--SCAN t1
|
||||
| | `--USE TEMP B-TREE FOR ORDER BY
|
||||
| `--RIGHT
|
||||
| `--SCAN t2 USING COVERING INDEX t2i1
|
||||
`--RIGHT
|
||||
|--SCAN t1
|
||||
`--USE TEMP B-TREE FOR ORDER BY
|
||||
}
|
||||
do_eqp_test 4.3.3 {
|
||||
SELECT x FROM t1 UNION SELECT x FROM t2 UNION SELECT x FROM t1 ORDER BY 1
|
||||
|
||||
@@ -190,6 +190,20 @@ do_execsql_test offset1-2.0 {
|
||||
ORDER BY salary asc);
|
||||
} {}
|
||||
do_execsql_test offset1-2.1 {
|
||||
SELECT * FROM v ORDER BY +id;
|
||||
} {
|
||||
11 Diane London hr 70
|
||||
12 Bob London hr 78
|
||||
21 Emma London it 84
|
||||
22 Grace Berlin it 90
|
||||
23 Henry London it 104
|
||||
24 Irene Berlin it 104
|
||||
25 Frank Berlin it 120
|
||||
31 Cindy Berlin sales 96
|
||||
32 Dave London sales 96
|
||||
33 Alice Berlin sales 100
|
||||
}
|
||||
do_execsql_test offset1-2.2 {
|
||||
SELECT * FROM v LIMIT 5 OFFSET 2;
|
||||
} {
|
||||
22 Grace Berlin it 90
|
||||
@@ -198,5 +212,19 @@ do_execsql_test offset1-2.1 {
|
||||
11 Diane London hr 70
|
||||
33 Alice Berlin sales 100
|
||||
}
|
||||
do_execsql_test offset1-2.3 {
|
||||
SELECT * FROM v LIMIT 3 OFFSET 6;
|
||||
} {
|
||||
33 Alice Berlin sales 100
|
||||
23 Henry London it 104
|
||||
24 Irene Berlin it 104
|
||||
}
|
||||
do_execsql_test offset1-2.4 {
|
||||
SELECT * FROM v LIMIT 3 OFFSET 1;
|
||||
} {
|
||||
32 Dave London sales 96
|
||||
22 Grace Berlin it 90
|
||||
21 Emma London it 84
|
||||
}
|
||||
|
||||
finish_test
|
||||
|
||||
@@ -47,12 +47,12 @@ do_test tkt2339.2 {
|
||||
}
|
||||
} {4 3 14 13}
|
||||
do_test tkt2339.3 {
|
||||
execsql {
|
||||
lsort -integer [execsql {
|
||||
SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC)
|
||||
UNION ALL
|
||||
SELECT * FROM (SELECT * FROM t2 ORDER BY num DESC LIMIT 2)
|
||||
}
|
||||
} {4 3 2 1 14 13}
|
||||
}]
|
||||
} {1 2 3 4 13 14}
|
||||
do_test tkt2339.4 {
|
||||
execsql {
|
||||
SELECT * FROM (SELECT * FROM t1 ORDER BY num DESC LIMIT 2)
|
||||
|
||||
Reference in New Issue
Block a user