1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-23 21:49:02 +03:00

Fix an incorrect assert() in generate_series(). No impact on non-debug

builds.
[bugs:/info/2026-10-17T09:24:09Z|Bug 2026-10-17T09:24:09Z]

FossilOrigin-Name: c5d67762df0507fe58e035b572623f36efb394d08d322bbdb313a2f0da49c734
This commit is contained in:
drh
2026-10-17 12:03:36 +00:00
parent 06a948cadd
commit ea9d6e8419
4 changed files with 18 additions and 10 deletions

View File

@@ -175,6 +175,7 @@ struct series_cursor {
sqlite3_int64 iValue; /* Current value */
u8 bDesc; /* iStep is really negative */
u8 bDone; /* True if stepped past last element */
u8 bLimit; /* There exists a limit clause */
};
/*
@@ -286,10 +287,10 @@ static int seriesNext(sqlite3_vtab_cursor *cur){
pCur->bDone = 1;
}else if( pCur->bDesc ){
pCur->iValue = sub64(pCur->iValue, pCur->iStep);
assert( pCur->iValue>=pCur->iTerm );
assert( pCur->iValue>=pCur->iTerm || pCur->bLimit );
}else{
pCur->iValue = add64(pCur->iValue, pCur->iStep);
assert( pCur->iValue<=pCur->iTerm );
assert( pCur->iValue<=pCur->iTerm || pCur->bLimit );
}
return SQLITE_OK;
}
@@ -519,6 +520,7 @@ static int seriesFilter(
if( idxNum & 0x40 ){
iOffset = sqlite3_value_int64(argv[iArg++]);
}
if( iLimit>0 ) pCur->bLimit = 1;
}
/* Narrow the range of iMin and iMax (the minimum and maximum outputs)

View File

@@ -1,5 +1,5 @@
C Enhance\s".expert"\sin\sthe\sCLI\sso\sthat\swhen\sit\sis\sgenerating\sunique\sindex\nnames,\sthe\sprobability\sof\sbeing\sunable\sto\screate\sa\sunique\snames\sbecomes\nvanishingly\ssmall,\sessentially\szero.\s\sAnd\seven\sif\sthat\sdoes\shappen,\nbe\ssure\sto\sfree\sthe\slast\scandidate\sname\sbefore\sreturning\san\serror.\n[bugs:/info/2026-10-17T09:25:38Z|Bug\s2026-10-17T09:25:38Z]
D 2026-10-17T11:34:38.135
C Fix\san\sincorrect\sassert()\sin\sgenerate_series().\s\sNo\simpact\son\snon-debug\nbuilds.\n[bugs:/info/2026-10-17T09:24:09Z|Bug\s2026-10-17T09:24:09Z]
D 2026-10-17T12:03:36.275
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -396,7 +396,7 @@ F ext/misc/randomjson.c ef835fc64289e76ac4873b85fe12f9463a036168d7683cf2b773e36e
F ext/misc/regexp.c 378e6e84516952a4b9f3f4df88927f20e6538e2609f55b773ed78899dab8206e
F ext/misc/remember.c add730f0f7e7436cd15ea3fd6a90fd83c3f706ab44169f7f048438b7d6baa69c
F ext/misc/rot13.c 51ac5f51e9d5fd811db58a9c23c628ad5f333c173f1fc53c8491a3603d38556c
F ext/misc/series.c fd82b5c14849b861a299a316b0c63bfd69f7249601ee9bcc6fda2317fec0f821
F ext/misc/series.c 3296d04bc84a64848c3abea7b9a152cb8dd198f23f71b6ee28c3fa22ca5f8746
F ext/misc/sha1.c c279eaae2d203be3443f9e3052401d15dc98bd43aa389d4e234ab0e295b4a04b
F ext/misc/shathree.c e40d4239d522946f6c9821a2244907ae8288ae45a8c8ed979b62e83979666a6d
F ext/misc/showauth.c 732578f0fe4ce42d577e1c86dc89dd14a006ab52
@@ -1786,7 +1786,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 173820a340c9fa6591c5fd8ae7e60e405e324bca6f2fd5ae746568fc955fe1b7
F test/tabfunc01.test 9840707afb06ee6ab0fdcf45909cd1b5070e55354cd9b97e847068a46565fd91
F test/table.test e87294bf1c80bfd7792142b84ab32ea5beb4f3f71e535d7fb263a6b2068377bf
F test/tableapi.test e37c33e6be2276e3a96bb54b00eea7f321277115d10e5b30fdb52a112b432750
F test/tableopts.test dba698ba97251017b7c80d738c198d39ab747930
@@ -2287,8 +2287,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
P d3e004fe3daeb01085e969890beb56fe71839bcad0e7a19e1690a1b2d14b2775
R 3077b19d0e70dbba6a59036154db532b
P d43611f653bad426df8dc4ac12d0fff1662245b0715f7e66a023bd1dd129faea
R 4860e4e720900d9865bb628f2bb5e16b
U drh
Z 1911116dbdc0d7381d7fd295cb3b0087
Z 1becf78a83ced1d37cf8fb84d4943e6b
# Remove this line to create a well-formed Fossil manifest.

View File

@@ -1 +1 @@
d43611f653bad426df8dc4ac12d0fff1662245b0715f7e66a023bd1dd129faea
c5d67762df0507fe58e035b572623f36efb394d08d322bbdb313a2f0da49c734

View File

@@ -799,6 +799,12 @@ do_execsql_test 1523ck {
LIMIT 3;
} {9223372036854775805 9223372036854775806 9223372036854775807}
# Bug 2026-10-17T09:24:09Z
#
breakpoint
do_execsql_test 1530 {
SELECT value FROM generate_series(1,10) ORDER BY value DESC LIMIT 3;
} {10 9 8}
#------------------------------------------------------------------------
#