36 import itertools |
36 import itertools |
37 import zipfile |
37 import zipfile |
38 import logging |
38 import logging |
39 import sys |
39 import sys |
40 |
40 |
41 from six.moves import cPickle as pickle |
41 from six.moves import range, cPickle as pickle |
42 |
42 |
43 from logilab.common.decorators import cached, clear_cache |
43 from logilab.common.decorators import cached, clear_cache |
44 from logilab.common.configuration import Method |
44 from logilab.common.configuration import Method |
45 from logilab.common.shellutils import getlogin |
45 from logilab.common.shellutils import getlogin |
46 from logilab.database import get_db_helper, sqlgen |
46 from logilab.database import get_db_helper, sqlgen |
1685 sql = 'SELECT * FROM %s' % table |
1685 sql = 'SELECT * FROM %s' % table |
1686 columns, rows_iterator = self._get_cols_and_rows(sql) |
1686 columns, rows_iterator = self._get_cols_and_rows(sql) |
1687 self.logger.info('number of rows: %d', rowcount) |
1687 self.logger.info('number of rows: %d', rowcount) |
1688 blocksize = self.blocksize |
1688 blocksize = self.blocksize |
1689 if rowcount > 0: |
1689 if rowcount > 0: |
1690 for i, start in enumerate(xrange(0, rowcount, blocksize)): |
1690 for i, start in enumerate(range(0, rowcount, blocksize)): |
1691 rows = list(itertools.islice(rows_iterator, blocksize)) |
1691 rows = list(itertools.islice(rows_iterator, blocksize)) |
1692 serialized = self._serialize(table, columns, rows) |
1692 serialized = self._serialize(table, columns, rows) |
1693 archive.writestr('tables/%s.%04d' % (table, i), serialized) |
1693 archive.writestr('tables/%s.%04d' % (table, i), serialized) |
1694 self.logger.debug('wrote rows %d to %d (out of %d) to %s.%04d', |
1694 self.logger.debug('wrote rows %d to %d (out of %d) to %s.%04d', |
1695 start, start+len(rows)-1, |
1695 start, start+len(rows)-1, |