Installing Procedural Languages and Package Extensions for HAWQ

This topic describes how to install procedural language and package extensions in HAWQ.

Supported Procedural Languages

HAWQ includes support for the following procedural languages:

  • PL/pgSQL
  • PL/Java
  • PL/Perl
  • PL/Python
  • PL/R

The PL/pgSQL, PL/Java, PL/Perl, and PL/Python procedural languages are embedded within the HAWQ distribution (or within your HAWQ build if you choose to enable them as build options.)

PL/pgSQL is automatically registered in all HAWQ databases. To use the other procedural languages, you simply register the PL for each database in which you want to use the language. See Using PL/Python, Using PL/Perl, and Using PL/Java for language registration instructions.

The PL/R procedural language must be explicitly installed before use. See Installing PL/R for installation and language registration instructions for PL/R.

Note: If you enable a procedural language or extension in the template1 database, any new database that you create in HAWQ will support the procedural language. Use this option only if you are absolutely certain you want to enable the procedural language or extension in all new databases.

Supported Extensions


You can enable the pgcrypto package extension for use with HAWQ. See Using Cryptographic Functions for instructions on how to enable this extension for use in the databases in your HAWQ cluster.


To install and activate MADLib for use in your HAWQ cluster, download the MADLib package for Pivotal HDB available on the Pivotal Network. Then, follow the instructions on the following Wiki site.