Declarative partitioning

A method for partitioning tables

Declarative partitioning is a partitioning method for dividing a table into partitions

Declarative partitioning has been available since PostgreSQL 10.


Traditionally, PostgreSQL provided partitioning functionality via inheritance partitioning, which leveraged PostgreSQL's table inheritance capabilty. However this method has several limitations; in particular setup and maintenance is a much more manual process.

Declarative partitioning, as the name implies, provides a way of explicitly declaring a table with partitions, and currently provides the following partitioning methods:

  • Range Partitioning
  • List Partitioning
  • Hash Partitioning (PostgreSQL 11 and later)

A partitioned table created with declarative partitioning consists of a top-level partitioned table and one or more partitions, which can be normal tables or foreign tables.


Following configuration parameters influence declarative partitioning usage:

System functions

Following system functions are related to declarative partitioning usage:

Change history