]> err.no Git - sope/commitdiff
improved tx handling code
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Thu, 27 Sep 2007 21:23:27 +0000 (21:23 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Thu, 27 Sep 2007 21:23:27 +0000 (21:23 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@1540 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-gdl1/PostgreSQL/ChangeLog
sope-gdl1/PostgreSQL/PostgreSQL72Context.m
sope-gdl1/PostgreSQL/Version

index 85d8c7bf01278c869c97ec8aeaec73eef830fc65..d762e00e449eb501dc1d56faa918a808a506c9ab 100644 (file)
@@ -1,3 +1,8 @@
+2007-09-27  Helge Hess  <helge.hess@opengroupware.org>
+
+       * PostgreSQL72Context.m: changed to use -evaluateExpressionX: for
+         transaction queries, log error exceptions (v4.7.51)
+
 2007-06-09  Helge Hess  <helge.hess@opengroupware.org>
 
        * added NSNumber+ExprValue.m which returns 0/1 for bool values on
index 45cc74da6fedb29bcfe0e095681ce76503dbcc4c..c1060f3838966b82c7e9995f66caeb88b2eff3aa 100644 (file)
@@ -2,6 +2,7 @@
    PostgreSQL72Context.m
 
    Copyright (C) 1999 MDlink online service center GmbH and Helge Hess
+   Copyright (C) 2007 Helge Hess
 
    Author: Helge Hess (helge@mdlink.de)
 
 }
 
 - (BOOL)primaryBeginTransaction {
-  BOOL result;
-
-  result = [[[channels lastObject]
-                       nonretainedObjectValue]
-                       evaluateExpression:@"BEGIN TRANSACTION"];
-
-  return result;
+  NSException *error;
+
+  error = [[[channels lastObject]
+                      nonretainedObjectValue]
+                      evaluateExpressionX:@"BEGIN TRANSACTION"];
+  if (error == nil)
+    return YES;
+  
+  NSLog(@"%s: could not begin transaction: %@", __PRETTY_FUNCTION__, error);
+  return NO;
 }
 
 - (BOOL)primaryCommitTransaction {
-  BOOL result;
+  NSException *error;
 
-  result = [[[channels lastObject]
-                       nonretainedObjectValue]
-                       evaluateExpression:@"COMMIT TRANSACTION"];
+  error = [[[channels lastObject]
+                      nonretainedObjectValue]
+                      evaluateExpressionX:@"COMMIT TRANSACTION"];
 
-  return result;
+  if (error == nil)
+    return YES;
+  
+  NSLog(@"%s: could not commit transaction: %@", __PRETTY_FUNCTION__, error);
+  return NO;
 }
 
 - (BOOL)primaryRollbackTransaction {
-  BOOL result;
+  NSException *error;
+
+  error = [[[channels lastObject]
+                      nonretainedObjectValue]
+                      evaluateExpressionX:@"ROLLBACK TRANSACTION"];
 
-  result = [[[channels lastObject]
-                       nonretainedObjectValue]
-                       evaluateExpression:@"ROLLBACK TRANSACTION"];
-  return result;
+  if (error == nil)
+    return YES;
+  
+  NSLog(@"%s: could not rollback transaction: %@", __PRETTY_FUNCTION__, error);
+  return NO;
 }
 
 - (BOOL)canNestTransactions {
   return NO;
 }
 
-// NSCopying methods
+/* NSCopying methods */
 
 - (id)copyWithZone:(NSZone *)zone {
+  // called when the object is used in some datastructures?
   return [self retain];
 }
 
index 430b6e6f0fcabc58e1ad11252c5c85a70298c7ba..13f24be801d650e36f7f95384735325dbe7be579 100644 (file)
@@ -1,5 +1,5 @@
 # version file
 
-SUBMINOR_VERSION:=50
+SUBMINOR_VERSION:=51
 
 # v4.5.41 requires libGDLAccess v4.5.50