On 05/11/2011 07:53 AM, Robert Haas wrote:
On Tue, May 10, 2011 at 10:29 PM, Joseph Adams
<joeyadams3.14...@gmail.com>  wrote:
It seems to me a reasonable way to implement VARIANT would be to have
a data type called VARIANT that stores an OID of the inner type at the
beginning, followed by the binary data.
That's likely to be how it gets implemented, but you seem to have
missed the point of some of the discussion upthread: the big problem
with that is that someone might type "DROP TYPE foo", and when they
do, you need an efficient way to figure out whether foo is in use
inside an instance of the variant type anywhere in the system.  The
devil is in the details...


Actually, I thought that was the variant (pun intended) Tom objected to, and wanted declared variant types instead, precisely so we could know where we'd need to look if a type was dropped. Using that you might still use the type oid at the beginning of the field, but there are other possibilities too (e.g. a single byte indicating which known variant is in use).

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to