From b8ea10539595debb8e0fcdf4b45fddc274760d69 Mon Sep 17 00:00:00 2001 From: sonika-shah <58761340+sonika-shah@users.noreply.github.com> Date: Fri, 17 Jan 2025 14:44:14 +0530 Subject: [PATCH] Fix - 19359 : Get only non-deleted entities in export (#19396) --- .../org/openmetadata/service/jdbi3/EntityDAO.java | 13 +++++++++++++ .../service/jdbi3/EntityRepository.java | 10 +++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityDAO.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityDAO.java index 4816f5f09b8..2fcbfb97c28 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityDAO.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityDAO.java @@ -341,6 +341,14 @@ public interface EntityDAO { @Bind("startHash") String startHash, @Bind("endHash") String endHash); + @SqlQuery("SELECT json FROM AND BETWEEN :startHash AND :endHash ") + List listAll( + @Define("table") String table, + @Define("cond") String cond, + @Define("nameHashColumn") String nameHashColumn, + @Bind("startHash") String startHash, + @Bind("endHash") String endHash); + @SqlQuery("SELECT json FROM
LIMIT :limit OFFSET :offset") List listAfterWithOffset( @Define("table") String table, @Bind("limit") int limit, @Bind("offset") int offset); @@ -499,6 +507,11 @@ public interface EntityDAO { return listAll(getTableName(), getNameHashColumn(), startHash, endHash); } + default List listAll(String startHash, String endHash, ListFilter filter) { + // Quoted name is stored in fullyQualifiedName column and not in the name column + return listAll(getTableName(), filter.getCondition(), getNameHashColumn(), startHash, endHash); + } + default List listAfterWithOffset(int limit, int offset) { // No ordering return listAfterWithOffset(getTableName(), limit, offset); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java index 036eee1f3d6..b52cfec9d0f 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java @@ -700,7 +700,8 @@ public abstract class EntityRepository { } public final List listAllForCSV(Fields fields, String parentFqn) { - List jsons = listAllByParentFqn(parentFqn); + ListFilter filter = new ListFilter(Include.NON_DELETED); + List jsons = listAllByParentFqn(parentFqn, filter); List entities = new ArrayList<>(); setFieldsInBulk(jsons, fields, entities); return entities; @@ -725,6 +726,13 @@ public abstract class EntityRepository { return dao.listAll(startHash, endHash); } + public List listAllByParentFqn(String parentFqn, ListFilter filter) { + String fqnPrefixHash = FullyQualifiedName.buildHash(parentFqn); + String startHash = fqnPrefixHash + ".00000000000000000000000000000000"; + String endHash = fqnPrefixHash + ".ffffffffffffffffffffffffffffffff"; + return dao.listAll(startHash, endHash, filter); + } + public ResultList listAfter( UriInfo uriInfo, Fields fields, ListFilter filter, int limitParam, String after) { int total = dao.listCount(filter);