Use an ALWAY() on conditionals in the transitive constraint logic that are
always true as far as we know.

FossilOrigin-Name: 204e567f68e4b3e069f04ca0643c6e5db781d39f
diff --git a/manifest b/manifest
index 04d8531..613107e 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Refinements\sto\sthe\sdetermination\sof\swhen\san\sA==B\sterm\sis\san\sequivalence.\nAdd\stest\scases.
-D 2015-05-18T11:34:52.372
+C Use\san\sALWAY()\son\sconditionals\sin\sthe\stransitive\sconstraint\slogic\sthat\sare\nalways\strue\sas\sfar\sas\swe\sknow.
+D 2015-05-18T12:18:37.067
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in edfc69769e613a6359c42c06ea1d42c3bece1736
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -307,7 +307,7 @@
 F src/wal.c ce2cb2d06faab54d1bce3e739bec79e063dd9113
 F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4
 F src/walker.c c253b95b4ee44b21c406e2a1052636c31ea27804
-F src/where.c 68369923d549b475c991f2518002ea899a86e2cc
+F src/where.c e71eae3b1383249c3b5d136d6b71ca8d28fb8d61
 F src/whereInt.h a6f5a762bc1b4b1c76e1cea79976b437ac35a435
 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
@@ -1258,7 +1258,7 @@
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 8c886c43ff0bd5953d289534791d2c6b9dc25445
-R 40be7b14d15113b252df872d4e1eef76
+P 6bfaf525cac2e0c0a4a3bd3a1fc7bf5bd3234303
+R 6e68677be01e9eb58bd600864e0bd14f
 U drh
-Z 672ea121cac3835cdbb00fa056bd1b67
+Z db7553e06fec928a1e05d39be9821e62
diff --git a/manifest.uuid b/manifest.uuid
index ee2ba84..a2436cc 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-6bfaf525cac2e0c0a4a3bd3a1fc7bf5bd3234303
\ No newline at end of file
+204e567f68e4b3e069f04ca0643c6e5db781d39f
\ No newline at end of file
diff --git a/src/where.c b/src/where.c
index 2566689..d0dfb78 100644
--- a/src/where.c
+++ b/src/where.c
@@ -1214,9 +1214,11 @@
   pColl = sqlite3BinaryCompareCollSeq(pParse, pExpr->pLeft, pExpr->pRight);
   if( pColl==0 || sqlite3StrICmp(pColl->zName, "BINARY")==0 ) return 1;
   pColl = sqlite3ExprCollSeq(pParse, pExpr->pLeft);
-  zColl1 = pColl ? pColl->zName : "BINARY";
+  /* Since pLeft and pRight are both a column references, their collating
+  ** sequence should always be defined. */
+  zColl1 = ALWAYS(pColl) ? pColl->zName : 0;
   pColl = sqlite3ExprCollSeq(pParse, pExpr->pRight);
-  zColl2 = pColl ? pColl->zName : "BINARY";
+  zColl2 = ALWAYS(pColl) ? pColl->zName : 0;
   return sqlite3StrICmp(zColl1, zColl2)==0;
 }