On Sun, Feb 06, 2011 at 08:40:44AM -0500, Noah Misch wrote:
> On Sun, Feb 06, 2011 at 07:54:52AM -0500, Robert Haas wrote:
> > Yeeeeeeah, that's actually a little ugly. It's actually a domain
> > over a composite type, not a composite type proper, IIUC. Better
> > ideas?
>
> There are no domains over composite types. get_rels_with_domain() finds all
> relations having columns of the (scalar) domain type. It then calls
> find_composite_type_dependencies to identify uses of the composite types
> discovered in the previous step.
>
> Honestly, RELKIND_COMPOSITE_TYPE is a reasonable choice despite the technical
> mismatch. One more-correct approach would be to have two arguments, a catalog
> OID (pg_type or pg_class, currently) and a relkind, 0 when the catalog OID !=
> pg_class. Might be an improvement, albeit a minor one.
Scratch that. How about classid and objid arguments, passing them to
getObjectionDescription() internally? We already do something very similar in
ATExecAlterColumnType for a related case.