]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Minor bug fixes. Many new test cases. series-refactor
authordrh <>
Sun, 28 Sep 2025 17:24:42 +0000 (17:24 +0000)
committerdrh <>
Sun, 28 Sep 2025 17:24:42 +0000 (17:24 +0000)
FossilOrigin-Name: 86dcc68d1816d970d8d5fb158696c3fe6c5ddcac2c255823110d656372503885

ext/misc/series.c
manifest
manifest.uuid
test/tabfunc01.test

index 9f33eae05d6449bc11a92a4070efdef2c5a4d048..ddf754419a600c484267e747ec061356efb39015 100644 (file)
@@ -555,7 +555,7 @@ static int seriesFilter(
       if( pCur->iBase>iMax ){
         sqlite3_uint64 span = span64(pCur->iBase,iMax);
         pCur->iBase = sub64(pCur->iBase, (span/pCur->iStep)*pCur->iStep);
-        if( pCur->iBase<iMax ){
+        if( pCur->iBase>iMax ){
           if( pCur->iBase < add64(SMALLEST_INT64, pCur->iStep) ){
             goto series_no_rows;
           }
@@ -593,7 +593,7 @@ static int seriesFilter(
     sqlite3_int64 tmp = pCur->iBase;
     pCur->iBase = pCur->iTerm;
     pCur->iTerm = tmp;
-    pCur->bDesc = ~pCur->bDesc;
+    pCur->bDesc = !pCur->bDesc;
   }
 
   /* Apply LIMIT and OFFSET constraints, if any */
index 8ffac2e64cbab05b0ff7dbc6351ed3183588b414..b0dcfb9c5497018c18e7903ef8bdeffc0d19132f 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C All\slegacy\stests\sare\spassing.\s\sWant\sto\sadd\snew\stest\scases\sbefore\smerging.
-D 2025-09-28T11:01:05.075
+C Minor\sbug\sfixes.\s\sMany\snew\stest\scases.
+D 2025-09-28T17:24:42.767
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -393,7 +393,7 @@ F ext/misc/regexp.c 548151f3e57506fda678e6a65e85a763f4eece653287e1ad44e167f9485e
 F ext/misc/remember.c add730f0f7e7436cd15ea3fd6a90fd83c3f706ab44169f7f048438b7d6baa69c
 F ext/misc/rot13.c 51ac5f51e9d5fd811db58a9c23c628ad5f333c173f1fc53c8491a3603d38556c
 F ext/misc/scrub.c 2a44b0d44c69584c0580ad2553f6290a307a49df4668941d2812135bfb96a946
-F ext/misc/series.c 508f68964de59b6924fd551cd57922d2dc18707f9f14deb93aed4750cb1fbd3c
+F ext/misc/series.c 42f4d9acd8c497a147363dcd69208d09ba9173f448811ccfb8d26765394d3d25
 F ext/misc/sha1.c cb5002148c2661b5946f34561701e9105e9d339b713ec8ac057fd888b196dcb9
 F ext/misc/shathree.c fd22d70620f86a0467acfdd3acd8435d5cb54eb1e2d9ff36ae44e389826993df
 F ext/misc/showauth.c 732578f0fe4ce42d577e1c86dc89dd14a006ab52
@@ -1678,7 +1678,7 @@ F test/sync.test a619e407ede58a7b6e3e44375328628559fc9695a9c24c47cb5690a866b0031
 F test/sync2.test 06152269ed73128782c450c355988fe8dd794d305833af75e1a5e79edd4dae47
 F test/syscall.test a067468b43b8cb2305e9f9fe414e5f40c875bb5d2cba5f00b8154396e95fcf37
 F test/sysfault.test c9f2b0d8d677558f74de750c75e12a5454719d04
-F test/tabfunc01.test f9a612a6a021e9f0d8df7d182762fea55dff671c29a5a15100cad4388e08151c
+F test/tabfunc01.test be36fc7f6d221482216f7f1032d6a4595ac542cf427132f4728a65697830ab9c
 F test/table.test e87294bf1c80bfd7792142b84ab32ea5beb4f3f71e535d7fb263a6b2068377bf
 F test/tableapi.test e37c33e6be2276e3a96bb54b00eea7f321277115d10e5b30fdb52a112b432750
 F test/tableopts.test dba698ba97251017b7c80d738c198d39ab747930
@@ -2169,8 +2169,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 6c41d14707e6890ca6d0460c72178ccb710d7f41dead76f222f1382c5cbd5a9a
-R 91d517b97245f2e69e93e148ba5c472f
+P adb80761d2319e16b6db2b5e35fedc239fad0ed5d26d629a5ea659c90881f76a
+R 83cfe9d3a8c0378be7f6560078e48e83
 U drh
-Z 1a8e51c4fce049925b4ae5730e3a44f2
+Z 51343f533d88aa49b2a0b84ebd3e1b49
 # Remove this line to create a well-formed Fossil manifest.
index 13e9b2c04cc42ec7c65283d699ae19bbf1be47f2..4badebcb57488c1422924236bd8d436a6269cc1a 100644 (file)
@@ -1 +1 @@
-adb80761d2319e16b6db2b5e35fedc239fad0ed5d26d629a5ea659c90881f76a
+86dcc68d1816d970d8d5fb158696c3fe6c5ddcac2c255823110d656372503885
index 0fe030634c396b24a5a16654958a91142b980ede..95aff925fc021872d45e318e97c185c37469d44b 100644 (file)
@@ -513,6 +513,159 @@ do_execsql_test 1200 {
     FROM t1 RIGHT JOIN generate_series(1,3,1) AS t2 USING(value);
 } {1 1 2 2 3 3}
 
+#--------------------------------------------------------------------------
+# New test cases for generate_series associated with the refactor on branch
+# serices-refactor circa 2025-09-27.
+#
+do_execsql_test 1300 {
+  SELECT value
+    FROM generate_series(-9223372036854775808, 9223372036854775807, 2)
+   WHERE value BETWEEN 1 AND 5;
+} {2 4}
+do_execsql_test 1301 {
+  SELECT value
+    FROM generate_series(-9223372036854775808, 9223372036854775807, 2)
+   WHERE value BETWEEN 0 AND 6;
+} {0 2 4 6}
+do_execsql_test 1302 {
+  SELECT value
+    FROM generate_series(-9223372036854775808, 9223372036854775807, 2)
+   WHERE value BETWEEN 0.5 AND 6.25;
+} {2 4 6}
+do_execsql_test 1303 {
+  SELECT value
+    FROM generate_series(-9223372036854775808, 9223372036854775807, 2)
+   WHERE value BETWEEN 9223372036854775803 AND 9223372036854775807
+} {9223372036854775804 9223372036854775806}
+do_execsql_test 1304 {
+  SELECT value
+    FROM generate_series(-9223372036854775808, 9223372036854775807, 2)
+   WHERE value BETWEEN 9223372036854775803 AND 9223372036854775807
+   ORDER BY value DESC;
+} {9223372036854775806 9223372036854775804}
+
+do_execsql_test 1310 {
+  SELECT value FROM generate_series(0) LIMIT 5;
+} {0 1 2 3 4}
+do_execsql_test 1311 {
+  SELECT value FROM generate_series(5) LIMIT 5;
+} {5 6 7 8 9}
+do_execsql_test 1312 {
+  SELECT value FROM generate_series(0) WHERE stop=6;
+} {0 1 2 3 4 5 6}
+do_execsql_test 1313 {
+  SELECT value FROM generate_series(1,10) WHERE step IS NULL;
+} {}
+do_execsql_test 1314 {
+  SELECT value FROM generate_series(0xfffffffd);
+} {4294967293 4294967294 4294967295}
+do_execsql_test 1315 {
+  SELECT value FROM generate_series(4,3,1);
+} {}
+do_execsql_test 1316 {
+  SELECT value FROM generate_series(3,4,-1);
+} {}
+
+do_execsql_test 1320 {
+  SELECT value FROM generate_series(-9223372036854775808,+9223372036854775807)
+   WHERE value=9.2234e18;
+} {}
+do_execsql_test 1321 {
+  SELECT value FROM generate_series(-9223372036854775808,+9223372036854775807)
+   WHERE value=-9.2234e18;
+} {}
+do_execsql_test 1322 {
+  SELECT value FROM generate_series(-9223372036854775808,+9223372036854775807)
+   WHERE value>9223372036854775807;
+} {}
+do_execsql_test 1323 {
+  SELECT value FROM generate_series(-9223372036854775808,+9223372036854775807)
+   WHERE value>9223372036854775806;
+} {9223372036854775807}
+do_execsql_test 1324 {
+  SELECT value FROM generate_series(-9223372036854775808,+9223372036854775807)
+   WHERE value>=9223372036854775807;
+} {9223372036854775807}
+
+do_execsql_test 1330 {
+  SELECT value FROM generate_series(-9223372036854775808,+9223372036854775807)
+   WHERE value<-9223372036854775808;
+} {}
+do_execsql_test 1331 {
+  SELECT value FROM generate_series(-9223372036854775808,+9223372036854775807)
+   WHERE value<=-9223372036854775808;
+} {-9223372036854775808}
+do_execsql_test 1332 {
+  SELECT value FROM generate_series(-9223372036854775808,+9223372036854775807)
+   WHERE value<-9223372036854775807;
+} {-9223372036854775808}
+do_execsql_test 1333 {
+  SELECT value FROM generate_series(-9223372036854775808,+9223372036854775807)
+   WHERE value BETWEEN 4 AND 1;
+} {}
+
+do_execsql_test 1340 {
+  SELECT value FROM generate_series(100,0,-10)
+   WHERE value BETWEEN 33 AND 66;
+} {60 50 40}
+do_execsql_test 1341 {
+  SELECT value FROM generate_series(100,0,-10)
+   WHERE value BETWEEN 33 AND 60;
+} {60 50 40}
+do_execsql_test 1342 {
+  SELECT value FROM generate_series(100,0,-10)
+   WHERE value BETWEEN 33 AND 59;
+} {50 40}
+do_execsql_test 1343 {
+  SELECT value
+    FROM generate_series(-9223372036854760000,-9223372036854775808,-10000);
+} {-9223372036854760000 -9223372036854770000}
+do_execsql_test 1344 {
+  SELECT value
+    FROM generate_series(-9223372036854760000,-9223372036854775808,-10000)
+   WHERE value < -9223372036854770001;
+} {}
+do_execsql_test 1345 {
+  SELECT value
+    FROM generate_series(9223372036854760000,9223372036854775807,10000);
+} {9223372036854760000 9223372036854770000}
+do_execsql_test 1346 {
+  SELECT value
+    FROM generate_series(9223372036854760000,9223372036854775807,10000)
+   WHERE value > 9223372036854770001;
+} {}
+
+do_execsql_test 1350 {
+  SELECT value FROM generate_series(100,0,-10)
+   WHERE value BETWEEN 33 AND 38;
+} {}
+do_execsql_test 1351 {
+  SELECT value FROM generate_series(0,100,+10)
+   WHERE value BETWEEN 33 AND 38;
+} {}
+
+do_execsql_test 1360 {
+  SELECT * FROM generate_series(0,-9223372036854775808,-9223372036854775808);
+} {0 -9223372036854775808}
+do_execsql_test 1361 {
+  SELECT * FROM generate_series(0,-9223372036854775808,-9223372036854775808)
+  LIMIT 1 OFFSET 0;
+} {0}
+do_execsql_test 1362 {
+  SELECT * FROM generate_series(0,-9223372036854775808,-9223372036854775808)
+   ORDER BY value ASC;
+} {-9223372036854775808 0}
+do_execsql_test 1363 {
+  SELECT * FROM generate_series(0,-9223372036854775808,-9223372036854775808)
+   ORDER BY value ASC LIMIT 10 OFFSET 1;
+} {0}
+do_execsql_test 1364 {
+  SELECT * FROM generate_series(0,-9223372036854775808,-9223372036854775808)
+   ORDER BY value ASC LIMIT 10 OFFSET 40000000;
+} {}
+
+
+
 # Free up memory allocations
 intarray_addr
 int64array_addr