1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-08 03:22:21 +03:00

Improve coverage of expr.c and btree.c slightly. (CVS 2992)

FossilOrigin-Name: cc2e8e87cfd474b4dc6833ee0c38e2cd2dd3a494
This commit is contained in:
danielk1977
2006-01-23 05:50:58 +00:00
parent 6dc1d95dd8
commit 4b202ae2a5
5 changed files with 87 additions and 23 deletions

View File

@@ -12,7 +12,7 @@
** This file contains routines used for analyzing expressions and
** for generating VDBE code that evaluates expressions in SQLite.
**
** $Id: expr.c,v 1.250 2006/01/18 16:51:35 danielk1977 Exp $
** $Id: expr.c,v 1.251 2006/01/23 05:50:58 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@@ -280,6 +280,7 @@ void sqlite3ExprSpan(Expr *pExpr, Token *pLeft, Token *pRight){
*/
Expr *sqlite3ExprFunction(ExprList *pList, Token *pToken){
Expr *pNew;
assert( pToken );
pNew = sqliteMalloc( sizeof(Expr) );
if( pNew==0 ){
sqlite3ExprListDelete(pList); /* Avoid leaking memory when malloc fails */
@@ -287,12 +288,8 @@ Expr *sqlite3ExprFunction(ExprList *pList, Token *pToken){
}
pNew->op = TK_FUNCTION;
pNew->pList = pList;
if( pToken ){
assert( pToken->dyn==0 );
pNew->token = *pToken;
}else{
pNew->token.z = 0;
}
assert( pToken->dyn==0 );
pNew->token = *pToken;
pNew->span = pNew->token;
return pNew;
}
@@ -2085,10 +2082,8 @@ void sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){
*/
int sqlite3ExprCompare(Expr *pA, Expr *pB){
int i;
if( pA==0 ){
return pB==0;
}else if( pB==0 ){
return 0;
if( pA==0||pB==0 ){
return pB==pA;
}
if( pA->op!=pB->op ) return 0;
if( (pA->flags & EP_Distinct)!=(pB->flags & EP_Distinct) ) return 0;