Re: [HACKERS] New pg_type for large object - Mailing list pgsql-hackers

From Kent S. Gordon
Subject Re: [HACKERS] New pg_type for large object
Date
Msg-id 199804101532.KAA10774@soccer.inetspace.com
Whole thread Raw
In response to New pg_type for large object  (David Hartwig <daveh@insightdist.com>)
Responses Re: [HACKERS] New pg_type for large object  (Peter T Mount <psqlhack@maidast.demon.co.uk>)
List pgsql-hackers
>>>>> "daveh" == David Hartwig <daveh@insightdist.com> writes:

    > This is a multi-part message in MIME format.
    > --------------493C6ADCB141A4B0F7C01648 Content-Type: text/plain;
    > charset=us-ascii Content-Transfer-Encoding: 7bit

    > Greetings,

    > We are putting the finishing touches on some enhancements to the
    > ODBC driver.  One feature, in particular, uses large objects to
    > implement OLE data types.  We are rather please with the way it
    > is working.  Via MS Access, we have been able to INSERT and
    > SELECT objects, such as VISIO drawings, Word Documents, and WAV
    > sound clips.  However, we've run into two problems.

    > The first is, that when we update the OID which points to the
    > large object, the large object is orphaned.  I realize that at
    > the time of the update, we could select the old OID and
    > subsequently drop the large object.  The problem is that general
    > purpose tools such as MS Access do not provide an clean
    > framework for invoking such a query.  Specifically, UPDATE
    > statements would have to be torn apart to build such a SELECT
    > statement.  In the short term I can build a separate daemon to
    > track down the orphans.  I hope VACUUM will eventually handle
    > these.

You should be able to use triggers to fix the problem at the time that
the update statement is run.

    > The second, and more difficult, problem is that there is no
    > large object data type.  When we gather table info in the driver
    > we have no idea that an OID may actually be a large object.
    > What we need is a large object data type.  Furthermore, the data
    > type must have a stable OID so the we can recognize it when we
    > gather table info.  We have tested the driver by creating our
    > own date type.  However, with the existing function scoping of
    > our driver, it is extremely difficult to dynamically locate a
    > user defined large object data type.  So for testing we have
    > compiled in our "lo" data type OID.

    > What I would like to know is, can a large object data type be
    > added as an internal data type?  The various "lo_" functions
    > should eventually be overloaded (or modified) to be able to use
    > this data type.  But it is not necessary at this time.  I
    > believe this addition is a very low risk change, and I would
    > very much like to get to have it in the 6.3.2 release for
    > distribution.  May I submit the patch, or would someone kindly
    > hack it in for us?

    > Great work!


    > --------------493C6ADCB141A4B0F7C01648 Content-Type:
    > text/x-vcard; charset=us-ascii; name="vcard.vcf"
    > Content-Transfer-Encoding: 7bit Content-Description: Card for
    > David Hartwig Content-Disposition: attachment;
    > filename="vcard.vcf"

    > begin: vcard fn: David Hartwig n: Hartwig;David email;internet:
    > daveh@insightdist.com x-mozilla-cpt: ;0 x-mozilla-html: FALSE
    > version: 2.1 end: vcard


    > --------------493C6ADCB141A4B0F7C01648--

--
Kent S. Gordon
Architect
iNetSpace Co.
voice: (972)851-3494 fax:(972)702-0384 e-mail:kgor@inetspace.com

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] error on HAVING clause
Next
From: The Hermit Hacker
Date:
Subject: palloc failures...still...