Re: [JIRA] Updated: (CAY-316) stream support for blob/clob

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Tue Nov 21 2006 - 23:20:16 EST

  • Next message: Tore Halset: "Re: [JIRA] Updated: (CAY-316) stream support for blob/clob"

    My concern is that it seems too low-level, accessing DataNode
    directly (hence you have to manage connection state and all that).
    But there is another more fundamental problem of a Blob becoming
    invalid when the connection that generated it is closed.

    So I wonder if instead of mapping a column directly as a Blob, we
    should implement our own mapping primitive (BlobHolder?), that can re-
    read the Blob as many times as requested. The other piece is a
    callback interface that is provided with the regular Blob instance
    guaranteed to be in the valid state (i.e. inside a Cayenne
    transaction). A callback can read the stream, and do whatever with it
    (like pushing data to HttpResponse):

    interface (or class) BlobHolder {
        void readBlob(BlobCallback callback);
    }

    interface BlobCallback {
        // this is called within transaction span and the Blob is
    guaranteed to be valid
        void blobRead(Blob);
    }

    We can use a BlobFault similar to what you wrote as a way to
    initialize BlobHolder with an object qualifier (so that it knows how
    to fetch itself).

    What do you think?

    Andrus

    On Nov 20, 2006, at 6:21 PM, Tore Halset (JIRA) wrote:
    > [ http://issues.apache.org/cayenne/browse/CAY-316?page=all ]
    >
    > Tore Halset updated CAY-316:
    > ----------------------------
    >
    > Attachment: BlobFaultType.java
    >
    >> stream support for blob/clob
    >> ----------------------------
    >>
    >> Key: CAY-316
    >> URL: http://issues.apache.org/cayenne/browse/CAY-316
    >> Project: Cayenne
    >> Type: New Feature
    >
    >> Components: Cayenne Core Library
    >> Versions: 1.2 [STABLE]
    >> Reporter: Tore Halset
    >> Assignee: Andrus Adamchik
    >> Priority: Minor
    >> Fix For: UNDEFINED FUTURE
    >> Attachments: BlobFault.java, BlobFaultType.java
    >>
    >> It would be nice if cayenne would support for streaming blob/clob.
    >> It should at least be possible to prevent caching of blobs.
    >
    > --
    > This message is automatically generated by JIRA.
    > -
    > If you think it was sent incorrectly contact one of the
    > administrators:
    > http://issues.apache.org/cayenne/secure/Administrators.jspa
    > -
    > For more information on JIRA, see:
    > http://www.atlassian.com/software/jira
    >
    >



    This archive was generated by hypermail 2.0.0 : Tue Nov 21 2006 - 23:20:53 EST