]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Many more tests are passing. Only about 100 failures remain in veryquick.
authordrh <drh@noemail.net>
Fri, 7 Dec 2012 20:31:11 +0000 (20:31 +0000)
committerdrh <drh@noemail.net>
Fri, 7 Dec 2012 20:31:11 +0000 (20:31 +0000)
FossilOrigin-Name: f9fa7581c0371fe0feb4e97487741ade18595810

manifest
manifest.uuid
src/expr.c
src/where.c

index d0760460b10df024123a6ab07dd60954763e085c..34721bdbc1ef0c258ef272fb631dacf11e10c191 100644 (file)
--- 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
index 6860adb954af8ecf3f0cdf46ba94cb4d9358413a..f24da198dd8a18c6094d07adcf8f98d91a9cfedf 100644 (file)
@@ -1 +1 @@
-972443b4eb282d45507da06c75e2cd46dd72326b
\ No newline at end of file
+f9fa7581c0371fe0feb4e97487741ade18595810
\ No newline at end of file
index b47752aec740ccc68a6047bd88b4f913115febef..ce6e295787fbb6caf74a33a27d48ed3307217494 100644 (file)
@@ -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: {
index c5bb729d83848a0cdcd2953b57112f232829a231..a38df7db00a824c50b46d80e6730a682d296cb50 100644 (file)
@@ -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{