Note
This module is part of the community.postgresql collection (version 3.14.2).
You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install community.postgresql. You need further requirements to be able to use this module, see Requirements for details.
To use it in a playbook, specify: community.postgresql.postgresql_lang.
version 4.0.0
As of PostgreSQL 9.1, most procedural languages have been made into extensions.
Use community.postgresql.postgresql_ext instead.
The below requirements are needed on the host that executes this module.
Parameter | Comments |
|---|---|
ca_cert aliases: ssl_rootcert string | Specifies the name of a file containing SSL certificate authority (CA) certificate(s). If the file exists, the server’s certificate will be verified to be signed by one of these authorities. |
cascade boolean | When dropping a language, also delete object that depend on this language. Only used when state=absent. Choices:
|
connect_params dictionary added in community.postgresql 2.3.0 | Any additional parameters to be passed to libpg. These parameters take precedence. Default: |
db aliases: login_db string / required | Name of database to connect to and where the language will be added, removed or changed. |
fail_on_drop boolean | If In some cases, it is not possible to remove a language (used by the db-system). When dependencies block the removal, consider using cascade. Choices:
|
force_trust boolean | Marks the language as trusted, even if it’s marked as untrusted in pg_pltemplate. Use with care! Choices:
|
lang aliases: name string / required | Name of the procedural language to add, remove or change. |
login_host aliases: host string | Host running the database. If you have connection issues when using Default: |
login_password string | The password this module should use to establish its PostgreSQL session. Default: |
login_unix_socket aliases: unix_socket string | Path to a Unix domain socket for local connections. Default: |
login_user aliases: login string | The username this module should use to establish its PostgreSQL session. Default: |
owner string added in community.postgresql 0.2.0 | Set an owner for the language. Ignored when state=absent. |
port aliases: login_port integer | Database port to connect to. Default: |
session_role string | Switch to session_role after connecting. The specified session_role must be a role that the current login_user is a member of. Permissions checking for SQL commands is carried out as though the session_role were the one that had logged in originally. |
ssl_cert path added in community.postgresql 2.4.0 | Specifies the file name of the client SSL certificate. |
ssl_key path added in community.postgresql 2.4.0 | Specifies the location for the secret key used for the client certificate. |
ssl_mode string | Determines whether or with what priority a secure SSL TCP/IP connection will be negotiated with the server. See https://www.postgresql.org/docs/current/static/libpq-ssl.html for more information on the modes. Default of Choices:
|
state string | The state of the language for the selected database. Choices:
|
trust boolean | Make this language trusted for the selected db. Choices:
|
trust_input boolean added in community.postgresql 0.2.0 | If It makes sense to use Choices:
|
Attribute | Support | Description |
|---|---|---|
check_mode | Support: full | Can run in check_mode and return changed status prediction without modifying target. |
Note
postgres account on the host.psycopg, a Python PostgreSQL database adapter. You must ensure that psycopg2 >= 2.5.1 or psycopg3 >= 3.1.8 is installed on the host before using this module.postgresql, libpq-dev, and python3-psycopg2 packages on the remote host before using this module.See also
General information about PostgreSQL languages.
Complete reference of the CREATE LANGUAGE command documentation.
Complete reference of the ALTER LANGUAGE command documentation.
Complete reference of the DROP LANGUAGE command documentation.
- name: Add language pltclu to database testdb if it doesn't exist
community.postgresql.postgresql_lang: db=testdb lang=pltclu state=present
# Add language pltclu to database testdb if it doesn't exist and mark it as trusted.
# Marks the language as trusted if it exists but isn't trusted yet.
# force_trust makes sure that the language will be marked as trusted
- name: Add language pltclu to database testdb if it doesn't exist and mark it as trusted
community.postgresql.postgresql_lang:
db: testdb
lang: pltclu
state: present
trust: true
force_trust: true
- name: Remove language pltclu from database testdb
community.postgresql.postgresql_lang:
db: testdb
lang: pltclu
state: absent
- name: Remove language pltclu from database testdb and remove all dependencies
community.postgresql.postgresql_lang:
db: testdb
lang: pltclu
state: absent
cascade: true
- name: Remove language c from database testdb but ignore errors if something prevents the removal
community.postgresql.postgresql_lang:
db: testdb
lang: pltclu
state: absent
fail_on_drop: false
- name: In testdb change owner of mylang to alice
community.postgresql.postgresql_lang:
db: testdb
lang: mylang
owner: alice
Common return values are documented here, the following are the fields unique to this module:
Key | Description |
|---|---|
queries list / elements=string | List of executed queries. Returned: success Sample: |
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/postgresql/postgresql_lang_module.html