Fix - 19359 : Get only non-deleted entities in export (#19396)

This commit is contained in:
sonika-shah 2025-01-17 14:44:14 +05:30 committed by GitHub
parent 7d21a8295b
commit b8ea105395
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 1 deletions

View File

@ -341,6 +341,14 @@ public interface EntityDAO<T extends EntityInterface> {
@Bind("startHash") String startHash,
@Bind("endHash") String endHash);
@SqlQuery("SELECT json FROM <table> <cond> AND <nameHashColumn> BETWEEN :startHash AND :endHash ")
List<String> 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 <table> LIMIT :limit OFFSET :offset")
List<String> listAfterWithOffset(
@Define("table") String table, @Bind("limit") int limit, @Bind("offset") int offset);
@ -499,6 +507,11 @@ public interface EntityDAO<T extends EntityInterface> {
return listAll(getTableName(), getNameHashColumn(), startHash, endHash);
}
default List<String> 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<String> listAfterWithOffset(int limit, int offset) {
// No ordering
return listAfterWithOffset(getTableName(), limit, offset);

View File

@ -700,7 +700,8 @@ public abstract class EntityRepository<T extends EntityInterface> {
}
public final List<T> listAllForCSV(Fields fields, String parentFqn) {
List<String> jsons = listAllByParentFqn(parentFqn);
ListFilter filter = new ListFilter(Include.NON_DELETED);
List<String> jsons = listAllByParentFqn(parentFqn, filter);
List<T> entities = new ArrayList<>();
setFieldsInBulk(jsons, fields, entities);
return entities;
@ -725,6 +726,13 @@ public abstract class EntityRepository<T extends EntityInterface> {
return dao.listAll(startHash, endHash);
}
public List<String> 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<T> listAfter(
UriInfo uriInfo, Fields fields, ListFilter filter, int limitParam, String after) {
int total = dao.listCount(filter);