Sparse Fields

base_sparse_field
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/base_sparse_field
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSOdoo Translation Bot, Xavier Morel, Julien Castiaux, Achraf (abz), Tiffany Chang (tic), Gorash, Miquel Raïch, Dylan Kiss (dyki), Krzysztof Magusiak (krma)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:44
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
The purpose of this module is to implement "sparse" fields, i.e., fields
that are mostly null. This implementation circumvents the PostgreSQL
limitation on the number of columns in a table. The values of all sparse
fields are stored in a "serialized" field in the form of a JSON mapping.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
field_form_view ir.model.fields field Inherits base.view_model_fields_form
model_form_view ir.model field Inherits base.view_model_form
Models touched (3)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • serialization_field_id Many2one → ir.model.fields
    domain="[('ttype','=','serialized'), ('model_id', '=', model_id)]" help='If set, this field will be stored in the sparse structure of the serialization field, instead of having its own database column. This cannot be changed after creation.' ondelete='cascade' string='Serialization Field' args: 'ir.model.fields'
  • ttype Selection
    ondelete={'serialized': 'cascade'} selection_add=[('serialized', 'serialized')]
Public methods (1)
  • write(self, vals)

New fields (7)
  • boolean Boolean
    sparse='data'
  • char Char
    sparse='data'
  • data Serialized
  • float Float
    sparse='data'
  • integer Integer
    sparse='data'
  • partner Many2one → res.partner
    sparse='data' args: 'res.partner'
  • selection Selection
    sparse='data' args: [('one', 'One'), ('two', 'Two')]
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/base_sparse_field
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Odoo Online, Tiffany Chang (tic), Vincent Larcin, Louis Wicket (wil), Dylan Kiss (dyki), Chong Wang (cwg), Louis (wil)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
The purpose of this module is to implement "sparse" fields, i.e., fields
that are mostly null. This implementation circumvents the PostgreSQL
limitation on the number of columns in a table. The values of all sparse
fields are stored in a "serialized" field in the form of a JSON mapping.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
field_form_view ir.model.fields field Inherits base.view_model_fields_form
model_form_view ir.model field Inherits base.view_model_form
Models touched (3)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • serialization_field_id Many2one → ir.model.fields
    domain="[('ttype','=','serialized'), ('model_id', '=', model_id)]" help='If set, this field will be stored in the sparse structure of the serialization field, instead of having its own database column. This cannot be changed after creation.' ondelete='cascade' string='Serialization Field' args: 'ir.model.fields'
  • ttype Selection
    ondelete={'serialized': 'cascade'} selection_add=[('serialized', 'serialized')]
Public methods (1)
  • write(self, vals)

New fields (7)
  • boolean Boolean
    sparse='data'
  • char Char
    sparse='data'
  • data Serialized
  • float Float
    sparse='data'
  • integer Integer
    sparse='data'
  • partner Many2one → res.partner
    sparse='data' args: 'res.partner'
  • selection Selection
    sparse='data' args: [('one', 'One'), ('two', 'Two')]
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/base_sparse_field
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Louis Wicket (wil), Dylan Kiss (dyki), Louis (wil)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
The purpose of this module is to implement "sparse" fields, i.e., fields
that are mostly null. This implementation circumvents the PostgreSQL
limitation on the number of columns in a table. The values of all sparse
fields are stored in a "serialized" field in the form of a JSON mapping.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
field_form_view ir.model.fields field Inherits base.view_model_fields_form
model_form_view ir.model field Inherits base.view_model_form
Models touched (3)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • serialization_field_id Many2one → ir.model.fields
    domain="[('ttype','=','serialized'), ('model_id', '=', model_id)]" help='If set, this field will be stored in the sparse structure of the serialization field, instead of having its own database column. This cannot be changed after creation.' ondelete='cascade' string='Serialization Field' args: 'ir.model.fields'
  • ttype Selection
    ondelete={'serialized': 'cascade'} selection_add=[('serialized', 'serialized')]
Public methods (1)
  • write(self, vals)

