|
@ -13,63 +13,12 @@ |
|
|
<h3 class="oe_slogan">Overview</h3> |
|
|
<h3 class="oe_slogan">Overview</h3> |
|
|
<div class="oe_mt32" |
|
|
<div class="oe_mt32" |
|
|
style="padding-bottom: 10px; text-align: justify;"> |
|
|
style="padding-bottom: 10px; text-align: justify;"> |
|
|
<p>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.</p> |
|
|
|
|
|
<h5 style="padding-top: 10px;">Psycopg2 for Python</h5> |
|
|
|
|
|
<p> |
|
|
|
|
|
Psycopg allows access to the large object using the |
|
|
|
|
|
<code>lobject</code> |
|
|
|
|
|
class. Objects are generated using the |
|
|
|
|
|
<code>connection.lobject()</code> |
|
|
|
|
|
factory method. Data can be retrieved either as bytes or as Unicode |
|
|
|
|
|
strings. |
|
|
|
|
|
</p> |
|
|
|
|
|
<p> |
|
|
|
|
|
Psycopg large object support efficient import/export with file |
|
|
|
|
|
system files using the |
|
|
|
|
|
<code>lo_import()</code> |
|
|
|
|
|
and |
|
|
|
|
|
<code>lo_export()</code> |
|
|
|
|
|
libpq functions. |
|
|
|
|
|
</p> |
|
|
|
|
|
<p>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:</p> |
|
|
|
|
|
<ul> |
|
|
|
|
|
<li>the Python build is 64 bits;</li> |
|
|
|
|
|
<li>the extension was built against at least libpq 9.3;</li> |
|
|
|
|
|
<li>the server version is at least PostgreSQL 9.3 |
|
|
|
|
|
(server_version must be >= 90300).</li> |
|
|
|
|
|
</ul> |
|
|
|
|
|
<p> |
|
|
|
|
|
If Psycopg was built with 64 bits large objects support (i.e. the |
|
|
|
|
|
first two contidions above are verified), the |
|
|
|
|
|
<code>psycopg2.__version__</code> |
|
|
|
|
|
constant will contain the lo64 flag. If any of the contition is not |
|
|
|
|
|
met several lobject methods will fail if the arguments exceed 2GB. |
|
|
|
|
|
</p> |
|
|
|
|
|
|
|
|
<p>This module allows the LargeObject Field to be previewed by |
|
|
|
|
|
the Preview Dialog. It is installed automatically with the MuK |
|
|
|
|
|
Preview Dialog module. It has no direct visible effect on the |
|
|
|
|
|
system. It allows LargeObejct fields to be previewed by the Preview |
|
|
|
|
|
Dialog.</p> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<pre> |
|
|
|
|
|
<code> |
|
|
|
|
|
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 |
|
|
|
|
|
</code> |
|
|
|
|
|
</pre> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</section> |
|
|
</section> |
|
|