ATLAS-1815: Basic search API might return fewer entities when excludeDeletedEntities=true
diff --git a/repository/src/main/java/org/apache/atlas/discovery/EntityDiscoveryService.java b/repository/src/main/java/org/apache/atlas/discovery/EntityDiscoveryService.java
index 874487c..e6a06c3 100644
--- a/repository/src/main/java/org/apache/atlas/discovery/EntityDiscoveryService.java
+++ b/repository/src/main/java/org/apache/atlas/discovery/EntityDiscoveryService.java
@@ -324,6 +324,12 @@
basicQuery += gremlinQueryProvider.getQuery(AtlasGremlinQuery.BASIC_SEARCH_TYPE_FILTER);
}
+ if (excludeDeletedEntities) {
+ bindings.put("state", Status.ACTIVE.toString());
+
+ basicQuery += gremlinQueryProvider.getQuery(AtlasGremlinQuery.BASIC_SEARCH_STATE_FILTER);
+ }
+
if (isGuidPrefixSearch) {
bindings.put("guid", attrValuePrefix + ".*");
@@ -347,9 +353,6 @@
if (firstElement instanceof AtlasVertex) {
for (Object element : queryResult) {
if (element instanceof AtlasVertex) {
- if (skipDeletedEntities(excludeDeletedEntities, (AtlasVertex) element)) {
- continue;
- }
ret.addEntity(entityRetriever.toAtlasEntityHeader((AtlasVertex) element));
} else {
diff --git a/repository/src/main/java/org/apache/atlas/util/AtlasGremlin2QueryProvider.java b/repository/src/main/java/org/apache/atlas/util/AtlasGremlin2QueryProvider.java
index 139e7c3..1bf0346 100644
--- a/repository/src/main/java/org/apache/atlas/util/AtlasGremlin2QueryProvider.java
+++ b/repository/src/main/java/org/apache/atlas/util/AtlasGremlin2QueryProvider.java
@@ -69,6 +69,8 @@
return ".has('__typeName', T.in, typeNames)";
case BASIC_SEARCH_CLASSIFICATION_FILTER:
return ".has('__traitNames', T.in, traitNames)";
+ case BASIC_SEARCH_STATE_FILTER:
+ return ".has('__state', state)";
case TO_RANGE_LIST:
return " [startIdx..<endIdx].toList()";
case GUID_PREFIX_FILTER:
diff --git a/repository/src/main/java/org/apache/atlas/util/AtlasGremlinQueryProvider.java b/repository/src/main/java/org/apache/atlas/util/AtlasGremlinQueryProvider.java
index 8fb1793..8481a4f 100644
--- a/repository/src/main/java/org/apache/atlas/util/AtlasGremlinQueryProvider.java
+++ b/repository/src/main/java/org/apache/atlas/util/AtlasGremlinQueryProvider.java
@@ -58,6 +58,7 @@
// Discovery Queries
BASIC_SEARCH_TYPE_FILTER,
BASIC_SEARCH_CLASSIFICATION_FILTER,
+ BASIC_SEARCH_STATE_FILTER,
TO_RANGE_LIST,
GUID_PREFIX_FILTER
}