[merge] backport 3.18 fixes
authorDavid Douard <david.douard@logilab.fr>
Wed, 26 Nov 2014 17:58:23 +0100
changeset 10061 ecbfec2da8a2
parent 10060 08dc10ef9ab1 (current diff)
parent 10057 68a95d4fb77f (diff)
child 10062 c5637b5337e8
[merge] backport 3.18 fixes
.hgtags
__pkginfo__.py
cubicweb.spec
debian/changelog
misc/migration/3.18.0_Any.py
server/schemaserial.py
server/sources/native.py
--- a/.hgtags	Fri Sep 19 13:08:26 2014 +0200
+++ b/.hgtags	Wed Nov 26 17:58:23 2014 +0100
@@ -276,8 +276,8 @@
 ee860c51f56bd65c4f6ea363462c02700d1dab5a cubicweb-debian-version-3.16.3-1
 ee860c51f56bd65c4f6ea363462c02700d1dab5a cubicweb-centos-version-3.16.3-1
 041804bc48e91e440a5b573ceb0df5bf22863b80 cubicweb-version-3.16.4
+041804bc48e91e440a5b573ceb0df5bf22863b80 cubicweb-centos-version-3.16.4-1
 041804bc48e91e440a5b573ceb0df5bf22863b80 cubicweb-debian-version-3.16.4-1
-041804bc48e91e440a5b573ceb0df5bf22863b80 cubicweb-centos-version-3.16.4-1
 810a05fba1a46ab893b6cadac109097a047f8355 cubicweb-version-3.16.5
 810a05fba1a46ab893b6cadac109097a047f8355 cubicweb-debiann-version-3.16.5-1
 810a05fba1a46ab893b6cadac109097a047f8355 cubicweb-centos-version-3.16.5-1
@@ -297,38 +297,38 @@
 32b4d5314fd90fe050c931886190f9a372686148 cubicweb-debian-version-3.17.3-1
 32b4d5314fd90fe050c931886190f9a372686148 cubicweb-centos-version-3.17.3-1
 c7ba8e5d2e45e3d1289c1403df40d7dcb5e62acb cubicweb-version-3.17.4
+c7ba8e5d2e45e3d1289c1403df40d7dcb5e62acb cubicweb-centos-version-3.17.4-1
 c7ba8e5d2e45e3d1289c1403df40d7dcb5e62acb cubicweb-debian-version-3.17.4-1
-c7ba8e5d2e45e3d1289c1403df40d7dcb5e62acb cubicweb-centos-version-3.17.4-1
+15dd5b37998b8ef5e8fab1ea0491e6bd8e9f3355 cubicweb-version-3.17.5
 15dd5b37998b8ef5e8fab1ea0491e6bd8e9f3355 cubicweb-centos-version-3.17.5-1
-15dd5b37998b8ef5e8fab1ea0491e6bd8e9f3355 cubicweb-version-3.17.5
 15dd5b37998b8ef5e8fab1ea0491e6bd8e9f3355 cubicweb-debian-version-3.17.5-1
+5b9fedf67a2912a80fe315a477df9e3ab104c734 cubicweb-version-3.17.6
 5b9fedf67a2912a80fe315a477df9e3ab104c734 cubicweb-centos-version-3.17.6-1
-5b9fedf67a2912a80fe315a477df9e3ab104c734 cubicweb-version-3.17.6
 5b9fedf67a2912a80fe315a477df9e3ab104c734 cubicweb-debian-version-3.17.6-1
+483181543899a762d068cfdc3ae751b54adc3f14 cubicweb-version-3.17.7
 483181543899a762d068cfdc3ae751b54adc3f14 cubicweb-centos-version-3.17.7-1
-483181543899a762d068cfdc3ae751b54adc3f14 cubicweb-version-3.17.7
 483181543899a762d068cfdc3ae751b54adc3f14 cubicweb-debian-version-3.17.7-1
-909eb8b584c437b3d2580beff1325c3d5b5dcfb5 cubicweb-centos-version-3.17.8-1
 909eb8b584c437b3d2580beff1325c3d5b5dcfb5 cubicweb-version-3.17.8
 909eb8b584c437b3d2580beff1325c3d5b5dcfb5 cubicweb-debian-version-3.17.8-1
+909eb8b584c437b3d2580beff1325c3d5b5dcfb5 cubicweb-centos-version-3.17.8-1
 5668d210e49c910180ff27712b6ae9ce8286e06c cubicweb-version-3.17.9
 5668d210e49c910180ff27712b6ae9ce8286e06c cubicweb-debian-version-3.17.9-1
-fe0e1863a13772836f40f743cc6fe4865f288ed3 cubicweb-centos-version-3.17.10-1
 fe0e1863a13772836f40f743cc6fe4865f288ed3 cubicweb-version-3.17.10
 fe0e1863a13772836f40f743cc6fe4865f288ed3 cubicweb-debian-version-3.17.10-1
