]> err.no Git - sope/commitdiff
support OR and icase-like qualifiers
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Thu, 31 Aug 2006 00:31:14 +0000 (00:31 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Thu, 31 Aug 2006 00:31:14 +0000 (00:31 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@1354 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-gdl1/GDLContentStore/ChangeLog
sope-gdl1/GDLContentStore/EOQualifier+GCS.m
sope-gdl1/GDLContentStore/Version

index 29bf3ed5403a2e4cad24171ca5f91b3e676d5018..b7826499c5e733a7aa7d7a75c854bed8dd93b66d 100644 (file)
@@ -1,3 +1,8 @@
+2006-08-31  Wolfgang Sourdeau  <WSourdeau@Inverse.CA>
+
+       * EOQualifier+GCS.m: added support for OR qualifiers and for case
+         insensitive-like qualifiers on PostgreSQL (v4.5.37)
+
 2006-07-04  Helge Hess  <helge.hess@opengroupware.org>
 
        * use %p for pointer formats, fixed gcc 4.1 warnings (v4.5.36)
index 5a5fd7d2ea4ca59d61b736063fde80a72a61bb55..e7e62248567b58c4a284bb44ae58be0a4de76f94 100644 (file)
     if (count > 1) [_ms appendString:@")"];
   }
 }
+- (void)_appendOrQualifier:(EOAndQualifier *)_q 
+  toString:(NSMutableString *)_ms
+{
+  // TODO: move to EOQualifier category
+  NSArray *qs;
+  unsigned i, count;
+  
+  qs = [_q qualifiers];
+  if ((count = [qs count]) == 0)
+    return;
+  
+  for (i = 0; i < count; i++) {
+    if (i != 0) [_ms appendString:@" OR "];
+    if (count > 1) [_ms appendString:@"("];
+    [[qs objectAtIndex:i] _gcsAppendToString:_ms];
+    if (count > 1) [_ms appendString:@")"];
+  }
+}
 - (void)_appendKeyValueQualifier:(EOKeyValueQualifier *)_q 
   toString:(NSMutableString *)_ms
 {
        [_ms appendString:@" >= "];
       else if (sel_eq(op, EOQualifierOperatorLike))
        [_ms appendString:@" LIKE "];
+      else if (sel_eq(op, EOQualifierOperatorCaseInsensitiveLike)) {
+       // TODO: this is PostgreSQL specific, use UPPER?
+       [_ms appendString:@" ILIKE "];
+      }
       else {
        [self logWithFormat:@"ERROR(%s): unsupported operation for null: %@",
              __PRETTY_FUNCTION__, NSStringFromSelector(op)];
   
   if ([_q isKindOfClass:[EOAndQualifier class]])
     [self _appendAndQualifier:(id)_q toString:_ms];
+  else if ([_q isKindOfClass:[EOOrQualifier class]])
+    [self _appendOrQualifier:(id)_q toString:_ms];
   else if ([_q isKindOfClass:[EOKeyValueQualifier class]])
     [self _appendKeyValueQualifier:(id)_q toString:_ms];
   else
index f9f8f165f27c7568079cc6e78a23fe25f3d140e6..cc3cbaec112e79044374e9100c85f26120c078a3 100644 (file)
@@ -2,7 +2,7 @@
 
 MAJOR_VERSION:=4
 MINOR_VERSION:=5
-SUBMINOR_VERSION:=36
+SUBMINOR_VERSION:=37
 
 # v4.5.29 requires libNGExtensions v4.5.161
 # v4.5.26 does not require libNGiCal anymore