Yo tengo entendido que con
create aggregate las funciones se crean y quedan adicionadas a la distribución de postgres y no a la base de datos como es común en una función. Algo muy similar a las funciones sum,count etc.
Para tipos de datos, con create type puedes hacerlo, pero no he probado si se manipula la base de datos o directamente los catalogos de postgresql.
Cualquier información que consigas de mas, compartela en el foro. Este tema es bien interesante.
saludos colombian55