# Ограничения и замечания

Следует иметь в виду следующие ограничения и замечания при использовании источника PostgreSQL:

## Ограничения и замечания, связанные со всеми задачами данных

* Имя базы данных не может содержать точку с запятой (;).

* Когда база данных находится в режиме горячего резерва, захват изменений не поддерживается.

* Перемещение нескольких таблиц с одинаковым именем, но разным регистром (например, `table1`, `TABLE1` и `Table1`) может привести к непредсказуемому результату и поэтому не поддерживается.

* Реплика для чтения PostgreSQL (в среде High Availability) поддерживается только для версий PostgreSQL 16 и выше.

* Обработка изменений в операциях TRUNCATE не поддерживается.

* Отсроченные ограничения не поддерживаются.

* Уникальные индексы с выражениями CASE не поддерживаются.

## Ограничения и замечания, связанные только с задачами промежуточного хранения

* Секционированные таблицы не поддерживаются.
* Принудительное восстановление после отказа — это функция Azure Database для PostgreSQL — Flexible Server Если принудительное восстановление после отказа происходит, когда совершается перемещение данных из Azure Database для PostgreSQL — Flexible Server, выполнение задачи будет остановлено, а наборы данных нужно создать заново.

## Ограничения и замечания, связанные с задачами репликации и промежуточного хранения

* Поддержка REPLICA IDENTITY:

  * Если используется FULL, исходные значения реплицированы во всех столбцах таблицы. Только при использовании этого режима можно переопределить целевой индекс.

  * Если используется DEFAULT, репликация поддерживается только в том случае, если таблица содержит первичный ключ. Кроме того, реплицируются только столбцы первичного ключа в исходном образе.

  * USING INDEX поддерживается только в том случае, если указанный уникальный индекс является единственным уникальным ограничением для таблицы (это означает, что у таблицы нет первичного ключа или какого-либо другого уникального индекса). В этом случае USING UNDEX поддерживается точно так же, как и значение DEFAULT, описанное выше.

  * Поскольку Qlik Talend Data Integration не проверяет значение REPLICA IDENTITY, следует проверить, чтобы определено правильное значение.

* Функция запуска «Начать обработку изменений с метки времени» не поддерживается.

* Обработка изменений в DDL таблицы [CREATE | ALTER | DROP] поддерживается, если изменения не вносятся во внутреннем блоке текста функции или процедуры или в других вложенных конструкциях.

  Например, следующее изменение не будет зарегистрировано:

  `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;`

  `$$;`

* Операция UPDATE, в которой участвуют два раздела (перемещение записи между разделами), реализует репликацию к целевой таблице с помощью операций DELETE и INSERT. Если включен режим репликации Store Changes, UPDATE будет отображаться как отдельные операции INSERT и DELETE в соответствующей таблице изменений.

* При использовании параметра [Параллельная загрузка](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/Table-settings-replication.htm), сегментация таблиц по разделам или подразделам не поддерживается.

* В процессе захвата изменений в исходные таблицы операция RENAME TABLE будет захватываться, только если она следует за операцией DML.

* Типы данных PostGIS не поддерживаются.

* Принудительное восстановление после отказа — это функция Azure Database для PostgreSQL — Flexible Server Если принудительное восстановление после отказа происходит в процессе репликации (перемещение) данных из Azure Database для PostgreSQL — Flexible Server, задача будет остановлена, и ее потребуется перезагрузить.

* Команда SQL MERGE, введенная в PostgreSQL 15.x, не сертифицирована.

## Неподдерживаемые типы данных

Следующие типы данных не поддерживаются:

* PostGIS;

* INT4MULTIRANGE;

* INT8MULTIRANGE;

* NUMMULTIRANGE;

* TSMULTIRANGE.