dont forget to commit the transaction in remove() and create()
[sfa.git] / sfa / util / table.py
index 5e9277b..0b78740 100644 (file)
@@ -84,7 +84,9 @@ class SfaTable(list):
         self.db.do(querystr)
         for index in indexes:
             self.db.do(index)
-
+        
+        sefl.db.commit()
+    
     def remove(self, record):
         query_str = "DELETE FROM %s WHERE record_id = %s" % \
                     (self.tablename, record['record_id']) 
@@ -92,10 +94,11 @@ class SfaTable(list):
         
         # if this is a site, remove all records where 'authority' == the 
         # site's hrn
-        if record['type'] == 'site':
+        if record['type'] == 'authority':
             sql = " DELETE FROM %s WHERE authority = %s" % \
                     (self.tablename, record['hrn'])
-            self.db.do(sql) 
+            self.db.do(sql)
+            self.db.commit() 
 
     def insert(self, record):
         db_fields = self.db_fields(record)
@@ -127,19 +130,10 @@ class SfaTable(list):
         self.db.commit()
 
     def quote_string(self, value):
-        return str(self.quote(value))
+        return str(self.db.quote(value))
 
     def quote(self, value):
-        """
-        Returns quoted version of the specified value.
-        """
-
-        # The pgdb._quote function is good enough for general SQL
-        # quoting, except for array types.
-        if isinstance(value, (list, tuple, set)):
-            return "ARRAY[%s]" % ", ".join(map, self.quote_string, value)
-        else:
-            return pgdb._quote(value)
+        return self.db.quote(value)
 
     def find(self, record_filter = None, columns=None):
         if not columns:
@@ -195,5 +189,5 @@ class SfaTable(list):
             except:
                 pass
     
-    def sfa_records_purge():
+    def sfa_records_purge(self):
         self.drop()