aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authormistachkin <mistachkin@noemail.net>2013-09-06 22:27:55 +0000
committermistachkin <mistachkin@noemail.net>2013-09-06 22:27:55 +0000
commit9a5cbbc4a53b4ab409a56352cad15d0e86726a3d (patch)
treea5bf785629ded11011fb50ea6e5ea77c158006de /src/expr.c
parent0157e01cc81d0d39c2d997f67f1a0f29c129c9ee (diff)
parentd36e1041120280adfc9612d8f6e4ade318b3ffa0 (diff)
downloadsqlite-9a5cbbc4a53b4ab409a56352cad15d0e86726a3d.tar.gz
sqlite-9a5cbbc4a53b4ab409a56352cad15d0e86726a3d.zip
Merge updates from trunk.
FossilOrigin-Name: 8922be1a3e0269552e12b87fe1e5141c38a8d3f8
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/expr.c b/src/expr.c
index aa6f27543..6587ee1f7 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -2634,7 +2634,7 @@ int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){
** IFNULL() functions. This avoids unnecessary evalation of
** arguments past the first non-NULL argument.
*/
- if( pDef->flags & SQLITE_FUNC_COALESCE ){
+ if( pDef->funcFlags & SQLITE_FUNC_COALESCE ){
int endCoalesce = sqlite3VdbeMakeLabel(v);
assert( nFarg>=2 );
sqlite3ExprCode(pParse, pFarg->a[0].pExpr, target);
@@ -2658,7 +2658,7 @@ int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){
** or OPFLAG_TYPEOFARG respectively, to avoid unnecessary data
** loading.
*/
- if( (pDef->flags & (SQLITE_FUNC_LENGTH|SQLITE_FUNC_TYPEOF))!=0 ){
+ if( (pDef->funcFlags & (SQLITE_FUNC_LENGTH|SQLITE_FUNC_TYPEOF))!=0 ){
u8 exprOp;
assert( nFarg==1 );
assert( pFarg->a[0].pExpr!=0 );
@@ -2666,8 +2666,9 @@ int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){
if( exprOp==TK_COLUMN || exprOp==TK_AGG_COLUMN ){
assert( SQLITE_FUNC_LENGTH==OPFLAG_LENGTHARG );
assert( SQLITE_FUNC_TYPEOF==OPFLAG_TYPEOFARG );
- testcase( pDef->flags==SQLITE_FUNC_LENGTH );
- pFarg->a[0].pExpr->op2 = pDef->flags;
+ testcase( (pDef->funcFlags&~SQLITE_FUNC_ENCMASK)
+ ==SQLITE_FUNC_LENGTH );
+ pFarg->a[0].pExpr->op2 = pDef->funcFlags&~SQLITE_FUNC_ENCMASK;
}
}
@@ -2700,11 +2701,11 @@ int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){
if( i<32 && sqlite3ExprIsConstant(pFarg->a[i].pExpr) ){
constMask |= (1<<i);
}
- if( (pDef->flags & SQLITE_FUNC_NEEDCOLL)!=0 && !pColl ){
+ if( (pDef->funcFlags & SQLITE_FUNC_NEEDCOLL)!=0 && !pColl ){
pColl = sqlite3ExprCollSeq(pParse, pFarg->a[i].pExpr);
}
}
- if( pDef->flags & SQLITE_FUNC_NEEDCOLL ){
+ if( pDef->funcFlags & SQLITE_FUNC_NEEDCOLL ){
if( !pColl ) pColl = db->pDfltColl;
sqlite3VdbeAddOp4(v, OP_CollSeq, 0, 0, 0, (char *)pColl, P4_COLLSEQ);
}