-C Avoid\sassuming\sthat\scursor\snumbers\swere\sallocated\sin\sorder\sfor\sall\sSrcList\sobjects\swhen\sdetecting\sON\sclauses\sthat\srefer\sto\stables\sto\stheir\sright.\sPossible\sfix\sfor\s[bugs:/info/2026-07-29T17:50:40Z\s|\s2026-07-29T17:50:40Z].
-D 2026-07-29T19:17:40.185
+C Improve\scomments.\s\sMove\sa\svariable\soutside\sof\sa\sloop.
+D 2026-07-29T21:09:37.522
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
F src/resolve.c 7145e41ad75e04a811b326aa5faf83c2e071480fabd9fc825055a6b889e6cb86
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
-F src/select.c ab057deee79badfb48e1ed7c2181b81be93b030627fdbc7e90c690afbc39fe50
+F src/select.c 9c836318f77ea33e3a3bcadce008978611338f98d3a50461f08a79ecbf737d1a
F src/shell.c.in 773fc57916edeacef3f314e4dc285f250e17086284cc7a2d382d01f06f160084
F src/sqlite.h.in 2101a2b494cbc282d0dc1c3f631c4fb83060c52876cc9d7615b091ad66d932b1
F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
F test/with2.test 181674a6cc86a601ca2ac052741cdfad5b529e07e870435d2f6cdb92d589ff17
F test/with3.test e30369ea27aa27eb1bda4c5e510c8a9f782c8afd2ab99d1a02b8a7f25a5d3e65
F test/with4.test 257be66c0c67fee1defbbac0f685c3465e2cad037f21ce65f23f86084f198205
-F test/with5.test d7552ca90d20fc168d77029a1ea34e5214952e7f4dc1402dd1da4ebc7df768a7
+F test/with5.test 262a604e001938428da3d06ca90df9a478eff34ada737e2c023a99954418e8cf
F test/with6.test 281e4861b5e517f6c3c2f08517a520c1e2ee7c11966545d3901f258a4fe8ef76
F test/withM.test 693b61765f2b387b5e3e24a4536e2e82de15ff64
F test/without_rowid1.test f6e75e32821eb423ac3812434d12bdd8098f17e3b2206da61575e1db77f82428
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 5c645d5e241f6055c8dd45936a52245ecb2476a6603e06b793912bf897e42239
-R 894c91486b33001a9fd13d6bf48a7379
-T *branch * bug-2026-07-29T17:50:40Z
-T *sym-bug-2026-07-29T17:50:40Z *
-T -sym-trunk *
-U dan
-Z 5cc8db10fc8e51668dc6e669ab9534bf
+P ebfea8cfb03e0578364bb1f5f8f44c55127f2155d9a0999865a811098f69e9f4
+R ae5129ba956ae6f694d5156cc3135967
+U drh
+Z 1454af0e8c2d5ac96f3c90009f9616cc
# Remove this line to create a well-formed Fossil manifest.
*/
typedef struct CheckOnCtx CheckOnCtx;
struct CheckOnCtx {
- SrcList *pSrc; /* SrcList for this context */
- int iJoin; /* Cursor numbers must be =< than this */
- int bFuncArg; /* True for table-function arg */
- CheckOnCtx *pParent; /* Parent context */
+ SrcList *pSrc; /* SrcList for this context */
+ int iJoin; /* Cursors must be left of this one, if not zero */
+ int bFuncArg; /* True for table-function arg */
+ CheckOnCtx *pParent; /* Parent context */
};
/*
** Then, if CheckOnCtx.iJoin indicates that this expression is part of an
** ON clause from that SrcList (i.e. if iJoin is non-zero), check that it
** does not refer to a table to the right of CheckOnCtx.iJoin. */
+ int iTab = pExpr->iTable;
do {
SrcList *pSrc = pCtx->pSrc;
int nSrc = pSrc->nSrc;
- int iTab = pExpr->iTable;
int ii;
for(ii=0; ii<nSrc && pSrc->a[ii].iCursor!=iTab; ii++){}
if( ii<nSrc ){
+ /* pSrc is the FROM clause that contains iTab */
if( pCtx->iJoin ){
for(ii--; ii>=0 && pSrc->a[ii].iCursor!=pCtx->iJoin; ii--){}
if( ii>=0 ){