+fe0e1863a13772836f40f743cc6fe4865f288ed3 cubicweb-centos-version-3.17.10-1
+7f67db7c848ec20152daf489d9e11f0fc8402e9b cubicweb-version-3.17.11
 7f67db7c848ec20152daf489d9e11f0fc8402e9b cubicweb-centos-version-3.17.11-1
-7f67db7c848ec20152daf489d9e11f0fc8402e9b cubicweb-version-3.17.11
 7f67db7c848ec20152daf489d9e11f0fc8402e9b cubicweb-debian-version-3.17.11-1
 b02e2912cad5d80395e488c55b548495e8320198 cubicweb-debian-version-3.17.11-2
 838d58a30f7efc6a8f83ac27ae8de7d79b84b2bb cubicweb-version-3.17.12
+838d58a30f7efc6a8f83ac27ae8de7d79b84b2bb cubicweb-centos-version-3.17.12-1
 838d58a30f7efc6a8f83ac27ae8de7d79b84b2bb cubicweb-debian-version-3.17.12-1
-838d58a30f7efc6a8f83ac27ae8de7d79b84b2bb cubicweb-centos-version-3.17.12-1
 09b4ebb9b0f179009491410c07cd013a60258fc6 cubicweb-version-3.17.13
+09b4ebb9b0f179009491410c07cd013a60258fc6 cubicweb-centos-version-3.17.13-1
 09b4ebb9b0f179009491410c07cd013a60258fc6 cubicweb-debian-version-3.17.13-1
-09b4ebb9b0f179009491410c07cd013a60258fc6 cubicweb-centos-version-3.17.13-1
-fa00fc251d57f61e619d9c905502745fae21c58c cubicweb-centos-version-3.17.14-1
 fa00fc251d57f61e619d9c905502745fae21c58c cubicweb-version-3.17.14
 fa00fc251d57f61e619d9c905502745fae21c58c cubicweb-debian-version-3.17.14-1
+fa00fc251d57f61e619d9c905502745fae21c58c cubicweb-centos-version-3.17.14-1
 ee413076752b3e606801ef55e48f7e7ccd1f7238 cubicweb-version-3.17.15
 ee413076752b3e606801ef55e48f7e7ccd1f7238 cubicweb-debian-version-3.17.15-1
 ee413076752b3e606801ef55e48f7e7ccd1f7238 cubicweb-centos-version-3.17.15-1
@@ -338,15 +338,18 @@
 57e9d1c70512d0f4e2c33d33db436a8274e10c1a cubicweb-version-3.17.17
 57e9d1c70512d0f4e2c33d33db436a8274e10c1a cubicweb-debian-version-3.17.17-1
 57e9d1c70512d0f4e2c33d33db436a8274e10c1a cubicweb-centos-version-3.17.17-1
+cda4b066933f216abe185786f5458176894bdaf0 cubicweb-version-3.17.18
+cda4b066933f216abe185786f5458176894bdaf0 cubicweb-centos-version-3.17.18-1
+cda4b066933f216abe185786f5458176894bdaf0 cubicweb-debian-version-3.17.18-1
 db37bf35a1474843ded0a537f9cb4838f4a78cda cubicweb-version-3.18.0
 db37bf35a1474843ded0a537f9cb4838f4a78cda cubicweb-debian-version-3.18.0-1
 db37bf35a1474843ded0a537f9cb4838f4a78cda cubicweb-centos-version-3.18.0-1
 60322cb8636c0402cdac025d3297626c41583023 cubicweb-version-3.18.1
+60322cb8636c0402cdac025d3297626c41583023 cubicweb-centos-version-3.18.1-1
 60322cb8636c0402cdac025d3297626c41583023 cubicweb-debian-version-3.18.1-1
-60322cb8636c0402cdac025d3297626c41583023 cubicweb-centos-version-3.18.1-1
 6880674c1a2669e3635abd688755116dda72e65e cubicweb-version-3.18.2
+6880674c1a2669e3635abd688755116dda72e65e cubicweb-centos-version-3.18.2-1
 6880674c1a2669e3635abd688755116dda72e65e cubicweb-debian-version-3.18.2-1
-6880674c1a2669e3635abd688755116dda72e65e cubicweb-centos-version-3.18.2-1
 afd21fea201a745051357b7aa6be3c7da1ae5bd2 cubicweb-version-3.18.3
 afd21fea201a745051357b7aa6be3c7da1ae5bd2 cubicweb-debian-version-3.18.3-1
 afd21fea201a745051357b7aa6be3c7da1ae5bd2 cubicweb-centos-version-3.18.3-1
@@ -354,11 +357,14 @@
 0176da9bc75293e200de4f7b934c5d4c7c805199 cubicweb-debian-version-3.18.4-1
 0176da9bc75293e200de4f7b934c5d4c7c805199 cubicweb-centos-version-3.18.4-1
 5071b69b6b0b0de937bb231404cbf652a103dbe0 cubicweb-version-3.18.5
