Faster implementation of sqlite3IsBinary().
FossilOrigin-Name: be05d0db09f43cc3362c28273463d1d236af737a4f8a494cf1050da07ed0df47
diff --git a/src/expr.c b/src/expr.c
index 98d9333..5c9a29f 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -329,13 +329,6 @@
}
/*
-** Return true if CollSeq is the default built-in BINARY.
-*/
-int sqlite3IsBinary(const CollSeq *p){
- return p==0 || sqlite3StrICmp(p->zName,sqlite3StrBINARY)==0;
-}
-
-/*
** Generate code for a comparison operator.
*/
static int codeCompare(
@@ -3592,8 +3585,7 @@
case TK_COLUMN: {
int iTab = pExpr->iTable;
if( ExprHasProperty(pExpr, EP_FixedCol) ){
- pExpr = pExpr->pLeft;
- goto expr_code_doover;
+ return sqlite3ExprCodeTarget(pParse, pExpr->pLeft,target);
}
if( iTab<0 ){
if( pParse->iSelfTab<0 ){
diff --git a/src/main.c b/src/main.c
index 07f6688..4ae5c7e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -911,6 +911,15 @@
}
/*
+** Return true if CollSeq is the default built-in BINARY.
+*/
+int sqlite3IsBinary(const CollSeq *p){
+ assert( p==0 || p->xCmp!=binCollFunc || p->pUser!=0
+ || strcmp(p->zName,"BINARY")==0 );
+ return p==0 || (p->xCmp==binCollFunc && p->pUser==0);
+}
+
+/*
** Another built-in collating sequence: NOCASE.
**
** This collating sequence is intended to be used for "case independent