Skip to content

Commit aab8df0

Browse files
authored
Fixing searchAndCount searchAndDistinctCount when sc is null (#4374)
1 parent 1bbb29d commit aab8df0

File tree

6 files changed

+36
-36
lines changed

6 files changed

+36
-36
lines changed

engine/schema/src/main/java/com/cloud/host/dao/HostDaoImpl.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,6 @@ public void init() {
165165

166166
HostTypeCountSearch = createSearchBuilder();
167167
HostTypeCountSearch.and("type", HostTypeCountSearch.entity().getType(), SearchCriteria.Op.EQ);
168-
HostTypeCountSearch.and("removed", HostTypeCountSearch.entity().getRemoved(), SearchCriteria.Op.NULL);
169168
HostTypeCountSearch.done();
170169

171170
HostTypeZoneCountSearch = createSearchBuilder();

engine/schema/src/main/java/com/cloud/network/as/dao/AutoScaleVmGroupVmMapDaoImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public Integer countByGroup(long vmGroupId) {
3333

3434
SearchCriteria<AutoScaleVmGroupVmMapVO> sc = createSearchCriteria();
3535
sc.addAnd("vmGroupId", SearchCriteria.Op.EQ, vmGroupId);
36-
return getCount(sc);
36+
return getCountIncludingRemoved(sc);
3737
}
3838

3939
@Override

engine/schema/src/main/java/com/cloud/vm/dao/DomainRouterDaoImpl.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,6 @@ public List<DomainRouterVO> listByDataCenter(final long dcId) {
189189
public Integer countAllByRole(final Role role) {
190190
final SearchCriteria<DomainRouterVO> sc = createSearchCriteria();
191191
sc.addAnd("role", SearchCriteria.Op.EQ, role);
192-
sc.addAnd("removed", Op.NULL);
193192
return getCount(sc);
194193
}
195194

engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ImageStoreDaoImpl.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,6 @@ public List<ImageStoreVO> findImageCacheByScope(ZoneScope scope) {
117117
public Integer countAllImageStores() {
118118
SearchCriteria<ImageStoreVO> sc = createSearchCriteria();
119119
sc.addAnd("role", SearchCriteria.Op.EQ, DataStoreRole.Image);
120-
sc.addAnd("removed", SearchCriteria.Op.NULL);
121120
return getCount(sc);
122121
}
123122

framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -344,23 +344,13 @@ public T lockOneRandomRow(final SearchCriteria<T> sc, final boolean exclusive) {
344344

345345
@DB()
346346
protected List<T> search(SearchCriteria<T> sc, final Filter filter, final Boolean lock, final boolean cache) {
347-
if (_removed != null) {
348-
if (sc == null) {
349-
sc = createSearchCriteria();
350-
}
351-
sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL);
352-
}
347+
sc = checkAndSetRemovedIsNull(sc);
353348
return searchIncludingRemoved(sc, filter, lock, cache);
354349
}
355350

356351
@DB()
357352
protected List<T> search(SearchCriteria<T> sc, final Filter filter, final Boolean lock, final boolean cache, final boolean enableQueryCache) {
358-
if (_removed != null) {
359-
if (sc == null) {
360-
sc = createSearchCriteria();
361-
}
362-
sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL);
363-
}
353+
sc = checkAndSetRemovedIsNull(sc);
364354
return searchIncludingRemoved(sc, filter, lock, cache, enableQueryCache);
365355
}
366356

@@ -519,7 +509,6 @@ public <M> List<M> customSearch(SearchCriteria<M> sc, final Filter filter) {
519509
if (_removed != null) {
520510
sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL);
521511
}
522-
523512
return customSearchIncludingRemoved(sc, filter);
524513
}
525514

@@ -911,26 +900,20 @@ protected T findOneIncludingRemovedBy(final SearchCriteria<T> sc) {
911900

912901
@Override
913902
@DB()
914-
public T findOneBy(final SearchCriteria<T> sc) {
915-
if (_removed != null) {
916-
sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL);
917-
}
903+
public T findOneBy(SearchCriteria<T> sc) {
904+
sc = checkAndSetRemovedIsNull(sc);
918905
return findOneIncludingRemovedBy(sc);
919906
}
920907

921908
@DB()
922-
protected List<T> listBy(final SearchCriteria<T> sc, final Filter filter) {
923-
if (_removed != null) {
924-
sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL);
925-
}
909+
protected List<T> listBy(SearchCriteria<T> sc, final Filter filter) {
910+
sc = checkAndSetRemovedIsNull(sc);
926911
return listIncludingRemovedBy(sc, filter);
927912
}
928913

929914
@DB()
930-
protected List<T> listBy(final SearchCriteria<T> sc, final Filter filter, final boolean enableQueryCache) {
931-
if (_removed != null) {
932-
sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL);
933-
}
915+
protected List<T> listBy(SearchCriteria<T> sc, final Filter filter, final boolean enableQueryCache) {
916+
sc = checkAndSetRemovedIsNull(sc);
934917
return listIncludingRemovedBy(sc, filter, enableQueryCache);
935918
}
936919

@@ -1935,7 +1918,22 @@ public SearchCriteria<T> createSearchCriteria() {
19351918
return builder.create();
19361919
}
19371920

1921+
private SearchCriteria<T> checkAndSetRemovedIsNull(SearchCriteria<T> sc) {
1922+
if (_removed != null) {
1923+
if (sc == null) {
1924+
sc = createSearchCriteria();
1925+
}
1926+
sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL);
1927+
}
1928+
return sc;
1929+
}
1930+
19381931
public Integer getDistinctCount(SearchCriteria<T> sc) {
1932+
sc = checkAndSetRemovedIsNull(sc);
1933+
return getDistinctCountIncludingRemoved(sc);
1934+
}
1935+
1936+
public Integer getDistinctCountIncludingRemoved(SearchCriteria<T> sc) {
19391937
String clause = sc != null ? sc.getWhereClause() : null;
19401938
if (clause != null && clause.length() == 0) {
19411939
clause = null;
@@ -1994,6 +1992,11 @@ public Integer getDistinctCount(SearchCriteria<T> sc) {
19941992
}
19951993

19961994
public Integer getDistinctCount(SearchCriteria<T> sc, String[] distinctColumns) {
1995+
sc = checkAndSetRemovedIsNull(sc);
1996+
return getDistinctCountIncludingRemoved(sc, distinctColumns);
1997+
}
1998+
1999+
public Integer getDistinctCountIncludingRemoved(SearchCriteria<T> sc, String[] distinctColumns) {
19972000
String clause = sc != null ? sc.getWhereClause() : null;
19982001
if (Strings.isNullOrEmpty(clause)) {
19992002
clause = null;
@@ -2040,15 +2043,15 @@ public Integer getDistinctCount(SearchCriteria<T> sc, String[] distinctColumns)
20402043
}
20412044

20422045
public Integer countAll() {
2043-
SearchCriteria<T> sc = null;
2044-
if (_removed != null) {
2045-
sc = createSearchCriteria();
2046-
sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL);
2047-
}
2048-
return getCount(sc);
2046+
return getCount(null);
20492047
}
20502048

20512049
public Integer getCount(SearchCriteria<T> sc) {
2050+
sc = checkAndSetRemovedIsNull(sc);
2051+
return getCountIncludingRemoved(sc);
2052+
}
2053+
2054+
public Integer getCountIncludingRemoved(SearchCriteria<T> sc) {
20522055
String clause = sc != null ? sc.getWhereClause() : null;
20532056
if (clause != null && clause.length() == 0) {
20542057
clause = null;

server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ public List<TemplateJoinVO> listActiveTemplates(long storeId) {
503503
@Override
504504
public Pair<List<TemplateJoinVO>, Integer> searchIncludingRemovedAndCount(final SearchCriteria<TemplateJoinVO> sc, final Filter filter) {
505505
List<TemplateJoinVO> objects = searchIncludingRemoved(sc, filter, null, false);
506-
Integer count = getCount(sc);
506+
Integer count = getCountIncludingRemoved(sc);
507507
return new Pair<List<TemplateJoinVO>, Integer>(objects, count);
508508
}
509509

0 commit comments

Comments
 (0)