Reviewed-by: Drobnak, David <david.drobnak@t-systems.com> Co-authored-by: wangdengke2 <wangdengke2@huawei.com> Co-committed-by: wangdengke2 <wangdengke2@huawei.com>
6.2 KiB
Installing and Uninstalling a Plugin Using SQL Commands
RDS provides the PostgreSQL plugin management solution for user root. Except the following plugins, you need to manually create other plugins by referring to this section.
- auto_explain
- passwordcheck
- pg_profile_pro
- pg_sql_history
- plpgsql
- wal2json
- test_decoding

- RDS for PostgreSQL plugins only take effect on the databases you created the plugins for. To use a plugin on databases, it has to be created separately for each database.
- The latest minor versions of RDS for PostgreSQL 11, 12, 13, and 14 allow the root user to create plugins (create extension) or delete plugins (drop extension).
Creating a Plugin
Connect to the database where a plugin needs to be created as user root and run the following SQL statements:
select control_extension('create','<EXTENSION_NAME>', '<SCHEMA>');
- EXTENSION_NAME indicates the plugin name. For more information, see Supported Plugins.
- SCHEMA indicates the name of the schema where the plugin is created. If this parameter is not specified, the public schema is used by default.
Example:
-- Specify the public schema for creating the plugin. select control_extension('create','postgis', 'public'); control_extension ------------------------------ create postgis successfully. (1 row) -- If the schema parameter is not specified, the default schema is public. select control_extension('create', 'postgis'); control_extension ------------------------------ create postgis successfully. (1 row)
Deleting a Plugin
Connect to the database where a plugin needs to be created as user root and run the following SQL statements:
select control_extension('drop','<EXTENSION_NAME>', '<SCHEMA>');
- EXTENSION_NAME indicates the plugin name. For more information, see Supported Plugins.
- SCHEMA indicates the schema name. This parameter does not matter much when you delete a plugin, so you do not need to specify this parameter.
Example:
select control_extension('drop','postgis'); control_extension ---------------------------- drop postgis successfully. (1 row)
Common Errors
- Error 1
ERROR: permission denied for function control_extension
Solution: Use root to run the control_extension function.
- Error 2
ERROR: function control_extension(unknown, unknown) is not unique
Solution: Add the schema parameter in the function. If the schema is not specified, there may be functions with the same name, causing execution failures.
- Error 3
ERROR: function control_extension(unknown, unknown) does not exist
Solution: Do not create plugins in the postgres database. The control_extension function does not exist in the postgres database because this database is used as an O&M database.