# HG changeset patch # User Aurelien Campeas # Date 1416851031 -3600 # Node ID 76e895a380ea21e8bc97ace5d8c8f3e011900031 # Parent 84738d495ffd9c3d74deff6bc8f4700cad5b3fe4# Parent be6517c6adf71088bc70e3640972b9fd9d738664 [merge] backport 3.17 fixes diff -r 84738d495ffd -r 76e895a380ea .hgtags --- a/.hgtags Wed Sep 24 17:35:59 2014 +0200 +++ b/.hgtags Mon Nov 24 18:43:51 2014 +0100 @@ -359,3 +359,6 @@ d915013567429b481cb2c367071e36451c07a226 cubicweb-version-3.18.6 d915013567429b481cb2c367071e36451c07a226 cubicweb-debian-version-3.18.6-1 d915013567429b481cb2c367071e36451c07a226 cubicweb-centos-version-3.18.6-1 +cda4b066933f216abe185786f5458176894bdaf0 cubicweb-version-3.17.18 +cda4b066933f216abe185786f5458176894bdaf0 cubicweb-debian-version-3.17.18-1 +cda4b066933f216abe185786f5458176894bdaf0 cubicweb-centos-version-3.17.18-1 diff -r 84738d495ffd -r 76e895a380ea __pkginfo__.py diff -r 84738d495ffd -r 76e895a380ea cubicweb.spec diff -r 84738d495ffd -r 76e895a380ea debian/changelog --- a/debian/changelog Wed Sep 24 17:35:59 2014 +0200 +++ b/debian/changelog Mon Nov 24 18:43:51 2014 +0100 @@ -40,6 +40,12 @@ -- Julien Cristau Fri, 10 Jan 2014 17:14:18 +0100 +cubicweb (3.17.18-1) unstable; urgency=low + + * new upstream release + + -- Aurelien Campeas Mon, 24 Nov 2014 17:41:24 +0100 + cubicweb (3.17.17-1) unstable; urgency=low * new upstream release diff -r 84738d495ffd -r 76e895a380ea server/sources/native.py --- a/server/sources/native.py Wed Sep 24 17:35:59 2014 +0200 +++ b/server/sources/native.py Mon Nov 24 18:43:51 2014 +0100 @@ -762,6 +762,9 @@ raise UniqueTogetherError(session, cstrname=mo.group(0)) # sqlite mo = re.search('columns (.*) are not unique', arg) + if mo is None: + # sqlite > 3.7 + mo = re.search('UNIQUE constraint failed: (.*)', arg) if mo is not None: # sqlite in use # we left chop the 'cw_' prefix of attribute names rtypes = [c.strip()[3:] @@ -1698,6 +1701,8 @@ Tables are saved in chunks in different files in order to prevent a too high memory consumption. """ + blocksize = 100 + def __init__(self, source): """ :param: source an instance of the system source @@ -1782,10 +1787,7 @@ sql = 'SELECT * FROM %s' % table columns, rows_iterator = self._get_cols_and_rows(sql) self.logger.info('number of rows: %d', rowcount) - if table.startswith('cw_'): # entities - blocksize = 2000 - else: # relations and metadata - blocksize = 10000 + blocksize = self.blocksize if rowcount > 0: for i, start in enumerate(xrange(0, rowcount, blocksize)): rows = list(itertools.islice(rows_iterator, blocksize))