From: drh Date: Fri, 7 Dec 2012 20:31:11 +0000 (+0000) Subject: Many more tests are passing. Only about 100 failures remain in veryquick. X-Git-Tag: version-3.7.15~7^2~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7a66da1395eefb5368b7f72439cccf25c4531537;p=thirdparty%2Fsqlite.git Many more tests are passing. Only about 100 failures remain in veryquick. FossilOrigin-Name: f9fa7581c0371fe0feb4e97487741ade18595810 --- diff --git a/manifest b/manifest index d0760460b1..34721bdbc1 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Some\serrors\sin\sveryquick\sresolved.\s\sMany\smore\sto\sgo. -D 2012-12-07T18:38:16.876 +C Many\smore\stests\sare\spassing.\s\sOnly\sabout\s100\sfailures\sremain\sin\sveryquick. +D 2012-12-07T20:31:11.446 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 690d441a758cbffd13e814dc2724a721a6ebd400 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -130,7 +130,7 @@ F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac F src/ctime.c 72a70dcfda75d3a1f81041ce4573e7afddcd8e4e F src/date.c 067a81c9942c497aafd2c260e13add8a7d0c7dd4 F src/delete.c 9b8d308979114991e5dc7cee958316e07186941d -F src/expr.c 92d9ab5a1e1a03a1249b53ada65e48ea16baea5a +F src/expr.c 9102d69c2d06fb34616d14de943bd8f342585c47 F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb F src/fkey.c ddf44f8ce43b91623e8687fd940c6bf3882d9480 F src/func.c 8147799b048065a1590805be464d05b4913e652c @@ -250,7 +250,7 @@ F src/vtab.c b05e5f1f4902461ba9f5fc49bb7eb7c3a0741a83 F src/wal.c f5c7b5027d0ed0e9bc9afeb4a3a8dfea762ec7d2 F src/wal.h 29c197540b19044e6cd73487017e5e47a1d3dac6 F src/walker.c 3d75ba73de15e0f8cd0737643badbeb0e002f07b -F src/where.c 5ad63b25b3c72283fd1aec537b67b2626184e8cb +F src/where.c bc400d459180065768bdb7ad8477dd6cbab754fa F test/8_3_names.test 631ea964a3edb091cf73c3b540f6bcfdb36ce823 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 F test/aggnested.test 45c0201e28045ad38a530b5a144b73cd4aa2cfd6 @@ -1025,7 +1025,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381 F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac -P 7fafab12e4c0c832c421975f8329c3214403d281 -R 88f21ae985a55e8530e6b5e5f447d601 +P 972443b4eb282d45507da06c75e2cd46dd72326b +R addb1e849abbd533b321eb7c1f86638b U drh -Z 7b8fedbb4bb4153ec5825d6ca9d67e65 +Z f47e0ce4e032364f0db26315f2eb73bb diff --git a/manifest.uuid b/manifest.uuid index 6860adb954..f24da198dd 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -972443b4eb282d45507da06c75e2cd46dd72326b \ No newline at end of file +f9fa7581c0371fe0feb4e97487741ade18595810 \ No newline at end of file diff --git a/src/expr.c b/src/expr.c index b47752aec7..ce6e295787 100644 --- a/src/expr.c +++ b/src/expr.c @@ -112,7 +112,7 @@ CollSeq *sqlite3ExprCollSeq(Parse *pParse, Expr *pExpr){ continue; } if( op==TK_COLLATE ){ - pColl = sqlite3FindCollSeq(db, ENC(db), p->u.zToken, 0); + pColl = sqlite3GetCollSeq(pParse, ENC(db), 0, p->u.zToken); break; } if( p->pTab!=0 @@ -3129,6 +3129,12 @@ void sqlite3ExplainExpr(Vdbe *pOut, Expr *pExpr){ case TK_ISNULL: zUniOp = "ISNULL"; break; case TK_NOTNULL: zUniOp = "NOTNULL"; break; + case TK_COLLATE: { + sqlite3ExplainExpr(pOut, pExpr->pLeft); + sqlite3ExplainPrintf(pOut,".COLLATE(%s)",pExpr->u.zToken); + break; + } + case TK_AGG_FUNCTION: case TK_CONST_FUNC: case TK_FUNCTION: { diff --git a/src/where.c b/src/where.c index c5bb729d83..a38df7db00 100644 --- a/src/where.c +++ b/src/where.c @@ -1188,7 +1188,7 @@ static void exprAnalyze( } pTerm = &pWC->a[idxTerm]; pMaskSet = pWC->pMaskSet; - pExpr = pTerm->pExpr; + pExpr = sqlite3ExprSkipCollate(pTerm->pExpr); prereqLeft = exprTableUsage(pMaskSet, pExpr->pLeft); op = pExpr->op; if( op==TK_IN ){ @@ -1215,8 +1215,8 @@ static void exprAnalyze( pTerm->iParent = -1; pTerm->eOperator = 0; if( allowedOp(op) && (pTerm->prereqRight & prereqLeft)==0 ){ - Expr *pLeft = pExpr->pLeft; - Expr *pRight = pExpr->pRight; + Expr *pLeft = sqlite3ExprSkipCollate(pExpr->pLeft); + Expr *pRight = sqlite3ExprSkipCollate(pExpr->pRight); if( pLeft->op==TK_COLUMN ){ pTerm->leftCursor = pLeft->iTable; pTerm->u.leftColumn = pLeft->iColumn; @@ -2865,7 +2865,7 @@ static int isSortingIndex( /* If the next term of the ORDER BY clause refers to anything other than ** a column in the "base" table, then this index will not be of any ** further use in handling the ORDER BY. */ - pOBExpr = pOBItem->pExpr; + pOBExpr = sqlite3ExprSkipCollate(pOBItem->pExpr); if( pOBExpr->op!=TK_COLUMN || pOBExpr->iTable!=base ){ break; } @@ -2891,7 +2891,7 @@ static int isSortingIndex( ** clause entry. Set isMatch to 1 if they both match. */ if( pOBExpr->iColumn==iColumn ){ if( zColl ){ - pColl = sqlite3ExprCollSeq(pParse, pOBExpr); + pColl = sqlite3ExprCollSeq(pParse, pOBItem->pExpr); if( !pColl ) pColl = db->pDfltColl; isMatch = sqlite3StrICmp(pColl->zName, zColl)==0; }else{