New fields (7)
  • boolean Boolean
    sparse='data'
  • char Char
    sparse='data'
  • data Serialized
  • float Float
    sparse='data'
  • integer Integer
    sparse='data'
  • partner Many2one → res.partner
    sparse='data' args: 'res.partner'
  • selection Selection
    sparse='data' args: [('one', 'One'), ('two', 'Two')]
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/base_sparse_field
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Tiffany Chang (tic)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:51
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        The purpose of this module is to implement "sparse" fields, i.e., fields
        that are mostly null. This implementation circumvents the PostgreSQL
        limitation on the number of columns in a table. The values of all sparse
        fields are stored in a "serialized" field in the form of a JSON mapping.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
field_form_view ir.model.fields field Inherits base.view_model_fields_form
model_form_view ir.model field Inherits base.view_model_form
Models touched (3)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • serialization_field_id Many2one → ir.model.fields
    domain="[('ttype','=','serialized'), ('model_id', '=', model_id)]" help='If set, this field will be stored in the sparse structure of the serialization field, instead of having its own database column. This cannot be changed after creation.' ondelete='cascade' string='Serialization Field' args: 'ir.model.fields'
  • ttype Selection
    ondelete={'serialized': 'cascade'} selection_add=[('serialized', 'serialized')]
Public methods (1)
  • write(self, vals)

New fields (7)
  • boolean Boolean
    sparse='data'
  • char Char
    sparse='data'
  • data Serialized
  • float Float
    sparse='data'
  • integer Integer
    sparse='data'
  • partner Many2one → res.partner
    sparse='data' args: 'res.partner'
  • selection Selection
    sparse='data' args: [('one', 'One'), ('two', 'Two')]
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/base_sparse_field
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Xavier-Do
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:28
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        The purpose of this module is to implement "sparse" fields, i.e., fields
        that are mostly null. This implementation circumvents the PostgreSQL
        limitation on the number of columns in a table. The values of all sparse
        fields are stored in a "serialized" field in the form of a JSON mapping.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
field_form_view ir.model.fields field Inherits base.view_model_fields_form
model_form_view ir.model field Inherits base.view_model_form
Models touched (3)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • serialization_field_id Many2one → ir.model.fields
    domain="[('ttype','=','serialized'), ('model_id', '=', model_id)]" help='If set, this field will be stored in the sparse structure of the serialization field, instead of having its own database column. This cannot be changed after creation.' ondelete='cascade' string='Serialization Field' args: 'ir.model.fields'
  • ttype Selection
    ondelete={'serialized': 'cascade'} selection_add=[('serialized', 'serialized')]
Public methods (1)
  • write(self, vals)

New fields (7)
  • boolean Boolean
    sparse='data'
  • char Char
    sparse='data'
  • data Serialized
  • float Float
    sparse='data'
  • integer Integer
    sparse='data'
  • partner Many2one → res.partner
    sparse='data' args: 'res.partner'
  • selection Selection
    sparse='data' args: [('one', 'One'), ('two', 'Two')]
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/14.0/base_sparse_field
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Christophe Simonis, Xavier Morel, Xavier-Do, fw-bot
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:14:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        The purpose of this module is to implement "sparse" fields, i.e., fields
        that are mostly null. This implementation circumvents the PostgreSQL
        limitation on the number of columns in a table. The values of all sparse
        fields are stored in a "serialized" field in the form of a JSON mapping.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
field_form_view ir.model.fields field Inherits base.view_model_fields_form
model_form_view ir.model field Inherits base.view_model_form
Models touched (3)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • serialization_field_id Many2one → ir.model.fields
    domain="[('ttype','=','serialized'), ('model_id', '=', model_id)]" help='If set, this field will be stored in the sparse structure of the serialization field, instead of having its own database column. This cannot be changed after creation.' ondelete='cascade' string='Serialization Field' args: 'ir.model.fields'
  • ttype Selection
    ondelete={'serialized': 'cascade'} selection_add=[('serialized', 'serialized')]
Public methods (1)
  • write(self, vals)

New fields (7)
  • boolean Boolean
    sparse='data'
  • char Char
    sparse='data'
  • data Serialized
  • float Float
    sparse='data'
  • integer Integer
    sparse='data'
  • partner Many2one → res.partner
    sparse='data' args: 'res.partner'
  • selection Selection
    sparse='data' args: [('one', 'One'), ('two', 'Two')]
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/13.0/base_sparse_field
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Denis Ledoux, Christophe Simonis, Damien Bouvy, Adrian Torres, Xavier-Do, Sébastien Theys
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:06:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        The purpose of this module is to implement "sparse" fields, i.e., fields
        that are mostly null. This implementation circumvents the PostgreSQL
        limitation on the number of columns in a table. The values of all sparse
        fields are stored in a "serialized" field in the form of a JSON mapping.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
