Supported technologies
======================

LiveCompare can connect to and compare data from a list of technologies,
including PostgreSQL, EDB Postgres Distributed (PGD, formerly known as
BDR), and Oracle.

LiveCompare has three kinds of connections:

- **Initial** (optional): Used to fetch metadata about pglogical or PGD
  connections. Required if data connections are pglogical or PGD, and if
  ``replication_sets`` or ``node_name`` settings are used. Requires
  ``logical_replication_mode = pglogical`` or
  ``logical_replication_mode = bdr`` . A pglogical- or PGD-enabled
  database is required.

- **Data**: The actual database connection that the tool connects to to
  perform data comparison. The first connection in the list is used to
  solve ``Table Filter`` and ``Row Filter`` , and is also used with the
  ``Initial Connection`` to gather information about PGD nodes. If
  ``logical_replication_mode = bdr`` and ``all_bdr_nodes = on`` , then
  LiveCompare considers all PGD nodes that are part of the same PGD
  cluster as the ``Initial Connection`` . In this case, you don’t need
  to define data connections individually. The fix can be potentially
  applied in all data connections, as comparison and consensus decisions
  work per row.

- **Output** (mandatory): Where LiveCompare creates a schema called
  ``livecompare`` , some tables, and views. This is required to keep
  progress and reporting data about comparison sessions. It must be a
  PostgreSQL or 2ndQPostgres connection.

The table shows versions and details about supported technologies and
the context in which you can use them in LiveCompare.

.. csv-table::
  :header: Technology,Versions,Possible connections
  :widths: 12,25,15
  :align: left
  :class: longtable

  PostgreSQL,"10¹, 11¹, 12¹, 13, 14, 15, 16 and 17",Data and output
  EDB Postgres Extended (PGE),"10¹, 11¹, 12¹, 13, 14, 15, 16 and 17",Data and output
  EDB Postgres Advanced Server (EPAS),"11¹, 12¹, 13, 14, 15, 16 and 17",Data and output
  pglogical,2 and 3,"Initial, data, and output"
  EDB Postgres Distributed (PGD),"1, 2, 3, 4, and 5","Initial, data, and output"
  Oracle,"11g, 12c, 18c, 19c, and 21c",A single data connection

¹ LiveCompare only supports the use of LiveCompare with older versions
of Postgres (PostgreSQL, EDB Postgres Extended, or EDB Postgres Advanced
Server) that have reached end of life in support of performing a major
version upgrade to a newer supported version of Postgres.

..  Note::
   EDB no longer tests LiveCompare with Oracle 10g. As such, it's no longer on the list of Oracle versions officially supported with LiveCompare. Oracle 10g was previously supported and is expected to continue to work in most cases. However, some limitations may exist. One known limitation is that LiveCompare requires the `comparison_algorithm`  parameter to be set to `full_row`  (for example, `comparison_algorithm = full_row` ).

PgBouncer support
-----------------

You can use LiveCompare against nodes through PgBouncer. However, you
must use ``pool_mode=session`` because LiveCompare uses prepared
statements on PostgreSQL, which isn’t possible when ``pool_mode`` is
either ``transaction`` or ``statement`` .
