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 and landing tasks
- 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