출처: http://users.footprints.net/~kaz/kazlib_doc/node13.html
A data type whose precise definition is not documented, and which is intended to be manipulated only using the documented interface, which consists of a set of functions. Many data types in Kazlib are described as opaque. A program which bypasses the documented interfaces in inspecting or manipulating these data types invokes undefined behavior, and is not portable among Kazlib implementations.
추가 참고: http://archives.postgresql.org/pgsql-novice/2001-08/msg00072.php
* 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.
A data type whose precise definition is not documented, and which is intended to be manipulated only using the documented interface, which consists of a set of functions. Many data types in Kazlib are described as opaque. A program which bypasses the documented interfaces in inspecting or manipulating these data types invokes undefined behavior, and is not portable among Kazlib implementations.
추가 참고: http://archives.postgresql.org/pgsql-novice/2001-08/msg00072.php
* 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.
Trackback Address :: http://www.dreamjr.org/tt/trackback/39
