One powerful feature of PostgreSQL is its ability to host pretty much any programming language on the server-side, meaning that code can be deployed to the server and run locally on the data.
This chapter has shown you how to use Perl 5 and Java as hosted—or foreign—languages. The choice of which language to use as an alternative to SQL or PL/pgSQL depends on several factors, including the knowledge of the language and the specific task to be accomplished. This decision might also be driven by the deployment phase; for example, it is much simpler to deploy a Perl 5 function or procedure than a Java one. Another influencing factor might be the ecosystem of the language, including the libraries and the existing code.
In the next chapter, we will use functions to implement triggers, a way to react to data changes from within the database itself. The aim is...