+5071b69b6b0b0de937bb231404cbf652a103dbe0 cubicweb-centos-version-3.18.5-1
 5071b69b6b0b0de937bb231404cbf652a103dbe0 cubicweb-debian-version-3.18.5-1
-5071b69b6b0b0de937bb231404cbf652a103dbe0 cubicweb-centos-version-3.18.5-1
 d915013567429b481cb2c367071e36451c07a226 cubicweb-version-3.18.6
+d915013567429b481cb2c367071e36451c07a226 cubicweb-centos-version-3.18.6-1
 d915013567429b481cb2c367071e36451c07a226 cubicweb-debian-version-3.18.6-1
-d915013567429b481cb2c367071e36451c07a226 cubicweb-centos-version-3.18.6-1
+cb96f4403cf2837b595992ceb0dfef2070d55e70 cubicweb-version-3.18.7
+cb96f4403cf2837b595992ceb0dfef2070d55e70 cubicweb-debian-version-3.18.7-1
+cb96f4403cf2837b595992ceb0dfef2070d55e70 cubicweb-centos-version-3.18.7-1
 1141927b8494aabd16e31b0d0d9a50fe1fed5f2f cubicweb-version-3.19.0
 1141927b8494aabd16e31b0d0d9a50fe1fed5f2f cubicweb-debian-version-3.19.0-1
 1141927b8494aabd16e31b0d0d9a50fe1fed5f2f cubicweb-centos-version-3.19.0-1
--- a/debian/changelog	Fri Sep 19 13:08:26 2014 +0200
+++ b/debian/changelog	Wed Nov 26 17:58:23 2014 +0100
@@ -34,6 +34,12 @@
 
  -- Julien Cristau <julien.cristau@logilab.fr>  Mon, 28 Apr 2014 18:35:27 +0200
 
+cubicweb (3.18.7-1) unstable; urgency=low
+
+  * new upstream release
+
+ -- Aurelien Campeas <aurelien.campeas@logilab.fr>  Tue, 25 Nov 2014 12:14:36 +0100
+
 cubicweb (3.18.6-1) unstable; urgency=low
 
   * new upstream release
@@ -76,6 +82,12 @@
 
  -- Julien Cristau <julien.cristau@logilab.fr>  Fri, 10 Jan 2014 17:14:18 +0100
 
+cubicweb (3.17.18-1) unstable; urgency=low
+
+  * new upstream release
+
+ -- Aurelien Campeas <aurelien.campeas@logilab.fr>  Mon, 24 Nov 2014 17:41:24 +0100
+
 cubicweb (3.17.17-1) unstable; urgency=low
 
   * new upstream release
--- a/misc/migration/3.18.0_Any.py	Fri Sep 19 13:08:26 2014 +0200
+++ b/misc/migration/3.18.0_Any.py	Wed Nov 26 17:58:23 2014 +0100
@@ -133,17 +133,19 @@
 # recreate the constraints, hook will lead to low-level recreation
 for eschema in sorted(schema.entities()):
     if eschema._unique_together:
+        print 'recreate unique indexes for', eschema
         rql_args = schemaserial.uniquetogether2rqls(eschema)
         for rql, args in rql_args:
             args['x'] = eschema.eid
             session.execute(rql, args)
-        commit()
-
+commit()
 
 # all attributes perms have to be refreshed ...
-for rschema in schema.relations():
+for rschema in sorted(schema.relations()):
     if rschema.final:
         if rschema.type in fsschema:
-            sync_schema_props_perms(rschema.type, syncprops=False, ask_confirm=False)
+            print 'sync perms for', rschema.type
+            sync_schema_props_perms(rschema.type, syncprops=False, ask_confirm=False, commit=False)
         else:
             print 'WARNING: attribute %s missing from fs schema' % rschema.type
+commit()
--- a/server/schemaserial.py	Fri Sep 19 13:08:26 2014 +0200
+++ b/server/schemaserial.py	Wed Nov 26 17:58:23 2014 +0100
@@ -421,7 +421,14 @@
 
 def uniquetogether2rqls(eschema):
     rql_args = []
+    # robustness against duplicated CWUniqueTogetherConstraint (pre 3.18)
+    columnset = set()
     for columns in eschema._unique_together:
+        if columns in columnset:
+            print ('schemaserial: skipping duplicate unique together %r %r' %
+                   (eschema.type, columns))
+            continue
+        columnset.add(columns)
         rql, args = _uniquetogether2rql(eschema, columns)
         args['name'] = y2sql.unique_index_name(eschema, columns)
         rql_args.append((rql, args))
--- a/server/sources/native.py	Fri Sep 19 13:08:26 2014 +0200
+++ b/server/sources/native.py	Wed Nov 26 17:58:23 2014 +0100
@@ -1559,6 +1559,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
@@ -1642,10 +1644,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))