Created table and partition table in Postgres DB using the following DDLs:
--root table / partitioned table
create table public.test_partition (id int , name varchar(20)) partition by range(id);
--partitions
create table public.test_partition_P00 partition of public.test_partition for values from (1) to (100);
create table public.test_partition_P01 partition of public.test_partition for values from (101) to (200);
With the above setup, these are the two issues which are faced :
When the replication slot is configured to read change data of root and partition tables, the table name received as part of the raw transaction is the partition name and not the actual root table name(partitioned table)For example :
Insert 1 record to public.test_partition
Sample transaction object received -> [ tableName : 'public.test_partition_P00', operation : ' INSERT' ..]
Query : Why is the received event containing the table name as a partition name(public.test partition_P00) rather than the root table name(public.test partition)?
If the slot is configured only with the partitioned root table(public.test_partition), change data is not captured.
Query : Why is the change data not captured in this scenario?
Created table and partition table in Postgres DB using the following DDLs:
With the above setup, these are the two issues which are faced :
When the replication slot is configured to read change data of root and partition tables, the table name received as part of the raw transaction is the partition name and not the actual root table name(partitioned table) For example :
If the slot is configured only with the partitioned root table(public.test_partition), change data is not captured. Query : Why is the change data not captured in this scenario?