From 2ec2dc4a42d2195bce0d7e188e85868c504de589 Mon Sep 17 00:00:00 2001 From: Kanthi Subramanian Date: Wed, 25 Sep 2024 18:50:53 -0400 Subject: [PATCH 1/2] Added integration test to include postgres custom type --- ...beziumEmbeddedPostgresPgoutputDockerIT.java | 2 +- .../src/test/resources/init_postgres.sql | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/sink-connector-lightweight/src/test/java/com/altinity/clickhouse/debezium/embedded/ClickHouseDebeziumEmbeddedPostgresPgoutputDockerIT.java b/sink-connector-lightweight/src/test/java/com/altinity/clickhouse/debezium/embedded/ClickHouseDebeziumEmbeddedPostgresPgoutputDockerIT.java index d09e6da0c..fe1e650d6 100644 --- a/sink-connector-lightweight/src/test/java/com/altinity/clickhouse/debezium/embedded/ClickHouseDebeziumEmbeddedPostgresPgoutputDockerIT.java +++ b/sink-connector-lightweight/src/test/java/com/altinity/clickhouse/debezium/embedded/ClickHouseDebeziumEmbeddedPostgresPgoutputDockerIT.java @@ -58,7 +58,7 @@ public Properties getProperties() throws Exception { Properties properties = getDefaultProperties(postgreSQLContainer, clickHouseContainer); properties.put("plugin.name", "pgoutput" ); properties.put("plugin.path", "/" ); - properties.put("table.include.list", "public.tm" ); + properties.put("table.include.list", "public.tm, public.storages" ); properties.put("topic.prefix", "test-server" ); properties.put("slot.max.retries", "6" ); properties.put("slot.retry.delay.ms", "5000" ); diff --git a/sink-connector-lightweight/src/test/resources/init_postgres.sql b/sink-connector-lightweight/src/test/resources/init_postgres.sql index 79a07d63e..7c7903b07 100644 --- a/sink-connector-lightweight/src/test/resources/init_postgres.sql +++ b/sink-connector-lightweight/src/test/resources/init_postgres.sql @@ -165,3 +165,21 @@ INSERT INTO protocol_test VALUES ('1778432', '21481203', 'Edward V prisoners Pe create schema public2; set schema 'public2'; CREATE TABLE "tm2" (id uuid DEFAULT gen_random_uuid() NOT NULL PRIMARY KEY, secid uuid, acc_id uuid); + +CREATE TYPE public."storage_status_type" AS ENUM ( + 'VISIBLE', + 'INVISIBLE', + 'DELETED', + 'NOT_INITIALIZED'); + +CREATE TABLE public.storages ( + id uuid NOT NULL, + company uuid NULL, + status public.storage_status_type NOT NULL, + region uuid NULL, + delivery_region _uuid NOT NULL, + created_at timestamp NOT NULL DEFAULT now(), + updated_at timestamp NULL +); + +insert into storages (id, company, status, region, delivery_region, created_at, updated_at) values ('a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'VISIBLE', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', now(), now()); \ No newline at end of file From 4ad97a500289439a5ddad80df288811238a5a9b3 Mon Sep 17 00:00:00 2001 From: Kanthi Subramanian Date: Wed, 25 Sep 2024 19:30:32 -0400 Subject: [PATCH 2/2] Added delivery_type --- ...eziumEmbeddedPostgresPgoutputDockerIT.java | 5 +- .../src/test/resources/init_postgres.sql | 52 +++++++++++++------ 2 files changed, 37 insertions(+), 20 deletions(-) diff --git a/sink-connector-lightweight/src/test/java/com/altinity/clickhouse/debezium/embedded/ClickHouseDebeziumEmbeddedPostgresPgoutputDockerIT.java b/sink-connector-lightweight/src/test/java/com/altinity/clickhouse/debezium/embedded/ClickHouseDebeziumEmbeddedPostgresPgoutputDockerIT.java index fe1e650d6..4c9d057f9 100644 --- a/sink-connector-lightweight/src/test/java/com/altinity/clickhouse/debezium/embedded/ClickHouseDebeziumEmbeddedPostgresPgoutputDockerIT.java +++ b/sink-connector-lightweight/src/test/java/com/altinity/clickhouse/debezium/embedded/ClickHouseDebeziumEmbeddedPostgresPgoutputDockerIT.java @@ -42,7 +42,7 @@ public class ClickHouseDebeziumEmbeddedPostgresPgoutputDockerIT { .withExposedPorts(8123); @Container - public static PostgreSQLContainer postgreSQLContainer = new PostgreSQLContainer<>("postgres:latest") + public static PostgreSQLContainer postgreSQLContainer = new PostgreSQLContainer<>("postgres:14.7") .withInitScript("init_postgres.sql") .withDatabaseName("public") .withUsername("root") @@ -58,12 +58,11 @@ public Properties getProperties() throws Exception { Properties properties = getDefaultProperties(postgreSQLContainer, clickHouseContainer); properties.put("plugin.name", "pgoutput" ); properties.put("plugin.path", "/" ); - properties.put("table.include.list", "public.tm, public.storages" ); properties.put("topic.prefix", "test-server" ); properties.put("slot.max.retries", "6" ); properties.put("slot.retry.delay.ms", "5000" ); properties.put("database.allowPublicKeyRetrieval", "true" ); - properties.put("table.include.list", "public.tm,public.tm2" ); + properties.put("table.include.list", "public.tm,public.tm2,public.storages" ); return properties; } diff --git a/sink-connector-lightweight/src/test/resources/init_postgres.sql b/sink-connector-lightweight/src/test/resources/init_postgres.sql index 7c7903b07..0565e380a 100644 --- a/sink-connector-lightweight/src/test/resources/init_postgres.sql +++ b/sink-connector-lightweight/src/test/resources/init_postgres.sql @@ -69,6 +69,41 @@ NULL, 'IDR' ); +CREATE TYPE public."storage_status_type" AS ENUM ( + 'VISIBLE', + 'INVISIBLE', + 'DELETED', + 'NOT_INITIALIZED'); + +CREATE TYPE public."delivery_type_type" AS ENUM ( + 'PICKUP', + 'DELIVERY'); + + CREATE TYPE public."_delivery_type_type" ( + INPUT = array_in, + OUTPUT = array_out, + RECEIVE = array_recv, + SEND = array_send, + ANALYZE = array_typanalyze, + ALIGNMENT = 4, + STORAGE = any, + CATEGORY = A, + ELEMENT = public."delivery_type_type", + DELIMITER = ','); + +CREATE TABLE public.storages ( + id uuid NOT NULL, + company uuid NULL, + status public.storage_status_type NOT NULL, + region uuid NULL, + delivery_region uuid NOT NULL, + created_at timestamp NOT NULL DEFAULT now(), + updated_at timestamp NULL +); + +insert into public.storages (id, company, status, region, delivery_region, created_at, updated_at) values ('a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'VISIBLE', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', now(), now()); + + CREATE TABLE protocol_test ( id bigserial NOT NULL, @@ -166,20 +201,3 @@ create schema public2; set schema 'public2'; CREATE TABLE "tm2" (id uuid DEFAULT gen_random_uuid() NOT NULL PRIMARY KEY, secid uuid, acc_id uuid); -CREATE TYPE public."storage_status_type" AS ENUM ( - 'VISIBLE', - 'INVISIBLE', - 'DELETED', - 'NOT_INITIALIZED'); - -CREATE TABLE public.storages ( - id uuid NOT NULL, - company uuid NULL, - status public.storage_status_type NOT NULL, - region uuid NULL, - delivery_region _uuid NOT NULL, - created_at timestamp NOT NULL DEFAULT now(), - updated_at timestamp NULL -); - -insert into storages (id, company, status, region, delivery_region, created_at, updated_at) values ('a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'VISIBLE', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', now(), now()); \ No newline at end of file