# HG changeset patch # User Ralph Meijer # Date 1114363303 0 # Node ID d3689da18ed2f74d26ecb6ec70f48bed8e5e6382 # Parent ffc3c706b0fb2b02723f9531d263e1dd374f4972 Don't use encode('utf-8') on serialized XML. Return unicode strings for get_items() Rename get_items_by_ids() to get_items_by_id() as in the interface. Make purge() work. Don't return item ids when removing items. diff -r ffc3c706b0fb -r d3689da18ed2 idavoll/pgsql_storage.py --- a/idavoll/pgsql_storage.py Sun Apr 24 17:19:27 2005 +0000 +++ b/idavoll/pgsql_storage.py Sun Apr 24 17:21:43 2005 +0000 @@ -298,7 +298,7 @@ WHERE nodes.id = items.node_id AND nodes.node = %s and items.item=%s""", (publisher.full().encode('utf8'), - data.encode('utf8'), + data, self.id.encode('utf8'), item["id"].encode('utf8'))) if cursor.rowcount == 1: @@ -308,7 +308,7 @@ SELECT id, %s, %s, %s FROM nodes WHERE node=%s""", (item["id"].encode('utf8'), publisher.full().encode('utf8'), - data.encode('utf8'), + data, self.id.encode('utf8'))) def remove_items(self, item_ids): @@ -326,10 +326,8 @@ (self.id.encode('utf-8'), item_id.encode('utf-8'))) - if cursor.rowcount: - deleted.append(item_id) - - return deleted + if not cursor.rowcount: + raise storage.ItemNotFound def get_items(self, max_items=None): return self._dbpool.runInteraction(self._get_items, max_items) @@ -347,12 +345,12 @@ cursor.execute(query, (self.id.encode('utf8'))) result = cursor.fetchall() - return [r[0] for r in result] + return [unicode(r[0], 'utf8') for r in result] - def get_items_by_ids(self, item_ids): - return self._dbpool.runInteraction(self._get_items_by_ids, item_ids) + def get_items_by_id(self, item_ids): + return self._dbpool.runInteraction(self._get_items_by_id, item_ids) - def _get_items_by_ids(self, cursor, item_ids): + def _get_items_by_id(self, cursor, item_ids): self._check_node_exists(cursor) items = [] for item_id in item_ids: @@ -363,13 +361,13 @@ item_id.encode('utf8'))) result = cursor.fetchone() if result: - items.append(result[0]) + items.append(unicode(result[0], 'utf8')) return items def purge(self): return self._dbpool.runInteraction(self._purge) - def _purge_node(self, cursor): + def _purge(self, cursor): self._check_node_exists(cursor) cursor.execute("""DELETE FROM items WHERE