Monotone-Parent: 6e855c49b7521b655243e2102c805434a3cf5d96

Monotone-Revision: b6bdeca3435d0f186f21c6ab3f3905445e6a12b4

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2010-12-10T22:24:36
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2010-12-10 22:24:36 +00:00
parent 0251d4ed6e
commit b4807dbb8e
2 changed files with 49 additions and 53 deletions

View File

@ -2,6 +2,7 @@
* EOQualifier+GCS.m (_appendKeyValueQualifier:toString:): fixed
evaluation to handle the "EOQualifierOperatorNotEqual" operator.
Fixed code to consider "nil" values as another case for "NULL".
2010-08-19 Wolfgang Sourdeau <wsourdeau@inverse.ca>

View File

@ -75,65 +75,60 @@
qKey = [_q key];
isCI = NO;
if ((val = [_q value])) {
SEL op = [_q selector];
SEL op = [_q selector];
if ([val isNotNull]) {
if (sel_eq(op, EOQualifierOperatorEqual))
qOperator = @"=";
else if (sel_eq(op, EOQualifierOperatorNotEqual))
qOperator = @"!=";
else if (sel_eq(op, EOQualifierOperatorLessThan))
qOperator = @"<";
else if (sel_eq(op, EOQualifierOperatorGreaterThan))
qOperator = @">";
else if (sel_eq(op, EOQualifierOperatorLessThanOrEqualTo))
qOperator = @"<=";
else if (sel_eq(op, EOQualifierOperatorGreaterThanOrEqualTo))
qOperator = @">=";
else if (sel_eq(op, EOQualifierOperatorLike))
qOperator = @"LIKE";
else if (sel_eq(op, EOQualifierOperatorCaseInsensitiveLike)) {
isCI = YES;
qOperator = @"LIKE";
}
else {
[self errorWithFormat:@"%s: unsupported operation for null: %@",
__PRETTY_FUNCTION__, NSStringFromSelector(op)];
qOperator = @"=";
}
if ([val isKindOfClass:[NSNumber class]])
qValue = [val stringValue];
else if ([val isKindOfClass:[NSString class]]) {
qValue = [NSString stringWithFormat: @"'%@'", val];
}
else {
qValue = @"NULL";
[self errorWithFormat:@"%s: unsupported value class: %@",
__PRETTY_FUNCTION__, NSStringFromClass([val class])];
}
val = [_q value];
if (val && [val isNotNull]) {
if (sel_eq(op, EOQualifierOperatorEqual))
qOperator = @"=";
else if (sel_eq(op, EOQualifierOperatorNotEqual))
qOperator = @"!=";
else if (sel_eq(op, EOQualifierOperatorLessThan))
qOperator = @"<";
else if (sel_eq(op, EOQualifierOperatorGreaterThan))
qOperator = @">";
else if (sel_eq(op, EOQualifierOperatorLessThanOrEqualTo))
qOperator = @"<=";
else if (sel_eq(op, EOQualifierOperatorGreaterThanOrEqualTo))
qOperator = @">=";
else if (sel_eq(op, EOQualifierOperatorLike))
qOperator = @"LIKE";
else if (sel_eq(op, EOQualifierOperatorCaseInsensitiveLike)) {
isCI = YES;
qOperator = @"LIKE";
}
else {
if (sel_eq(op, EOQualifierOperatorEqual)) {
qOperator = @"IS";
qValue = @"NULL";
}
else if (sel_eq(op, EOQualifierOperatorNotEqual)) {
qOperator = @"IS NOT";
qValue = @"NULL";
}
else {
qOperator = @"IS";
qValue = @"NULL";
[self errorWithFormat:@"%s: invalid operation for null: %@",
__PRETTY_FUNCTION__, NSStringFromSelector(op)];
}
[self errorWithFormat:@"%s: unsupported operation for null: %@",
__PRETTY_FUNCTION__, NSStringFromSelector(op)];
qOperator = @"=";
}
if ([val isKindOfClass:[NSNumber class]])
qValue = [val stringValue];
else if ([val isKindOfClass:[NSString class]]) {
qValue = [NSString stringWithFormat: @"'%@'", val];
}
else {
qValue = @"NULL";
[self errorWithFormat:@"%s: unsupported value class: %@",
__PRETTY_FUNCTION__, NSStringFromClass([val class])];
}
}
else {
qOperator = @"IS";
qValue = @"NULL";
if (sel_eq(op, EOQualifierOperatorEqual)) {
qOperator = @"IS";
qValue = @"NULL";
}
else if (sel_eq(op, EOQualifierOperatorNotEqual)) {
qOperator = @"IS NOT";
qValue = @"NULL";
}
else {
qOperator = @"IS";
qValue = @"NULL";
[self errorWithFormat:@"%s: invalid operation for null: %@",
__PRETTY_FUNCTION__, NSStringFromSelector(op)];
}
}
if (isCI)