DDL replication
===============

DDL stands for data definition language, the subset of the SQL language
that creates, alters, and drops database objects.

PGD provides automatic DDL replication, which makes certain DDL changes
easier. With automatic replication, you don’t have to manually
distribute the DDL change to all nodes and ensure that they’re
consistent.

This section looks at how DDL replication is handled in PGD.

- :ref:`DDL overview <DDL overview>`  provides a general outline of what PGD’s DDL replication
  is capable of.

- :ref:`DDL replication options <DDL replication options>`  looks at the options for controlling replication.

- :ref:`DDL locking details <DDL locking details>`  examines how DDL replication uses locks to safely
  replicate DDL.

- :ref:`Managing DDL with PGD replication <Managing DDL with PGD replication>`  gives best practice advice on why and how to limit the
  impact of DDL changes so they don’t overly affect the smooth running
  of the cluster.

- :ref:`DDL command handling matrix <DDL command handling matrix>`  is a reference to all DDL commands, the locks they take,
  and any special handling involved in their use and execution.

- :ref:`DDL and role manipulation statements <DDL and role manipulation statements>`  notes issues around manipulating roles over multiple
  databases in a cluster.

- :ref:`Workarounds for DDL restrictions <Workarounds for DDL restrictions>`  gives a range of options for handling situations where
  DDL replication may present restrictions, such as altering columns,
  constraints, and types.

- :ref:`PGD functions that behave like DDL <PGD functions that behave like DDL>`  details the PGD functions that behave like DDL and
  therefore behave in a similar way and are subject to similar
  restrictions.

.. toctree::
  :maxdepth: 3

  Using--ddl--ddl-overview
  Using--ddl--ddl-replication-options
  Using--ddl--ddl-locking
  Using--ddl--ddl-managing-with-pgd-replication
  Using--ddl--ddl-command-handling
  Using--ddl--ddl-role-manipulation
  Using--ddl--ddl-workarounds
  Using--ddl--ddl-pgd-functions-like-ddl
