diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartDAO.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartDAO.java new file mode 100644 index 00000000000..a0c52437c39 --- /dev/null +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartDAO.java @@ -0,0 +1,51 @@ +package org.openmetadata.catalog.jdbi3; + +import org.skife.jdbi.v2.sqlobject.Bind; +import org.skife.jdbi.v2.sqlobject.SqlQuery; +import org.skife.jdbi.v2.sqlobject.SqlUpdate; + +import java.util.List; + +public interface ChartDAO { + @SqlUpdate("INSERT INTO chart_entity (json) VALUES (:json)") + void insert(@Bind("json") String json); + + @SqlUpdate("UPDATE chart_entity SET json = :json where id = :id") + void update(@Bind("id") String id, @Bind("json") String json); + + @SqlQuery("SELECT json FROM chart_entity WHERE fullyQualifiedName = :name") + String findByFQN(@Bind("name") String name); + + @SqlQuery("SELECT json FROM chart_entity WHERE id = :id") + String findById(@Bind("id") String id); + + @SqlQuery("SELECT count(*) FROM chart_entity WHERE " + + "(fullyQualifiedName LIKE CONCAT(:fqnPrefix, '.%') OR :fqnPrefix IS NULL)") + int listCount(@Bind("fqnPrefix") String fqnPrefix); + + @SqlQuery( + "SELECT json FROM (" + + "SELECT fullyQualifiedName, json FROM chart_entity WHERE " + + "(fullyQualifiedName LIKE CONCAT(:fqnPrefix, '.%') OR :fqnPrefix IS NULL) AND " +// Filter by + // service name + "fullyQualifiedName < :before " + // Pagination by chart fullyQualifiedName + "ORDER BY fullyQualifiedName DESC " + // Pagination ordering by chart fullyQualifiedName + "LIMIT :limit" + + ") last_rows_subquery ORDER BY fullyQualifiedName") + List listBefore(@Bind("fqnPrefix") String fqnPrefix, @Bind("limit") int limit, + @Bind("before") String before); + + @SqlQuery("SELECT json FROM chart_entity WHERE " + + "(fullyQualifiedName LIKE CONCAT(:fqnPrefix, '.%') OR :fqnPrefix IS NULL) AND " + + "fullyQualifiedName > :after " + + "ORDER BY fullyQualifiedName " + + "LIMIT :limit") + List listAfter(@Bind("fqnPrefix") String fqnPrefix, @Bind("limit") int limit, + @Bind("after") String after); + + @SqlQuery("SELECT EXISTS (SELECT * FROM chart_entity WHERE id = :id)") + boolean exists(@Bind("id") String id); + + @SqlUpdate("DELETE FROM chart_entity WHERE id = :id") + int delete(@Bind("id") String id); +} diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartDAO3.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartDAO3.java new file mode 100644 index 00000000000..919fd69cb54 --- /dev/null +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartDAO3.java @@ -0,0 +1,51 @@ +package org.openmetadata.catalog.jdbi3; + +import org.jdbi.v3.sqlobject.customizer.Bind; +import org.jdbi.v3.sqlobject.statement.SqlQuery; +import org.jdbi.v3.sqlobject.statement.SqlUpdate; + +import java.util.List; + +public interface ChartDAO3 { + @SqlUpdate("INSERT INTO chart_entity (json) VALUES (:json)") + void insert(@Bind("json") String json); + + @SqlUpdate("UPDATE chart_entity SET json = :json where id = :id") + void update(@Bind("id") String id, @Bind("json") String json); + + @SqlQuery("SELECT json FROM chart_entity WHERE fullyQualifiedName = :name") + String findByFQN(@Bind("name") String name); + + @SqlQuery("SELECT json FROM chart_entity WHERE id = :id") + String findById(@Bind("id") String id); + + @SqlQuery("SELECT count(*) FROM chart_entity WHERE " + + "(fullyQualifiedName LIKE CONCAT(:fqnPrefix, '.%') OR :fqnPrefix IS NULL)") + int listCount(@Bind("fqnPrefix") String fqnPrefix); + + @SqlQuery( + "SELECT json FROM (" + + "SELECT fullyQualifiedName, json FROM chart_entity WHERE " + + "(fullyQualifiedName LIKE CONCAT(:fqnPrefix, '.%') OR :fqnPrefix IS NULL) AND " +// Filter by + // service name + "fullyQualifiedName < :before " + // Pagination by chart fullyQualifiedName + "ORDER BY fullyQualifiedName DESC " + // Pagination ordering by chart fullyQualifiedName + "LIMIT :limit" + + ") last_rows_subquery ORDER BY fullyQualifiedName") + List listBefore(@Bind("fqnPrefix") String fqnPrefix, @Bind("limit") int limit, + @Bind("before") String before); + + @SqlQuery("SELECT json FROM chart_entity WHERE " + + "(fullyQualifiedName LIKE CONCAT(:fqnPrefix, '.%') OR :fqnPrefix IS NULL) AND " + + "fullyQualifiedName > :after " + + "ORDER BY fullyQualifiedName " + + "LIMIT :limit") + List listAfter(@Bind("fqnPrefix") String fqnPrefix, @Bind("limit") int limit, + @Bind("after") String after); + + @SqlQuery("SELECT EXISTS (SELECT * FROM chart_entity WHERE id = :id)") + boolean exists(@Bind("id") String id); + + @SqlUpdate("DELETE FROM chart_entity WHERE id = :id") + int delete(@Bind("id") String id); +} diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepository.java index c069edc62d6..6081e565e43 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepository.java @@ -33,10 +33,7 @@ import org.openmetadata.catalog.util.EntityUtil.Fields; import org.openmetadata.catalog.util.JsonUtils; import org.openmetadata.catalog.util.RestUtil.PutResponse; import org.openmetadata.common.utils.CipherText; -import org.skife.jdbi.v2.sqlobject.Bind; import org.skife.jdbi.v2.sqlobject.CreateSqlObject; -import org.skife.jdbi.v2.sqlobject.SqlQuery; -import org.skife.jdbi.v2.sqlobject.SqlUpdate; import org.skife.jdbi.v2.sqlobject.Transaction; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -302,50 +299,6 @@ public abstract class ChartRepository { EntityUtil.removeFollower(relationshipDAO(), chartId, userId); } - public interface ChartDAO { - @SqlUpdate("INSERT INTO chart_entity (json) VALUES (:json)") - void insert(@Bind("json") String json); - - @SqlUpdate("UPDATE chart_entity SET json = :json where id = :id") - void update(@Bind("id") String id, @Bind("json") String json); - - @SqlQuery("SELECT json FROM chart_entity WHERE fullyQualifiedName = :name") - String findByFQN(@Bind("name") String name); - - @SqlQuery("SELECT json FROM chart_entity WHERE id = :id") - String findById(@Bind("id") String id); - - @SqlQuery("SELECT count(*) FROM chart_entity WHERE " + - "(fullyQualifiedName LIKE CONCAT(:fqnPrefix, '.%') OR :fqnPrefix IS NULL)") - int listCount(@Bind("fqnPrefix") String fqnPrefix); - - @SqlQuery( - "SELECT json FROM (" + - "SELECT fullyQualifiedName, json FROM chart_entity WHERE " + - "(fullyQualifiedName LIKE CONCAT(:fqnPrefix, '.%') OR :fqnPrefix IS NULL) AND " +// Filter by - // service name - "fullyQualifiedName < :before " + // Pagination by chart fullyQualifiedName - "ORDER BY fullyQualifiedName DESC " + // Pagination ordering by chart fullyQualifiedName - "LIMIT :limit" + - ") last_rows_subquery ORDER BY fullyQualifiedName") - List listBefore(@Bind("fqnPrefix") String fqnPrefix, @Bind("limit") int limit, - @Bind("before") String before); - - @SqlQuery("SELECT json FROM chart_entity WHERE " + - "(fullyQualifiedName LIKE CONCAT(:fqnPrefix, '.%') OR :fqnPrefix IS NULL) AND " + - "fullyQualifiedName > :after " + - "ORDER BY fullyQualifiedName " + - "LIMIT :limit") - List listAfter(@Bind("fqnPrefix") String fqnPrefix, @Bind("limit") int limit, - @Bind("after") String after); - - @SqlQuery("SELECT EXISTS (SELECT * FROM chart_entity WHERE id = :id)") - boolean exists(@Bind("id") String id); - - @SqlUpdate("DELETE FROM chart_entity WHERE id = :id") - int delete(@Bind("id") String id); - } - static class ChartEntityInterface implements EntityInterface { private final Chart chart; diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepository.java index c9e4766161e..e213389ba5c 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepository.java @@ -22,7 +22,6 @@ import org.openmetadata.catalog.entity.data.Chart; import org.openmetadata.catalog.entity.data.Dashboard; import org.openmetadata.catalog.entity.services.DashboardService; import org.openmetadata.catalog.exception.EntityNotFoundException; -import org.openmetadata.catalog.jdbi3.ChartRepository.ChartDAO; import org.openmetadata.catalog.jdbi3.DashboardServiceRepository.DashboardServiceDAO; import org.openmetadata.catalog.resources.dashboards.DashboardResource; import org.openmetadata.catalog.resources.dashboards.DashboardResource.DashboardList; diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/LineageRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/LineageRepository.java index 628a97186b3..fc13c3d0768 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/LineageRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/LineageRepository.java @@ -17,7 +17,6 @@ package org.openmetadata.catalog.jdbi3; import org.openmetadata.catalog.api.lineage.AddLineage; -import org.openmetadata.catalog.jdbi3.ChartRepository.ChartDAO; import org.openmetadata.catalog.jdbi3.DashboardRepository.DashboardDAO; import org.openmetadata.catalog.jdbi3.MetricsRepository.MetricsDAO; import org.openmetadata.catalog.jdbi3.TaskRepository.TaskDAO; diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepository.java index 13b3eecf865..76dfc0fef4c 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepository.java @@ -21,7 +21,6 @@ import org.openmetadata.catalog.entity.teams.Team; import org.openmetadata.catalog.entity.teams.User; import org.openmetadata.catalog.exception.CatalogExceptionMessage; import org.openmetadata.catalog.exception.EntityNotFoundException; -import org.openmetadata.catalog.jdbi3.ChartRepository.ChartDAO; import org.openmetadata.catalog.jdbi3.DashboardRepository.DashboardDAO; import org.openmetadata.catalog.jdbi3.MetricsRepository.MetricsDAO; import org.openmetadata.catalog.jdbi3.TaskRepository.TaskDAO; diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UsageRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UsageRepository.java index 5bf345ff1d9..735361bc37f 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UsageRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UsageRepository.java @@ -17,7 +17,6 @@ package org.openmetadata.catalog.jdbi3; import org.openmetadata.catalog.jdbi3.DashboardRepository.DashboardDAO; -import org.openmetadata.catalog.jdbi3.ChartRepository.ChartDAO; import org.openmetadata.catalog.jdbi3.TaskRepository.TaskDAO; import org.openmetadata.catalog.Entity; import org.openmetadata.catalog.jdbi3.MetricsRepository.MetricsDAO; diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepository.java index f0527c3d350..620d12208ce 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepository.java @@ -20,7 +20,6 @@ import com.fasterxml.jackson.core.JsonProcessingException; import org.openmetadata.catalog.entity.teams.Team; import org.openmetadata.catalog.entity.teams.User; import org.openmetadata.catalog.exception.CatalogExceptionMessage; -import org.openmetadata.catalog.jdbi3.ChartRepository.ChartDAO; import org.openmetadata.catalog.jdbi3.DashboardRepository.DashboardDAO; import org.openmetadata.catalog.jdbi3.MetricsRepository.MetricsDAO; import org.openmetadata.catalog.jdbi3.TaskRepository.TaskDAO; diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/util/EntityUtil.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/util/EntityUtil.java index 799f3446e51..9903c23bd75 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/util/EntityUtil.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/util/EntityUtil.java @@ -35,7 +35,7 @@ import org.openmetadata.catalog.entity.teams.Team; import org.openmetadata.catalog.entity.teams.User; import org.openmetadata.catalog.exception.CatalogExceptionMessage; import org.openmetadata.catalog.exception.EntityNotFoundException; -import org.openmetadata.catalog.jdbi3.ChartRepository.ChartDAO; +import org.openmetadata.catalog.jdbi3.ChartDAO; import org.openmetadata.catalog.jdbi3.DashboardRepository.DashboardDAO; import org.openmetadata.catalog.jdbi3.DatabaseDAO; import org.openmetadata.catalog.jdbi3.DatabaseDAO3;