country

Country data type, ISO 3166-1

Overview

PackageVersionCategoryLicenseLanguage
pg_country0.0.3TYPEPostgreSQLC
IDExtensionBinLibLoadCreateTrustRelocSchema
3600countryNoYesNoYesNoYes-
Relatedl10n_table_dependent_extension pg_xenophile currency geoip icu_ext prefix semver unit

Version

TypeRepoVersionPG VerPackageDeps
EXTPIGSTY0.0.31817161514pg_country-
RPMPIGSTY0.0.31817161514pg_country_$v-
DEBPIGSTY0.0.31817161514postgresql-$v-pg-country-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
d12.aarch64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
d13.x86_64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
d13.aarch64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
u22.x86_64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
u22.aarch64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
u24.x86_64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
u24.aarch64
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3
PIGSTY 0.0.3

Build

You can build the RPM / DEB packages for pg_country using pig build:

pig build pkg pg_country         # build RPM / DEB packages

Install

You can install pg_country directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:

pig repo add pgsql -u          # Add repo and update cache

Install the extension using pig or apt/yum/dnf:

pig install pg_country;          # Install for current active PG version
pig ext install -y pg_country -v 18  # PG 18
pig ext install -y pg_country -v 17  # PG 17
pig ext install -y pg_country -v 16  # PG 16
pig ext install -y pg_country -v 15  # PG 15
pig ext install -y pg_country -v 14  # PG 14
dnf install -y pg_country_18       # PG 18
dnf install -y pg_country_17       # PG 17
dnf install -y pg_country_16       # PG 16
dnf install -y pg_country_15       # PG 15
dnf install -y pg_country_14       # PG 14
apt install -y postgresql-18-pg-country   # PG 18
apt install -y postgresql-17-pg-country   # PG 17
apt install -y postgresql-16-pg-country   # PG 16
apt install -y postgresql-15-pg-country   # PG 15
apt install -y postgresql-14-pg-country   # PG 14

Create Extension:

CREATE EXTENSION country;

Usage

country: ISO 3166-1 alpha-2 country code type

The country extension provides an enumerated data type for ISO 3166-1 alpha-2 country codes with minimal storage overhead.

CREATE EXTENSION country;

CREATE TABLE locations (
    id    serial PRIMARY KEY,
    code  country
);

INSERT INTO locations VALUES (1, 'US'), (2, 'GB'), (3, 'FR');

SELECT * FROM locations ORDER BY code;

Data Type

The country type restricts values to valid ISO 3166-1 alpha-2 codes (two-letter country designations like US, GB, FR, DE, etc.). Invalid codes are rejected on input.

Operators

Standard comparison operators are supported: =, <>, <, >, <=, >=.

Index Support

Both B-tree and hash index operator classes are provided for efficient querying and sorting on country columns.


Last Modified 2026-03-12: add pg extension catalog (95749bf)