diff options
author | drh <> | 2024-06-06 15:03:16 +0000 |
---|---|---|
committer | drh <> | 2024-06-06 15:03:16 +0000 |
commit | 4703b7d0921291f96bb53a45f4ab49b99bfbd33c (patch) | |
tree | 356b665b030beb3dcfa7d4fd48b8170463cbbf3d /src/resolve.c | |
parent | 404ddadbd421fd3754cab1a3e90bb2dd74467fbd (diff) | |
download | sqlite-4703b7d0921291f96bb53a45f4ab49b99bfbd33c.tar.gz sqlite-4703b7d0921291f96bb53a45f4ab49b99bfbd33c.zip |
Better optimize queries that use parameters in the LIMIT clause.
FossilOrigin-Name: e58cb304d1e0ec6e30260a165aaccc2cf096ce6c999efb06683c4ef600ee12ef
Diffstat (limited to 'src/resolve.c')
-rw-r--r-- | src/resolve.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/resolve.c b/src/resolve.c index 40044a220..d5c1515a7 100644 --- a/src/resolve.c +++ b/src/resolve.c @@ -1505,7 +1505,7 @@ static int resolveOrderByTermToExprList( int rc; /* Return code from subprocedures */ u8 savedSuppErr; /* Saved value of db->suppressErr */ - assert( sqlite3ExprIsInteger(pE, &i)==0 ); + assert( sqlite3ExprIsInteger(pE, &i, 0)==0 ); pEList = pSelect->pEList; /* Resolve all names in the ORDER BY term expression @@ -1604,7 +1604,7 @@ static int resolveCompoundOrderBy( if( pItem->fg.done ) continue; pE = sqlite3ExprSkipCollateAndLikely(pItem->pExpr); if( NEVER(pE==0) ) continue; - if( sqlite3ExprIsInteger(pE, &iCol) ){ + if( sqlite3ExprIsInteger(pE, &iCol, 0) ){ if( iCol<=0 || iCol>pEList->nExpr ){ resolveOutOfRangeError(pParse, "ORDER", i+1, pEList->nExpr, pE); return 1; @@ -1789,7 +1789,7 @@ static int resolveOrderGroupBy( continue; } } - if( sqlite3ExprIsInteger(pE2, &iCol) ){ + if( sqlite3ExprIsInteger(pE2, &iCol, 0) ){ /* The ORDER BY term is an integer constant. Again, set the column ** number so that sqlite3ResolveOrderGroupBy() will convert the ** order-by term to a copy of the result-set expression */ |