From 07a10f3797de42fe22cbc4ddf7597c09c5307036 Mon Sep 17 00:00:00 2001 From: YannC <37600690+Skraye@users.noreply.github.com> Date: Mon, 23 Sep 2024 13:51:04 +0200 Subject: [PATCH] fix(jdbc): compatible with Postgres 14 (#5019) close #4825 --- .../postgres/PostgresFlowTopologyRepository.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/jdbc-postgres/src/main/java/io/kestra/repository/postgres/PostgresFlowTopologyRepository.java b/jdbc-postgres/src/main/java/io/kestra/repository/postgres/PostgresFlowTopologyRepository.java index 8c6097a508..91c52024c6 100644 --- a/jdbc-postgres/src/main/java/io/kestra/repository/postgres/PostgresFlowTopologyRepository.java +++ b/jdbc-postgres/src/main/java/io/kestra/repository/postgres/PostgresFlowTopologyRepository.java @@ -2,9 +2,13 @@ import io.kestra.core.models.topologies.FlowTopology; import io.kestra.jdbc.repository.AbstractJdbcFlowTopologyRepository; +import io.kestra.jdbc.repository.AbstractJdbcRepository; import jakarta.inject.Inject; import jakarta.inject.Named; import jakarta.inject.Singleton; +import org.jooq.DMLQuery; +import org.jooq.DSLContext; +import org.jooq.Record; @Singleton @PostgresRepositoryEnabled @@ -13,4 +17,14 @@ public class PostgresFlowTopologyRepository extends AbstractJdbcFlowTopologyRepo public PostgresFlowTopologyRepository(@Named("flowtopologies") PostgresRepository repository) { super(repository); } + + @Override + protected DMLQuery buildMergeStatement(DSLContext context, FlowTopology flowTopology) { + return context.insertInto(this.jdbcRepository.getTable()) + .set(AbstractJdbcRepository.field("key"), this.jdbcRepository.key(flowTopology)) + .set(this.jdbcRepository.persistFields(flowTopology)) + .onConflict(AbstractJdbcRepository.field("key")) + .doUpdate() + .set(this.jdbcRepository.persistFields(flowTopology)); + } }