diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 92a22a29f9a..6f794469529 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -517,7 +517,8 @@ def get_pg_type(f, type_override=None): elif issubclass(field_type, (fields.char, fields.reference)): return ('varchar', pg_varchar(f.size)) elif issubclass(field_type, fields.selection): - if isinstance(f.selection, list) and isinstance(f.selection[0][0], int): + if (isinstance(f.selection, list) and isinstance(f.selection[0][0], int))\ + or getattr(f, 'size', None) == -1: return ('int4', 'INTEGER') return ('varchar', pg_varchar(getattr(f, 'size', None))) elif issubclass(field_type, fields.function):