diff options
author | drh <> | 2024-08-31 22:22:24 +0000 |
---|---|---|
committer | drh <> | 2024-08-31 22:22:24 +0000 |
commit | df2d14b86e8d6d990ed9d5dd5b620fed5ece6adc (patch) | |
tree | 5bc5eda45419c2f81f6b005179c52ee9ad979e85 /src/resolve.c | |
parent | a239ece3781403dd43d0f4db048741a2c8184f37 (diff) | |
download | sqlite-df2d14b86e8d6d990ed9d5dd5b620fed5ece6adc.tar.gz sqlite-df2d14b86e8d6d990ed9d5dd5b620fed5ece6adc.zip |
Add error checking: Do not allow functions other than those in the
percentile extension to use the ordered-set aggregate notation.
FossilOrigin-Name: 317d901429303340290334dbe7680a36339df0a50b586e3f71b6c5e5eba6d411
Diffstat (limited to 'src/resolve.c')
-rw-r--r-- | src/resolve.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/resolve.c b/src/resolve.c index b755cc864..f448bc324 100644 --- a/src/resolve.c +++ b/src/resolve.c @@ -1292,6 +1292,10 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ else if( ExprHasProperty(pExpr, EP_WinFunc) || pExpr->pLeft ){ is_agg = 1; } + if( pExpr->iColumn && (pDef->funcFlags & SQLITE_SELFORDER1)==0 ){ + sqlite3ErrorMsg(pParse, "%#T() is not a ordered-set aggregate function", + pExpr); + } sqlite3WalkExprList(pWalker, pList); if( is_agg ){ if( pExpr->pLeft ){ |