A composite type is very similar to a record or a rowtype type without having to belong to a table. This is a row made up of other types (columns) with no specific storage table behind. A composite type can be built on top of existing built-in and custom data types, and of course can be used as an argument or return value to a function, as well as a column of a table.
Composite types
Creating a composite type
In order to demonstrate how to use a composite data type, let's imagine building a type that provides information about a file origin on a version control repository. Such a type will include the commit hash, the branch, and the URI for the repository. The implementation of this new composite type, named t_repository...