MuK PGSQL Large Objects

by
Odoo
v 10.0 v 11.0 v 12.0 Third Party 714
Download for v 10.0 Deploy on Odoo.sh
Availability
Odoo Online
Odoo.sh
On Premise
Technical Name muk_fields_lobject
LicenseAGPL-3
Websitehttp://www.mukit.at
Versions 11.0 12.0 13.0 10.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Technical Name muk_fields_lobject
LicenseAGPL-3
Websitehttp://www.mukit.at
Versions 11.0 12.0 13.0 10.0

MuK PGSQL Large Objects

PGSQL Large Objects Support

MuK IT GmbH - www.mukit.at

Overview

Provides a field to store bytes as PostgreSQL large objects. PostgreSQL offers support for large objects, which provide stream-style access to user data that is stored in a special large-object structure. They are useful with data values too large to be manipulated conveniently as a whole.

Psycopg2 for Python

Psycopg allows access to the large object using the lobject class. Objects are generated using the connection.lobject() factory method. Data can be retrieved either as bytes or as Unicode strings.

Psycopg large object support efficient import/export with file system files using the lo_import() and lo_export() libpq functions.

Changed in version 2.6: added support for large objects greated than 2GB. Note that the support is enabled only if all the following conditions are verified:

  • the Python build is 64 bits;
  • the extension was built against at least libpq 9.3;
  • the server version is at least PostgreSQL 9.3 (server_version must be >= 90300).

If Psycopg was built with 64 bits large objects support (i.e. the first two contidions above are verified), the psycopg2.__version__ constant will contain the lo64 flag. If any of the contition is not met several lobject methods will fail if the arguments exceed 2GB.

		    	
from odoo.addons.muk_fields_lobject import fields as lobject_fields

class LargeObjectModel(models.Model):

    data_content = lobject_fields.LargeObject(string="Data")

    @api.multi
    def data(self):
        for record in self:
            bytes = record.data_content
            oid = record.with_context({'oid': True}).data_content
            size = record.with_context({'bin_size': True}).data_content
            stream = record.with_context({'stream': True}).data_content
		    	
			

Help and Support

Email Contact

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Please choose a rating from 1 to 5 for this module.