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);
     }