]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1337 d1b88da0-ebda-0310...
authorwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 24 Jan 2008 02:18:23 +0000 (02:18 +0000)
committerwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 24 Jan 2008 02:18:23 +0000 (02:18 +0000)
SOPE/sope-patchset-r1583.diff

index 1539aa017c81cdc5ef036da600047efa7def1b47..2ac86aa1b67c88e5cfee6005ac413785efb85ab4 100644 (file)
@@ -1214,7 +1214,7 @@ Index: sope-gdl1/Oracle8/OracleAdaptorChannel.m
  //
  //
  //
-@@ -41,8 +42,16 @@
+@@ -41,10 +42,19 @@
  
  @implementation OracleAdaptorChannel (Private)
  
@@ -1231,8 +1231,43 @@ Index: sope-gdl1/Oracle8/OracleAdaptorChannel.m
 +{
    column_info *info;
    int c;
++  sword result;
+   [_resultSetProperties removeAllObjects];
+@@ -58,11 +68,29 @@
+       // so we just free the value instead.
+       if (info->value)
+       {
+-        if (OCIDescriptorFree((dvoid *)info->value, (ub4)OCI_DTYPE_LOB) != OCI_SUCCESS)
++        if (info->type == SQLT_CLOB
++            || info->type == SQLT_BLOB
++            || info->type == SQLT_BFILEE
++            || info->type == SQLT_CFILEE)
++          {
++            result = OCIDescriptorFree((dvoid *)info->value, (ub4) OCI_DTYPE_LOB);
++            if (result != OCI_SUCCESS)
++              {
++                NSLog (@"value was not a LOB descriptor");
++                abort();
++              }
++          }
++        else
+           free(info->value);
+         info->value = NULL;
+       }
+-       free(info);
++      else
++      {
++        NSLog (@"trying to free an already freed value!");
++        abort();
++      }
++      free(info);
++
+       [_row_buffer removeObjectAtIndex: c];
+     }
  
-@@ -231,6 +240,9 @@
+@@ -231,6 +259,9 @@
  
    [self _cleanup];
  
@@ -1242,6 +1277,17 @@ Index: sope-gdl1/Oracle8/OracleAdaptorChannel.m
    if (!theExpression || ![theExpression length])
      {
        [NSException raise: @"OracleInvalidExpressionException"
+@@ -302,7 +333,9 @@
+       // We read the maximum width of a column
+       info->max_width = 0;
+       status = OCIAttrGet((dvoid*)param, (ub4)OCI_DTYPE_PARAM, (dvoid*)&(info->max_width), (ub4 *)0, (ub4)OCI_ATTR_DATA_SIZE, (OCIError *)_oci_err);
+-      
++
++      if (debugOn)
++      NSLog(@"name: %s, type: %d", cname, info->type);
+       attribute = [EOAttribute attributeWithOracleType: info->type  name: cname  length: clen  width: info->max_width];
+       [_resultSetProperties addObject: attribute];
 Index: sope-core/NGExtensions/FdExt.subproj/NSString+Encoding.m
 ===================================================================
 --- sope-core/NGExtensions/FdExt.subproj/NSString+Encoding.m   (rĂ©vision 1583)