field_form_view ir.model.fields field Inherits base.view_model_fields_form
model_form_view ir.model field Inherits base.view_model_form
Models touched (2)

New fields (2)
  • serialization_field_id Many2one → ir.model.fields
    domain="[('ttype','=','serialized'), ('model_id', '=', model_id)]" help='If set, this field will be stored in the sparse structure of the serialization field, instead of having its own database column. This cannot be changed after creation.' ondelete='cascade' string='Serialization Field' args: 'ir.model.fields'
  • ttype Selection
    selection_add=[('serialized', 'serialized')]
Public methods (1)
  • write(self, vals)

New fields (7)
  • boolean Boolean
    sparse='data'
  • char Char
    sparse='data'
  • data Serialized
  • float Float
    sparse='data'
  • integer Integer
    sparse='data'
  • partner Many2one → res.partner
    sparse='data' args: 'res.partner'
  • selection Selection
    sparse='data' args: [('one', 'One'), ('two', 'Two')]
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/12.0/base_sparse_field
VERSION
VERSION 1.0
CATEGORY
CATEGORYTechnical Settings
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Christophe Simonis, Yannick Tivisse, Xavier-Do
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:57:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        The purpose of this module is to implement "sparse" fields, i.e., fields
        that are mostly null. This implementation circumvents the PostgreSQL
        limitation on the number of columns in a table. The values of all sparse
        fields are stored in a "serialized" field in the form of a JSON mapping.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
field_form_view ir.model.fields field Inherits base.view_model_fields_form
model_form_view ir.model field Inherits base.view_model_form
Models touched (2)

New fields (2)
  • serialization_field_id Many2one → ir.model.fields
    domain="[('ttype','=','serialized'), ('model_id', '=', model_id)]" help='If set, this field will be stored in the sparse structure of the serialization field, instead of having its own database column. This cannot be changed after creation.' ondelete='cascade' string='Serialization Field' args: 'ir.model.fields'
  • ttype Selection
    selection_add=[('serialized', 'serialized')]
Public methods (1)
  • write(self, vals)
    @api.multi

New fields (7)
  • boolean Boolean
    sparse='data'
  • char Char
    sparse='data'
  • data Serialized
  • float Float
    sparse='data'
  • integer Integer
    sparse='data'
  • partner Many2one → res.partner
    sparse='data' args: 'res.partner'
  • selection Selection
    sparse='data' args: [('one', 'One'), ('two', 'Two')]
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/11.0/base_sparse_field
VERSION
VERSION 1.0
CATEGORY
CATEGORYTechnical Settings
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Christophe Simonis, Xavier Morel, GitHub, Odoo Online
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:53:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
        The purpose of this module is to implement "sparse" fields, i.e., fields
        that are mostly null. This implementation circumvents the PostgreSQL
        limitation on the number of columns in a table. The values of all sparse
        fields are stored in a "serialized" field in the form of a JSON mapping.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
field_form_view ir.model.fields field Inherits base.view_model_fields_form
model_form_view ir.model field Inherits base.view_model_form
Models touched (2)

New fields (2)
  • serialization_field_id Many2one → ir.model.fields
    domain="[('ttype','=','serialized'), ('model_id', '=', model_id)]" help='If set, this field will be stored in the sparse structure of the serialization field, instead of having its own database column. This cannot be changed after creation.' ondelete='cascade' string='Serialization Field' args: 'ir.model.fields'
  • ttype Selection
    selection_add=[('serialized', 'serialized')]
Public methods (1)
  • write(self, vals)
    @api.multi

New fields (7)
  • boolean Boolean
    sparse='data'
  • char Char
    sparse='data'
  • data Serialized
  • float Float
    sparse='data'
  • integer Integer
    sparse='data'
  • partner Many2one → res.partner
    sparse='data' args: 'res.partner'
  • selection Selection
    sparse='data' args: [('one', 'One'), ('two', 'Two')]
Public methods (0)

No public methods.