You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2020/10/13 09:30:28 UTC
[cloudstack] branch master updated: Fixing searchAndCount
searchAndDistinctCount when sc is null (#4374)
This is an automated email from the ASF dual-hosted git repository.
dahn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/master by this push:
new aab8df0 Fixing searchAndCount searchAndDistinctCount when sc is null (#4374)
aab8df0 is described below
commit aab8df09aa9e1e30bb86cc14112d2cb7f715b5e7
Author: davidjumani <dj...@gmail.com>
AuthorDate: Tue Oct 13 15:00:04 2020 +0530
Fixing searchAndCount searchAndDistinctCount when sc is null (#4374)
---
.../main/java/com/cloud/host/dao/HostDaoImpl.java | 1 -
.../as/dao/AutoScaleVmGroupVmMapDaoImpl.java | 2 +-
.../java/com/cloud/vm/dao/DomainRouterDaoImpl.java | 1 -
.../storage/datastore/db/ImageStoreDaoImpl.java | 1 -
.../java/com/cloud/utils/db/GenericDaoBase.java | 65 +++++++++++-----------
.../cloud/api/query/dao/TemplateJoinDaoImpl.java | 2 +-
6 files changed, 36 insertions(+), 36 deletions(-)
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 75304c1..e931f65 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<HostVO, Long> 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 24a3c10..410d40b 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<AutoScaleVmGrou
SearchCriteria<AutoScaleVmGroupVmMapVO> 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 17f0ffd..135f96f 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<DomainRouterVO, Long> im
public Integer countAllByRole(final Role role) {
final SearchCriteria<DomainRouterVO> 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 6ecac5e..96a41af 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<ImageStoreVO, Long> implem
public Integer countAllImageStores() {
SearchCriteria<ImageStoreVO> 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 1c183ed..7d1b7b7 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<T, ID extends Serializable> extends Compone
@DB()
protected List<T> search(SearchCriteria<T> 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<T> search(SearchCriteria<T> 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<T, ID extends Serializable> 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<T, ID extends Serializable> extends Compone
@Override
@DB()
- public T findOneBy(final SearchCriteria<T> sc) {
- if (_removed != null) {
- sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL);
- }
+ public T findOneBy(SearchCriteria<T> sc) {
+ sc = checkAndSetRemovedIsNull(sc);
return findOneIncludingRemovedBy(sc);
}
@DB()
- protected List<T> listBy(final SearchCriteria<T> sc, final Filter filter) {
- if (_removed != null) {
- sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL);
- }
+ protected List<T> listBy(SearchCriteria<T> sc, final Filter filter) {
+ sc = checkAndSetRemovedIsNull(sc);
return listIncludingRemovedBy(sc, filter);
}
@DB()
- protected List<T> listBy(final SearchCriteria<T> sc, final Filter filter, final boolean enableQueryCache) {
- if (_removed != null) {
- sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL);
- }
+ protected List<T> listBy(SearchCriteria<T> sc, final Filter filter, final boolean enableQueryCache) {
+ sc = checkAndSetRemovedIsNull(sc);
return listIncludingRemovedBy(sc, filter, enableQueryCache);
}
@@ -1935,7 +1918,22 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
return builder.create();
}
+ private SearchCriteria<T> checkAndSetRemovedIsNull(SearchCriteria<T> sc) {
+ if (_removed != null) {
+ if (sc == null) {
+ sc = createSearchCriteria();
+ }
+ sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL);
+ }
+ return sc;
+ }
+
public Integer getDistinctCount(SearchCriteria<T> sc) {
+ sc = checkAndSetRemovedIsNull(sc);
+ return getDistinctCountIncludingRemoved(sc);
+ }
+
+ public Integer getDistinctCountIncludingRemoved(SearchCriteria<T> sc) {
String clause = sc != null ? sc.getWhereClause() : null;
if (clause != null && clause.length() == 0) {
clause = null;
@@ -1994,6 +1992,11 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
}
public Integer getDistinctCount(SearchCriteria<T> sc, String[] distinctColumns) {
+ sc = checkAndSetRemovedIsNull(sc);
+ return getDistinctCountIncludingRemoved(sc, distinctColumns);
+ }
+
+ public Integer getDistinctCountIncludingRemoved(SearchCriteria<T> sc, String[] distinctColumns) {
String clause = sc != null ? sc.getWhereClause() : null;
if (Strings.isNullOrEmpty(clause)) {
clause = null;
@@ -2040,15 +2043,15 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
}
public Integer countAll() {
- SearchCriteria<T> 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<T> sc) {
+ sc = checkAndSetRemovedIsNull(sc);
+ return getCountIncludingRemoved(sc);
+ }
+
+ public Integer getCountIncludingRemoved(SearchCriteria<T> 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 398a63d..6b700a2 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<Templa
@Override
public Pair<List<TemplateJoinVO>, Integer> searchIncludingRemovedAndCount(final SearchCriteria<TemplateJoinVO> sc, final Filter filter) {
List<TemplateJoinVO> objects = searchIncludingRemoved(sc, filter, null, false);
- Integer count = getCount(sc);
+ Integer count = getCountIncludingRemoved(sc);
return new Pair<List<TemplateJoinVO>, Integer>(objects, count);
}