return False
+
def create(self):
querystr = "CREATE TABLE " + self.tablename + " ( \
db_fields = self.db_fields(record)
keys = db_fields.keys()
values = [self.db.param(key, value) for (key, value) in db_fields.items()]
- pairs = []
- for (key, value) in db_fields.items():
- pairs.append(key + " = " + value)
- update = ", ".join(pairs)
-
+ columns = ["%s = %s" % (key, value) for (key, value) in zip(keys, values)]
query_str = "UPDATE %s SET %s WHERE record_id = %s" % \
- (self.tablename, update, record['record_id'])
+ (self.tablename, ", ".join(columns), record['record_id'])
self.db.do(query_str, db_fields)
self.db.commit()
+ def quote_string(self, value):
+ return str(self.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, value)
+ return "ARRAY[%s]" % ", ".join(map, self.quote_string, value)
else:
return pgdb._quote(value)
- def find(self, record_filter = None):
- sql = "SELECT * FROM %s WHERE True " % self.tablename
+ def find(self, record_filter = None, columns=None):
+ if not columns:
+ columns = "*"
+ else:
+ columns = ",".join(columns)
+ sql = "SELECT %s FROM %s WHERE True " % (columns, self.tablename)
if isinstance(record_filter, (list, tuple, set)):
ints = filter(lambda x: isinstance(x, (int, long)), record_filter)
results = [results]
return results
- def findObjects(self, record_filter = None):
+ def findObjects(self, record_filter = None, columns=None):
- results = self.find(record_filter)
+ results = self.find(record_filter, columns)
result_rec_list = []
for result in results:
if result['type'] in ['authority']: