Skip to content
Snippets Groups Projects
Commit fe8d0024 authored by Raphael Collet's avatar Raphael Collet
Browse files

[FIX] core: remove confused log message about existing index


When a module extends model 'base', the database schemas of all models are
checked, including indexes.  And a log message appears for "unexpected index
mail_message_subtype_id_index on table mail_message_subtype".  The index indeed
exists, but not for the table mentioned in the message.  The ORM actually makes
a confusion between:
 - the index mail_message_subtype_id_index for subtype_id on table mail_message
 - the index mail_message_subtype_id_index for id on table mail_message_subtype

The fix consists in logging the message about the unexpected index only if the
index is on the expected table.

closes odoo/odoo#100217

Signed-off-by: default avatarRaphael Collet <rco@odoo.com>
parent 71da80de
Branches
Tags
No related merge requests found
......@@ -442,9 +442,10 @@ class Registry(Mapping):
if not expected:
return
cr.execute("SELECT indexname FROM pg_indexes WHERE indexname IN %s",
# retrieve existing indexes with their corresponding table
cr.execute("SELECT indexname, tablename FROM pg_indexes WHERE indexname IN %s",
[tuple(row[0] for row in expected)])
existing = {row[0] for row in cr.fetchall()}
existing = dict(cr.fetchall())
for indexname, tablename, columnname, index in expected:
if index and indexname not in existing:
......@@ -453,7 +454,8 @@ class Registry(Mapping):
sql.create_index(cr, indexname, tablename, ['"%s"' % columnname])
except psycopg2.OperationalError:
_schema.error("Unable to add index for %s", self)
elif not index and indexname in existing:
elif not index and tablename == existing.get(indexname):
_schema.info("Keep unexpected index %s on table %s", indexname, tablename)
def add_foreign_key(self, table1, column1, table2, column2, ondelete,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment