aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/expr.c7
-rw-r--r--src/wherecode.c1
2 files changed, 3 insertions, 5 deletions
diff --git a/src/expr.c b/src/expr.c
index e87ff7050..0332dc3e5 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -2203,10 +2203,10 @@ int sqlite3ExprNeedsNoAffinityChange(const Expr *p, char aff){
if( op==TK_REGISTER ) op = p->op2;
switch( op ){
case TK_INTEGER: {
- return aff==SQLITE_AFF_INTEGER || aff==SQLITE_AFF_NUMERIC;
+ return aff>=SQLITE_AFF_NUMERIC;
}
case TK_FLOAT: {
- return aff==SQLITE_AFF_REAL || aff==SQLITE_AFF_NUMERIC;
+ return aff>=SQLITE_AFF_NUMERIC;
}
case TK_STRING: {
return !unaryMinus && aff==SQLITE_AFF_TEXT;
@@ -2216,8 +2216,7 @@ int sqlite3ExprNeedsNoAffinityChange(const Expr *p, char aff){
}
case TK_COLUMN: {
assert( p->iTable>=0 ); /* p cannot be part of a CHECK constraint */
- return p->iColumn<0
- && (aff==SQLITE_AFF_INTEGER || aff==SQLITE_AFF_NUMERIC);
+ return aff>=SQLITE_AFF_NUMERIC && p->iColumn<0;
}
default: {
return 0;
diff --git a/src/wherecode.c b/src/wherecode.c
index 22ed905f4..2fbcba17e 100644
--- a/src/wherecode.c
+++ b/src/wherecode.c
@@ -755,7 +755,6 @@ static int codeAllEqualityTerms(
if( sqlite3ExprNeedsNoAffinityChange(pRight, zAff[j]) ){
zAff[j] = SQLITE_AFF_BLOB;
}
- if( zAff[j]==SQLITE_AFF_REAL ) zAff[j] = SQLITE_AFF_NUMERIC;
}
}
}