summaryrefslogtreecommitdiff
path: root/odoo/addons/base/models/ir_model.py
diff options
context:
space:
mode:
Diffstat (limited to 'odoo/addons/base/models/ir_model.py')
-rw-r--r--odoo/addons/base/models/ir_model.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/odoo/addons/base/models/ir_model.py b/odoo/addons/base/models/ir_model.py
index 2e5842ad717..01229307ef7 100644
--- a/odoo/addons/base/models/ir_model.py
+++ b/odoo/addons/base/models/ir_model.py
@@ -430,8 +430,18 @@ class IrModel(models.Model):
if tools.table_kind(cr, Model._table) not in ('r', None):
# not a regular table, so disable schema upgrades
Model._auto = False
- cr.execute('SELECT * FROM %s LIMIT 0' % Model._table)
- columns = {desc[0] for desc in cr.description}
+ cr.execute(
+ '''
+ SELECT a.attname
+ FROM pg_attribute a
+ JOIN pg_class t
+ ON a.attrelid = t.oid
+ AND t.relname = %s
+ WHERE a.attnum > 0 -- skip system columns
+ ''',
+ [Model._table]
+ )
+ columns = {colinfo[0] for colinfo in cr.fetchall()}
Model._log_access = set(models.LOG_ACCESS_COLUMNS) <= columns