Using a pre-existing type, table, or view for compound return types is a simple mechanism for returning more complex structures. However, there is often a need to define the return type of the function with the function itself and not be dependent on other objects. This is especially true when managing changes to a running application, so over time two better ways to handle this have been added to PostgreSQL.
Up until this point, all of the functions we have created have used parameters that are defined as
IN parameters. The
IN parameters are meant to just pass information into the function that can be used, but not returned. Parameters can also be defined as
INOUT parameters if you want the function ...