Combine the Expr.pTab and Expr.pWin fields into a union named "y". Add a new

EP_WinFunc property that is only true if Expr.y.pWin is a valid pointer.
This reduces the size of the Expr object by 8 bytes, reduces the overall
amount of code, and shaves over 1 million cycles off of the speed test.

FossilOrigin-Name: ad130bb86e74e6ce165fdbdce3a19699510f0e62071c1c7923b5a4538d888c7c
This commit is contained in:
drh
2018-09-20 19:02:15 +00:00
parent 85c6892aa4
commit eda079cd2c
15 changed files with 123 additions and 121 deletions
+1 -4
View File
@@ -941,13 +941,10 @@ idlist(A) ::= nm(Y).
p->pLeft = p->pRight = 0;
p->x.pList = 0;
p->pAggInfo = 0;
p->pTab = 0;
p->y.pTab = 0;
p->op2 = 0;
p->iTable = 0;
p->iColumn = 0;
#ifndef SQLITE_OMIT_WINDOWFUNC
p->pWin = 0;
#endif
p->u.zToken = (char*)&p[1];
memcpy(p->u.zToken, t.z, t.n);
p->u.zToken[t.n] = 0;