
Chapter 3. Your First PL/pgSQL Function
A function is the basic building block for extending PostgreSQL. A function accepts input in the form of parameters, and it can create output in the form of output parameters or return values. Many functions are provided by PostgreSQL itself, that is, common mathematical functions such as square roots and absolute values. For a comprehensive list of the functions that are already available, go to http://www.postgresql.org/docs/current/static/functions.html.
The functions that you create have the same privileges and ability that the built-in functions possess. The developers of PostgreSQL use the same libraries to extend the database that you use, as a developer, to write your business logic.
This means, that you have the tools available to be a first-class citizen of the PostgreSQL development community. In fact, there are no second-class seats on this bus.
A function accepts parameters that can be of any data type available in PostgreSQL, and it returns results to the caller using the same type. What you do within the function is entirely up to you. You have been empowered to do anything that PostgreSQL is capable of doing. You are herewith also warned that you are capable of doing anything that PostgreSQL is capable of doing. The training wheels are off.
In this chapter, you will learn the following topics:
- The basic building blocks of a PostgreSQL function
- Passing parameters into a function
- The basic control structures inside a function
- Returning results out of a function