Skip to main content Skip to complementary content

Limitations and considerations

You should be aware of the following limitations and considerations when using a PostgreSQL source:

Limitations and considerations for all data tasks

  • The database name cannot include a semi-colon (;).
  • Capturing changes while the database is in Hot Standby mode is not supported.
  • To capture changes from a secondary database, read/write privileges must be configured on the database. Due to the write permission requirement, the PostgreSQL read replica (in a High Availability environment) is not supported.

    For information about the read-write permission, see Capturing changes from a customer-installed PostgreSQL database.

  • Moving of multiple tables with the same name but a different case (e.g. table1, TABLE1 and Table1) may cause unpredictable behavior and is therefore not supported.
  • Change processing of TRUNCATE operations is not supported.
  • Deferred Constraints are not supported.
  • The default configuration of Replica identity is supported only.

    For more information about Replica identity, see https://www.postgresql.org/docs/10/logical-replication-publication.html

  • Unique Indexes with CASE expressions are not supported.

Limitations and considerations for landing tasks only

  • Partitioned tables are not supported.
  • Forced failover is a feature of Azure Database for PostgreSQL – Flexible Server. If forced failover occurs when moving data from Azure Database for PostgreSQL – Flexible Server, the task will stop and the datasets will need to be recreated.

Limitations and considerations for replication tasks only

  • Both the source table and the corresponding target table must have an identical Primary Key. In the event that one of the tables does not have a Primary Key, the result of DELETE and UPDATE record operations will be unpredictable.
  • The “Start Process Changes from Timestamp” run option is not supported.
  • Moving of the Before Image is not supported.
  • Change processing of [CREATE | ALTER | DROP] table DDLs are supported unless they are held in an inner function/procedure body block or in other nested constructs.

    For example, the following change will not be captured:

    CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void

    LANGUAGE plpgsql

    AS $$

    BEGIN

    create table attu.distributors1(did serial PRIMARY KEY,name varchar(40) NOT NULL);

    END;

    $$;

  • When capturing changes to source tables, a RENAME TABLE operation will be captured only if it is preceded by a DML operation.

  • PostGIS data types are not supported.

  • Forced failover is a feature of Azure Database for PostgreSQL – Flexible Server. If forced failover occurs when moving data from Azure Database for PostgreSQL – Flexible Server, the task will stop and will need to be reloaded.

  • The SQL MERGE command introduced in PostgreSQL 15.x has not been certified.

Unsupported data types

The following data types are not supported:

  • PostGIS

  • INT4MULTIRANGE
  • INT8MULTIRANGE
  • NUMMULTIRANGE
  • TSMULTIRANGE

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – let us know how we can improve!