aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
authordrh <>2024-08-31 22:22:24 +0000
committerdrh <>2024-08-31 22:22:24 +0000
commitdf2d14b86e8d6d990ed9d5dd5b620fed5ece6adc (patch)
tree5bc5eda45419c2f81f6b005179c52ee9ad979e85 /src/resolve.c
parenta239ece3781403dd43d0f4db048741a2c8184f37 (diff)
downloadsqlite-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.c4
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 ){