diff options
author | drh <drh@noemail.net> | 2018-07-27 18:12:40 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2018-07-27 18:12:40 +0000 |
commit | bcd15938ae67554be43ba93c076bd2430cb62479 (patch) | |
tree | 71dac71ac25c98ef883925c322870d9823137fe8 /src | |
parent | 7810ab646453c143966dad28f51e1a1950c89f88 (diff) | |
download | sqlite-bcd15938ae67554be43ba93c076bd2430cb62479.tar.gz sqlite-bcd15938ae67554be43ba93c076bd2430cb62479.zip |
Faster implementation of sqlite3IsBinary().
FossilOrigin-Name: be05d0db09f43cc3362c28273463d1d236af737a4f8a494cf1050da07ed0df47
Diffstat (limited to 'src')
-rw-r--r-- | src/expr.c | 10 | ||||
-rw-r--r-- | src/main.c | 9 |
2 files changed, 10 insertions, 9 deletions
diff --git a/src/expr.c b/src/expr.c index 98d93333b..5c9a29f63 100644 --- a/src/expr.c +++ b/src/expr.c @@ -329,13 +329,6 @@ CollSeq *sqlite3BinaryCompareCollSeq( } /* -** 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 @@ expr_code_doover: 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 07f668881..4ae5c7ecd 100644 --- a/src/main.c +++ b/src/main.c @@ -911,6 +911,15 @@ static int binCollFunc( } /* +** 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 |