aboutsummaryrefslogtreecommitdiff
path: root/src/select.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2012-12-07 22:18:54 +0000
committerdrh <drh@noemail.net>2012-12-07 22:18:54 +0000
commit953f7611da21d43454ae5173f5fb1b69465a2d45 (patch)
tree5b68b836a82c4ba563f31d536f51b2b8d53154ee /src/select.c
parentbd13d34b08ddc66a079f671bcbe96127b41da957 (diff)
downloadsqlite-953f7611da21d43454ae5173f5fb1b69465a2d45.tar.gz
sqlite-953f7611da21d43454ae5173f5fb1b69465a2d45.zip
Fix a long-standing issue with the distinct-as-aggregate optimization that
only expressed when the new collating-sequence logic is turned on. FossilOrigin-Name: 0aaf52a339808386984c30cca0c0c35ac2e70e7e
Diffstat (limited to 'src/select.c')
-rw-r--r--src/select.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/select.c b/src/select.c
index 4582d2bc1..6a7128683 100644
--- a/src/select.c
+++ b/src/select.c
@@ -2337,7 +2337,7 @@ static int multiSelectOrderBy(
pColl = sqlite3ExprCollSeq(pParse, pTerm);
}else{
pColl = multiSelectCollSeq(pParse, p, aPermute[i]);
- pTerm->flags |= EP_Collate;
+// pTerm->flags |= EP_Collate;
}
pKeyMerge->aColl[i] = pColl;
pKeyMerge->aSortOrder[i] = pOrderBy->a[i].sortOrder;
@@ -2540,6 +2540,7 @@ static int multiSelectOrderBy(
sqlite3VdbeAddOp4(v, OP_Permutation, 0, 0, 0, (char*)aPermute, P4_INTARRAY);
sqlite3VdbeAddOp4(v, OP_Compare, destA.iSdst, destB.iSdst, nOrderBy,
(char*)pKeyMerge, P4_KEYINFO_HANDOFF);
+ sqlite3VdbeChangeP5(v, OPFLAG_PERMUTE);
sqlite3VdbeAddOp3(v, OP_Jump, addrAltB, addrAeqB, addrAgtB);
/* Release temporary registers