PostgreSQL is a powerful and flexible open-source database management system that allows users to install and use extensions to add additional functionality to their databases. In this tutorial, we will cover the process of installing and upgrading PostgreSQL extensions using the example of the pg_stat_monitor extension.

The pg_stat_monitor is a PostgreSQL extension that provides real-time monitoring and analysis of database activity. It allows users to monitor and track various performance metrics, such as queries per second, buffer hits, and shared memory pool size. It also helps them optimize their database’s performance in real-time.

To install the pg_stat_monitor extension, you must have the necessary privileges to create extensions in your database. This can typically be done using the CREATE EXTENSION command.

For example:

This command installs the default version of the pg_stat_monitor extension specified in the control file (pg_stat_monitor.control).

You can use the CREATE EXTENSION command with the VERSION option if you want to install a specific extension version. For example:

To upgrade a PostgreSQL extension, you can use the ALTER EXTENSION command with the UPDATE TO option. For example:

Before upgrading an extension, you should check the current version of the installed extension. To do this, you can use the pg_extension view:

This will return the version of the pg_stat_monitor extension currently installed in your database.

Along with the library files, a PostgreSQL extension also includes a set of SQL files that define the objects and functions of the extension and a control file to manage the extension. When you upgrade the pg_stat_monitor extension from version 1.0 to version 2.0, the database server executes these SQL files to update the extension’s objects and functionality. The pg_stat_monitor–1.0.sql file is executed first to create the initial version of the extension, and then the pg_stat_monitor–1.0–2.0.sql file is executed to apply any changes or additions made in version 2.0.

The control file is an essential part of a PostgreSQL extension. It provides the database server with the information it needs to manage the extension and make its objects and functionality available to the database. It includes details such as the extension’s name, version, dependencies, and SQL scripts. In the case of the pg_stat_monitor extension, the control file might look something like this:

In this control file, the comment field provides a brief description of the extension, the default_version field specifies the default version of the extension (2.0), and the module_pathname field specifies the path to a shared object file that provides additional functionality for the extension. The relocatable field indicates that the extension can be installed in a schema other than the public schema.


PostgreSQL extensions are a powerful way to extend the capabilities of your database and build flexible and powerful applications. You can easily install and upgrade PostgreSQL extensions by using the CREATE EXTENSION and ALTER EXTENSION commands. You can use the control file to manage the extension and make its objects and functionality available to your database.

Notify of

Inline Feedbacks
View all comments