Under Privilege

You own any named ROW data type that you create. If you want other users to be able to create subtypes under this named ROW type, you must grant these users the Under privilege on your named ROW type. If you later want to remove the ability of these users to create subtypes under the named ROW type, you must revoke the Under privilege from these users. A REVOKE statement with the UNDER ON TYPE keywords removes the Under privilege that you granted earlier to these users.

For example, suppose that you created a ROW type named rtype1:
CREATE ROW TYPE rtype1 (cola INT, colb INT);
If you want another user named kathy to be able to create a subtype under this named ROW type, you must grant the Under privilege on this named ROW type to user kathy:
GRANT UNDER ON TYPE rtype1 TO kathy;
Now user kathy can create another ROW type under the rtype1 ROW type even though kathy is not the owner of the rtype1 ROW type:
CREATE ROW TYPE rtype2 (colc INT, cold INT) UNDER rtype1;
If you later want to remove the ability of user kathy to create subtypes under the rtype1 ROW type, enter the following statement:
REVOKE UNDER ON TYPE rtype1 FROM kathy;