fix bug in update method
[sfa.git] / sfa / util / genitable.py
index f373ecb..4ad582b 100644 (file)
@@ -74,7 +74,7 @@ class GeniTable:
     def insert(self, record):
         dont_insert = ['date_created', 'last_updated']
         fields = [field for field in  record.fields.keys() if field not in dont_insert]  
-        fieldnames = ["key"] + fields
+        fieldnames = ["key", "pointer"] + fields
         fieldvals = record.get_field_value_strings(fieldnames)
         query_str = "INSERT INTO " + self.tablename + \
                        "(" + ",".join(fieldnames) + ") " + \
@@ -83,11 +83,13 @@ class GeniTable:
         self.cnx.query(query_str)
 
     def update(self, record):
-        names = record.get_field_names()
+        dont_update = ['date_created', 'last_updated']
+        fields = [field for field in  record.fields.keys() if field not in dont_update]  
+        fieldvals = record.get_field_value_strings(fields)
         pairs = []
-        for name in names:
-           val = record.get_field_value_string(name)
-           pairs.append(name + " = " + val)
+        for field in fields:
+            val = record.get_field_value_string(field)
+            pairs.append(field + " = " + val)
         update = ", ".join(pairs)
 
         query_str = "UPDATE " + self.tablename+ " SET " + update + " WHERE key = '" + record.get_key() + "'"
@@ -137,6 +139,15 @@ class GeniTable:
             result_rec_list.append(GeniRecord(dict=dict).as_dict())
         return result_rec_list
 
+    def drop(self):
+        try:
+            self.cnx.query('DROP TABLE IF EXISTS ' + self.tablename)
+        except ProgrammingError:
+            try:
+                self.cnx.query('DROP TABLE ' + self.tablename)
+            except ProgrammingError:
+                pass
+    
     @staticmethod
     def geni_records_purge(cninfo):