aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2019-12-27 19:46:07 +0000
committerdan <dan@noemail.net>2019-12-27 19:46:07 +0000
commite3735bf466b8220d126ae7be4b4fc3482a997fdd (patch)
tree54d3b719e9e84c52b5c3bdac2e7b8ee0cdda3b02 /src/resolve.c
parent6473ba95a0325e21716940299761d6a1a3c43d59 (diff)
downloadsqlite-e3735bf466b8220d126ae7be4b4fc3482a997fdd.tar.gz
sqlite-e3735bf466b8220d126ae7be4b4fc3482a997fdd.zip
Fix a problem involving window function aliases being referenced from sub-selects.
FossilOrigin-Name: e3b5fc05c00fc58be7a7c94ce1d97a5b05113f39aba03df64aab08364f85616b
Diffstat (limited to 'src/resolve.c')
-rw-r--r--src/resolve.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/resolve.c b/src/resolve.c
index ea8f00244..a0f9c0f22 100644
--- a/src/resolve.c
+++ b/src/resolve.c
@@ -459,7 +459,9 @@ static int lookupName(
sqlite3ErrorMsg(pParse, "misuse of aliased aggregate %s", zAs);
return WRC_Abort;
}
- if( (pNC->ncFlags&NC_AllowWin)==0 && ExprHasProperty(pOrig, EP_Win) ){
+ if( ExprHasProperty(pOrig, EP_Win)
+ && ((pNC->ncFlags&NC_AllowWin)==0 || pNC!=pTopNC )
+ ){
sqlite3ErrorMsg(pParse, "misuse of aliased window function %s",zAs);
return WRC_Abort;
}