You can access TEXT fields normally, but it may be the case that once you stuff n characters in the field it becomes a blob stored outside the table. (Do a '\dl' in psql to get a listing of all LOBs stored in the db.)

Looking at the DBD::Pg docs you need special operations to work with LOBs. (Fortunately for framework authors, these operations vary from database to database...) You can either read it in all at once or a chunk at a time, both using the blob_read function of the statement handle.

What I'd do is handle it outside of SPOPS entirely. If this is the only field in the table then probably wouldn't use SPOPS for the table. If you do use it SPOPS can be told to only deal with certain fields of a table by listing the fields in the 'field' configuration key. Just don't list your PDF field there and create a method (likely inherited or delegated since it should be a fairly generic operation) to use the DBD::Pg functionality to stream the LOB into a file. Then you have no memory worries and can use SPOPS normally.

Hope this makes sense.

Chris
M-x auto-bs-mode


In reply to Re: Anyone using SPOPS to store BLOBs? by lachoy
in thread Anyone using SPOPS to store BLOBs? by talexb

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.