aboutsummaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2020-07-13 15:20:27 +0000
committerdan <dan@noemail.net>2020-07-13 15:20:27 +0000
commit27da907f8eea868f6eae12f39b7d489bd1c11866 (patch)
treefca918732f572fa21a5af5f89ca32ca272776981 /src/window.c
parentbbc9e1908aa14d392833266ca1d1966e3f8359e1 (diff)
downloadsqlite-27da907f8eea868f6eae12f39b7d489bd1c11866.tar.gz
sqlite-27da907f8eea868f6eae12f39b7d489bd1c11866.zip
Fix a problem causing queries containing window functions to ignore collation sequences under some circumstances.
FossilOrigin-Name: e6c2192ef88e9990c8b91755c8e779f09e23f936a17123d8e42059257b756ed7
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/window.c b/src/window.c
index ab8b5ce13..602af784a 100644
--- a/src/window.c
+++ b/src/window.c
@@ -803,6 +803,7 @@ static int selectWindowRewriteExprCb(Walker *pWalker, Expr *pExpr){
p->pSub = sqlite3ExprListAppend(pParse, p->pSub, pDup);
}
if( p->pSub ){
+ int f = pExpr->flags & EP_Collate;
assert( ExprHasProperty(pExpr, EP_Static)==0 );
ExprSetProperty(pExpr, EP_Static);
sqlite3ExprDelete(pParse->db, pExpr);
@@ -813,6 +814,7 @@ static int selectWindowRewriteExprCb(Walker *pWalker, Expr *pExpr){
pExpr->iColumn = (iCol<0 ? p->pSub->nExpr-1: iCol);
pExpr->iTable = p->pWin->iEphCsr;
pExpr->y.pTab = p->pTab;
+ pExpr->flags = f;
}
if( pParse->db->mallocFailed ) return WRC_Abort;
break;