Re: Opaque data type

From: John Burski <john(dot)burski(at)911ep(dot)com>
To:
Cc: PostgreSQL Novice <pgsql-novice(at)postgresql(dot)org>
Subject: Re: Opaque data type
Date: 2001-08-16 15:03:39
Message-ID: 3B7BE0CB.E97A955D@911ep.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Actually, that cleared things up quite a bit. While it may be a bit
confusing, I'm no longer standing on the "ignorant" square.

Thanks!

Tom Lane wrote:

> John Burski <john(dot)burski(at)911ep(dot)com> writes:
> > Could someone clarify the concept that underlies the opaque data type?
>
> It *is* confusing, because OPAQUE is actually used for several distinct
> purposes. If you look in the pg-hackers mail list archives, you'll find
> discussions (as yet unimplemented) to replace OPAQUE by several
> pseudo-types that have crisper meanings.
>
> Offhand I can recall these uses:
>
> * Sometimes OPAQUE means "this function doesn't return anything at all",
> similarly to "returns void" in C and some other languages.
>
> * Sometimes OPAQUE means "this value can be any datatype at all" (eg,
> input of the count() aggregate).
>
> * Sometimes OPAQUE means "I know exactly what this should be, but it's
> an internal datatype with no SQL-level equivalent". This is usually
> what's at stake with a trigger function.
>
> * Sometimes OPAQUE means "I know exactly what this should be, but I
> haven't declared it yet" (ie, a forward reference). This is needed
> to declare I/O functions of user-defined types, since the system
> requires the functions to already exist when the type is declared.
>
> Confused yet? Basically, OPAQUE has been used as an easy out in rather
> more places than it should have been :-(. Someday we'll clean this up.
>
> regards, tom lane

--
John Burski
I.T. Manager and Systems Administration
911EP
First in LEDs... The solid state warning light leader.
25 Sixth Avenue North
Saint Cloud, MN 56303
1-800-863-6911

In response to

Browse pgsql-novice by date

  From Date Subject
Next Message P.V. Subramanian 2001-08-16 18:39:49 Starting a daemon process on INSERT
Previous Message Tom Lane 2001-08-16 14:43:50 Re: Opaque data type