summaryrefslogtreecommitdiff
path: root/odoo
diff options
context:
space:
mode:
authorGraeme Gellatly <gdgellatly@gmail.com>2019-03-01 04:31:23 +0000
committerMartin Trigaux <mat@odoo.com>2019-10-04 09:44:13 +0000
commitec162dd0cb5622ab6e56db1a63dab5f531a96f4a (patch)
treeadc22b9623cd0d16a2f36c9cab1784f512a4dae2 /odoo
parenteaa022388de83fc1e90c5d0830a8259cb8135b67 (diff)
[IMP] fields: add a primary key for m2m tables
Remove individual m2m indexes and replace with a single mirrored composite This will help for logical replication strategies (postgresql BDR) closes odoo/odoo#37963 Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Diffstat (limited to 'odoo')
-rw-r--r--odoo/fields.py5
1 files changed, 2 insertions, 3 deletions
diff --git a/odoo/fields.py b/odoo/fields.py
index 2576fd770ac..da0de6d9a35 100644
--- a/odoo/fields.py
+++ b/odoo/fields.py
@@ -3141,10 +3141,9 @@ class Many2many(_RelationalMulti):
query = """
CREATE TABLE "{rel}" ("{id1}" INTEGER NOT NULL,
"{id2}" INTEGER NOT NULL,
- UNIQUE("{id1}","{id2}"));
+ PRIMARY KEY("{id1}","{id2}"));
COMMENT ON TABLE "{rel}" IS %s;
- CREATE INDEX ON "{rel}" ("{id1}");
- CREATE INDEX ON "{rel}" ("{id2}")
+ CREATE INDEX ON "{rel}" ("{id2}","{id1}");
""".format(rel=self.relation, id1=self.column1, id2=self.column2)
cr.execute(query, ['RELATION BETWEEN %s AND %s' % (model._table, comodel._table)])
_schema.debug("Create table %r: m2m relation between %r and %r", self.relation, model._table, comodel._table)