From 8da6ac39a76d57166d6cb45721afc867c67b175a Mon Sep 17 00:00:00 2001 From: Mathieu Gabelle Date: Wed, 23 Oct 2024 08:58:27 +0200 Subject: [PATCH] fix: javadoc issue with lombok builder as parameter --- .../plugin/jdbc/AbstractJdbcBaseQuery.java | 30 --------------- .../plugin/jdbc/AbstractJdbcQueries.java | 37 ++++++++++++++++--- .../kestra/plugin/jdbc/AbstractJdbcQuery.java | 37 +++++++++++++++++-- 3 files changed, 65 insertions(+), 39 deletions(-) diff --git a/plugin-jdbc/src/main/java/io/kestra/plugin/jdbc/AbstractJdbcBaseQuery.java b/plugin-jdbc/src/main/java/io/kestra/plugin/jdbc/AbstractJdbcBaseQuery.java index df606585..c261e9cc 100644 --- a/plugin-jdbc/src/main/java/io/kestra/plugin/jdbc/AbstractJdbcBaseQuery.java +++ b/plugin-jdbc/src/main/java/io/kestra/plugin/jdbc/AbstractJdbcBaseQuery.java @@ -92,36 +92,6 @@ protected String[] tags() { }; } - protected long populateOutputFromResultSet(RunContext runContext, Statement stmt, ResultSet rs, Output.OutputBuilder output, - AbstractCellConverter cellConverter, Connection conn) throws Exception { - long size = 0L; - switch (this.getFetchType()) { - case FETCH_ONE -> { - size = 1L; - output - .row(fetchResult(rs, cellConverter, conn)) - .size(size); - } - case STORE -> { - File tempFile = runContext.workingDir().createTempFile(".ion").toFile(); - try (BufferedWriter fileWriter = new BufferedWriter(new FileWriter(tempFile), FileSerde.BUFFER_SIZE)) { - size = fetchToFile(stmt, rs, fileWriter, cellConverter, conn); - } - output - .uri(runContext.storage().putFile(tempFile)) - .size(size); - } - case FETCH -> { - List> maps = new ArrayList<>(); - size = fetchResults(stmt, rs, maps, cellConverter, conn); - output - .rows(maps) - .size(size); - } - } - return size; - } - protected Map fetchResult(ResultSet rs, AbstractCellConverter cellConverter, Connection connection) throws SQLException { if (rs.next()) { return mapResultSetToMap(rs, cellConverter, connection); diff --git a/plugin-jdbc/src/main/java/io/kestra/plugin/jdbc/AbstractJdbcQueries.java b/plugin-jdbc/src/main/java/io/kestra/plugin/jdbc/AbstractJdbcQueries.java index d7c7fb84..43b47314 100644 --- a/plugin-jdbc/src/main/java/io/kestra/plugin/jdbc/AbstractJdbcQueries.java +++ b/plugin-jdbc/src/main/java/io/kestra/plugin/jdbc/AbstractJdbcQueries.java @@ -4,15 +4,16 @@ import io.kestra.core.models.executions.metrics.Counter; import io.kestra.core.models.property.Property; import io.kestra.core.runners.RunContext; +import io.kestra.core.serializers.FileSerde; import lombok.*; import lombok.experimental.SuperBuilder; import org.slf4j.Logger; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; import java.sql.*; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.Consumer; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -62,7 +63,33 @@ public AbstractJdbcQueries.MultiQueryOutput run(RunContext runContext) throws Ex //When sql is not a select statement skip output creation if(rs != null) { AbstractJdbcQuery.Output.OutputBuilder output = AbstractJdbcQuery.Output.builder(); - totalSize += populateOutputFromResultSet(runContext, stmt, rs, output, cellConverter, conn); + //Populate result fro result set + long size = 0L; + switch (this.getFetchType()) { + case FETCH_ONE -> { + size = 1L; + output + .row(fetchResult(rs, cellConverter, conn)) + .size(size); + } + case STORE -> { + File tempFile = runContext.workingDir().createTempFile(".ion").toFile(); + try (BufferedWriter fileWriter = new BufferedWriter(new FileWriter(tempFile), FileSerde.BUFFER_SIZE)) { + size = fetchToFile(stmt, rs, fileWriter, cellConverter, conn); + } + output + .uri(runContext.storage().putFile(tempFile)) + .size(size); + } + case FETCH -> { + List> maps = new ArrayList<>(); + size = fetchResults(stmt, rs, maps, cellConverter, conn); + output + .rows(maps) + .size(size); + } + } + totalSize += size; outputList.add(output.build()); } } diff --git a/plugin-jdbc/src/main/java/io/kestra/plugin/jdbc/AbstractJdbcQuery.java b/plugin-jdbc/src/main/java/io/kestra/plugin/jdbc/AbstractJdbcQuery.java index 730fee8d..fb1187ab 100644 --- a/plugin-jdbc/src/main/java/io/kestra/plugin/jdbc/AbstractJdbcQuery.java +++ b/plugin-jdbc/src/main/java/io/kestra/plugin/jdbc/AbstractJdbcQuery.java @@ -3,6 +3,7 @@ import io.kestra.core.models.executions.metrics.Counter; import io.kestra.core.models.tasks.common.FetchType; import io.kestra.core.runners.RunContext; +import io.kestra.core.serializers.FileSerde; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.NoArgsConstructor; @@ -10,9 +11,15 @@ import lombok.experimental.SuperBuilder; import org.slf4j.Logger; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; @SuperBuilder @ToString @@ -49,12 +56,34 @@ public AbstractJdbcBaseQuery.Output run(RunContext runContext) throws Exception if (isResult) { try(ResultSet rs = stmt.getResultSet()) { - size = populateOutputFromResultSet(runContext, stmt, rs, output, cellConverter, conn); + //Populate result fro result set + switch (this.getFetchType()) { + case FETCH_ONE -> { + size = 1L; + output + .row(fetchResult(rs, cellConverter, conn)) + .size(size); + } + case STORE -> { + File tempFile = runContext.workingDir().createTempFile(".ion").toFile(); + try (BufferedWriter fileWriter = new BufferedWriter(new FileWriter(tempFile), FileSerde.BUFFER_SIZE)) { + size = fetchToFile(stmt, rs, fileWriter, cellConverter, conn); + } + output + .uri(runContext.storage().putFile(tempFile)) + .size(size); + } + case FETCH -> { + List> maps = new ArrayList<>(); + size = fetchResults(stmt, rs, maps, cellConverter, conn); + output + .rows(maps) + .size(size); + } + } } } - - - runContext.metric(Counter.of("fetch.size", size, this.tags())); + runContext.metric(Counter.of("fetch.size", size, this.tags())); return output.build(); } }