More micro-optimizations

This commit is contained in:
Kovid Goyal 2013-07-22 13:49:21 +05:30
parent 98924814ad
commit ef50b1a823

View File

@ -94,10 +94,10 @@ class OneToOneTable(Table):
query = db.conn.execute('SELECT {0}, {1} FROM {2}'.format(idcol, query = db.conn.execute('SELECT {0}, {1} FROM {2}'.format(idcol,
self.metadata['column'], self.metadata['table'])) self.metadata['column'], self.metadata['table']))
if self.unserialize is None: if self.unserialize is None:
self.book_col_map = {row[0]:row[1] for row in query} self.book_col_map = dict(query)
else: else:
us = self.unserialize us = self.unserialize
self.book_col_map = {row[0]:us(row[1]) for row in query} self.book_col_map = {book_id:us(val) for book_id, val in query}
def remove_books(self, book_ids, db): def remove_books(self, book_ids, db):
clean = set() clean = set()
@ -117,11 +117,10 @@ class PathTable(OneToOneTable):
class SizeTable(OneToOneTable): class SizeTable(OneToOneTable):
def read(self, db): def read(self, db):
self.book_col_map = {} query = db.conn.execute(
for row in db.conn.execute(
'SELECT books.id, (SELECT MAX(uncompressed_size) FROM data ' 'SELECT books.id, (SELECT MAX(uncompressed_size) FROM data '
'WHERE data.book=books.id) FROM books'): 'WHERE data.book=books.id) FROM books')
self.book_col_map[row[0]] = row[1] self.book_col_map = dict(query)
def update_sizes(self, size_map): def update_sizes(self, size_map):
self.book_col_map.update(size_map) self.book_col_map.update(size_map)
@ -185,10 +184,10 @@ class ManyToOneTable(Table):
query = db.conn.execute('SELECT id, {0} FROM {1}'.format( query = db.conn.execute('SELECT id, {0} FROM {1}'.format(
self.metadata['column'], self.metadata['table'])) self.metadata['column'], self.metadata['table']))
if self.unserialize is None: if self.unserialize is None:
self.id_map = {row[0]:row[1] for row in query} self.id_map = dict(query)
else: else:
us = self.unserialize us = self.unserialize
self.id_map = {row[0]:us(row[1]) for row in query} self.id_map = {book_id:us(val) for book_id, val in query}
def read_maps(self, db): def read_maps(self, db):
for row in db.conn.execute( for row in db.conn.execute(