diff --git a/engine/schema/src/main/java/com/cloud/host/dao/HostDaoImpl.java b/engine/schema/src/main/java/com/cloud/host/dao/HostDaoImpl.java index 75304c1b274..e931f651571 100644 --- a/engine/schema/src/main/java/com/cloud/host/dao/HostDaoImpl.java +++ b/engine/schema/src/main/java/com/cloud/host/dao/HostDaoImpl.java @@ -165,7 +165,6 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao HostTypeCountSearch = createSearchBuilder(); HostTypeCountSearch.and("type", HostTypeCountSearch.entity().getType(), SearchCriteria.Op.EQ); - HostTypeCountSearch.and("removed", HostTypeCountSearch.entity().getRemoved(), SearchCriteria.Op.NULL); HostTypeCountSearch.done(); HostTypeZoneCountSearch = createSearchBuilder(); diff --git a/engine/schema/src/main/java/com/cloud/network/as/dao/AutoScaleVmGroupVmMapDaoImpl.java b/engine/schema/src/main/java/com/cloud/network/as/dao/AutoScaleVmGroupVmMapDaoImpl.java index 24a3c1013cf..410d40bc971 100644 --- a/engine/schema/src/main/java/com/cloud/network/as/dao/AutoScaleVmGroupVmMapDaoImpl.java +++ b/engine/schema/src/main/java/com/cloud/network/as/dao/AutoScaleVmGroupVmMapDaoImpl.java @@ -33,7 +33,7 @@ public class AutoScaleVmGroupVmMapDaoImpl extends GenericDaoBase sc = createSearchCriteria(); sc.addAnd("vmGroupId", SearchCriteria.Op.EQ, vmGroupId); - return getCount(sc); + return getCountIncludingRemoved(sc); } @Override diff --git a/engine/schema/src/main/java/com/cloud/vm/dao/DomainRouterDaoImpl.java b/engine/schema/src/main/java/com/cloud/vm/dao/DomainRouterDaoImpl.java index 17f0ffdeff4..135f96f28f3 100644 --- a/engine/schema/src/main/java/com/cloud/vm/dao/DomainRouterDaoImpl.java +++ b/engine/schema/src/main/java/com/cloud/vm/dao/DomainRouterDaoImpl.java @@ -189,7 +189,6 @@ public class DomainRouterDaoImpl extends GenericDaoBase im public Integer countAllByRole(final Role role) { final SearchCriteria sc = createSearchCriteria(); sc.addAnd("role", SearchCriteria.Op.EQ, role); - sc.addAnd("removed", Op.NULL); return getCount(sc); } diff --git a/engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ImageStoreDaoImpl.java b/engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ImageStoreDaoImpl.java index 6ecac5ed809..96a41af4107 100644 --- a/engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ImageStoreDaoImpl.java +++ b/engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ImageStoreDaoImpl.java @@ -117,7 +117,6 @@ public class ImageStoreDaoImpl extends GenericDaoBase implem public Integer countAllImageStores() { SearchCriteria sc = createSearchCriteria(); sc.addAnd("role", SearchCriteria.Op.EQ, DataStoreRole.Image); - sc.addAnd("removed", SearchCriteria.Op.NULL); return getCount(sc); } diff --git a/framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java b/framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java index 1c183ede556..7d1b7b75ec9 100644 --- a/framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java +++ b/framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java @@ -344,23 +344,13 @@ public abstract class GenericDaoBase extends Compone @DB() protected List search(SearchCriteria sc, final Filter filter, final Boolean lock, final boolean cache) { - if (_removed != null) { - if (sc == null) { - sc = createSearchCriteria(); - } - sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL); - } + sc = checkAndSetRemovedIsNull(sc); return searchIncludingRemoved(sc, filter, lock, cache); } @DB() protected List search(SearchCriteria sc, final Filter filter, final Boolean lock, final boolean cache, final boolean enableQueryCache) { - if (_removed != null) { - if (sc == null) { - sc = createSearchCriteria(); - } - sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL); - } + sc = checkAndSetRemovedIsNull(sc); return searchIncludingRemoved(sc, filter, lock, cache, enableQueryCache); } @@ -519,7 +509,6 @@ public abstract class GenericDaoBase extends Compone if (_removed != null) { sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL); } - return customSearchIncludingRemoved(sc, filter); } @@ -911,26 +900,20 @@ public abstract class GenericDaoBase extends Compone @Override @DB() - public T findOneBy(final SearchCriteria sc) { - if (_removed != null) { - sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL); - } + public T findOneBy(SearchCriteria sc) { + sc = checkAndSetRemovedIsNull(sc); return findOneIncludingRemovedBy(sc); } @DB() - protected List listBy(final SearchCriteria sc, final Filter filter) { - if (_removed != null) { - sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL); - } + protected List listBy(SearchCriteria sc, final Filter filter) { + sc = checkAndSetRemovedIsNull(sc); return listIncludingRemovedBy(sc, filter); } @DB() - protected List listBy(final SearchCriteria sc, final Filter filter, final boolean enableQueryCache) { - if (_removed != null) { - sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL); - } + protected List listBy(SearchCriteria sc, final Filter filter, final boolean enableQueryCache) { + sc = checkAndSetRemovedIsNull(sc); return listIncludingRemovedBy(sc, filter, enableQueryCache); } @@ -1935,7 +1918,22 @@ public abstract class GenericDaoBase extends Compone return builder.create(); } + private SearchCriteria checkAndSetRemovedIsNull(SearchCriteria sc) { + if (_removed != null) { + if (sc == null) { + sc = createSearchCriteria(); + } + sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL); + } + return sc; + } + public Integer getDistinctCount(SearchCriteria sc) { + sc = checkAndSetRemovedIsNull(sc); + return getDistinctCountIncludingRemoved(sc); + } + + public Integer getDistinctCountIncludingRemoved(SearchCriteria sc) { String clause = sc != null ? sc.getWhereClause() : null; if (clause != null && clause.length() == 0) { clause = null; @@ -1994,6 +1992,11 @@ public abstract class GenericDaoBase extends Compone } public Integer getDistinctCount(SearchCriteria sc, String[] distinctColumns) { + sc = checkAndSetRemovedIsNull(sc); + return getDistinctCountIncludingRemoved(sc, distinctColumns); + } + + public Integer getDistinctCountIncludingRemoved(SearchCriteria sc, String[] distinctColumns) { String clause = sc != null ? sc.getWhereClause() : null; if (Strings.isNullOrEmpty(clause)) { clause = null; @@ -2040,15 +2043,15 @@ public abstract class GenericDaoBase extends Compone } public Integer countAll() { - SearchCriteria sc = null; - if (_removed != null) { - sc = createSearchCriteria(); - sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL); - } - return getCount(sc); + return getCount(null); } public Integer getCount(SearchCriteria sc) { + sc = checkAndSetRemovedIsNull(sc); + return getCountIncludingRemoved(sc); + } + + public Integer getCountIncludingRemoved(SearchCriteria sc) { String clause = sc != null ? sc.getWhereClause() : null; if (clause != null && clause.length() == 0) { clause = null; diff --git a/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java index 398a63d6383..6b700a255ae 100644 --- a/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java @@ -503,7 +503,7 @@ public class TemplateJoinDaoImpl extends GenericDaoBaseWithTagInformation, Integer> searchIncludingRemovedAndCount(final SearchCriteria sc, final Filter filter) { List objects = searchIncludingRemoved(sc, filter, null, false); - Integer count = getCount(sc); + Integer count = getCountIncludingRemoved(sc); return new Pair, Integer>(objects, count); }