You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by am...@apache.org on 2021/02/10 06:58:14 UTC
[atlas] branch branch-2.0 updated: ATLAS-4109: Advanced Search:
Glossary: More Efficient Structure
This is an automated email from the ASF dual-hosted git repository.
amestry pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/atlas.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new 47a2bb8 ATLAS-4109: Advanced Search: Glossary: More Efficient Structure
47a2bb8 is described below
commit 47a2bb86fdb2d7207feee04fd9d0abb82fa1b46c
Author: Ashutosh Mestry <am...@cloudera.com>
AuthorDate: Wed Feb 3 13:44:31 2021 -0800
ATLAS-4109: Advanced Search: Glossary: More Efficient Structure
---
.../java/org/apache/atlas/query/GremlinClause.java | 3 ++-
.../executors/GremlinClauseToTraversalTranslator.java | 10 ++++------
.../apache/atlas/query/GremlinQueryComposerTest.java | 18 +++++++-----------
3 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/repository/src/main/java/org/apache/atlas/query/GremlinClause.java b/repository/src/main/java/org/apache/atlas/query/GremlinClause.java
index b7e5330..7014b4a 100644
--- a/repository/src/main/java/org/apache/atlas/query/GremlinClause.java
+++ b/repository/src/main/java/org/apache/atlas/query/GremlinClause.java
@@ -69,7 +69,8 @@ public enum GremlinClause {
// idx of the tuple field to be sorted on
INLINE_TUPLE_SORT_ASC(".sort{a,b -> a[%s] <=> b[%s]}"),
INLINE_TUPLE_SORT_DESC(".sort{a,b -> b[%s] <=> a[%s]}"),
- TERM("and(__.in('r:AtlasGlossarySemanticAssignment').has('AtlasGlossaryTerm.%s', eq('%s')).dedup())"),
+ TERM("where(in('r:AtlasGlossarySemanticAssignment').has('AtlasGlossaryTerm.%s', '%s'))"),
+
V("V()"),
VALUE_MAP("valueMap(%s)");
diff --git a/repository/src/main/java/org/apache/atlas/query/executors/GremlinClauseToTraversalTranslator.java b/repository/src/main/java/org/apache/atlas/query/executors/GremlinClauseToTraversalTranslator.java
index 156a65c..26942c7 100644
--- a/repository/src/main/java/org/apache/atlas/query/executors/GremlinClauseToTraversalTranslator.java
+++ b/repository/src/main/java/org/apache/atlas/query/executors/GremlinClauseToTraversalTranslator.java
@@ -248,12 +248,10 @@ public class GremlinClauseToTraversalTranslator {
case TERM:
String term = String.format("AtlasGlossaryTerm.%s", values[0]);
-
- traversal.and(
- traversal.startAnonymousTraversal()
- .in(org.apache.atlas.repository.Constants.TERM_ASSIGNMENT_LABEL)
- .has(term, P.eq(values[1]))
- .dedup()
+ traversal.where(
+ traversal.startAnonymousTraversal()
+ .in(org.apache.atlas.repository.Constants.TERM_ASSIGNMENT_LABEL)
+ .has(term, P.eq(values[1]))
);
break;
diff --git a/repository/src/test/java/org/apache/atlas/query/GremlinQueryComposerTest.java b/repository/src/test/java/org/apache/atlas/query/GremlinQueryComposerTest.java
index 3594e2f..3a2d66d 100644
--- a/repository/src/test/java/org/apache/atlas/query/GremlinQueryComposerTest.java
+++ b/repository/src/test/java/org/apache/atlas/query/GremlinQueryComposerTest.java
@@ -334,21 +334,17 @@ public class GremlinQueryComposerTest {
@Test
public void glossaryTermQueries() {
- verify("Table hasTerm sales", "g.V().has('__typeName', 'Table')." +
- "and(__.in('r:AtlasGlossarySemanticAssignment')." +
- "has('AtlasGlossaryTerm.name', eq('sales')).dedup())." +
- "dedup().limit(25).toList()");
+ verify("Table hasTerm sales", "g.V().has('__typeName', 'Table')" +
+ ".where(in('r:AtlasGlossarySemanticAssignment').has('AtlasGlossaryTerm.name', 'sales'))" +
+ ".dedup().limit(25).toList()");
verify("Table hasTerm \"sales@glossary\"", "g.V().has('__typeName', 'Table')." +
- "and(__.in('r:AtlasGlossarySemanticAssignment')." +
- "has('AtlasGlossaryTerm.qualifiedName', eq('sales@glossary')).dedup())." +
- "dedup().limit(25).toList()");
+ "where(in('r:AtlasGlossarySemanticAssignment').has('AtlasGlossaryTerm.qualifiedName', 'sales@glossary'))" +
+ ".dedup().limit(25).toList()");
verify("Table hasTerm \"sales@glossary\" and owner = \"fetl\"",
"g.V().has('__typeName', 'Table')" +
".and(" +
- "__.and(" +
- "__.in('r:AtlasGlossarySemanticAssignment').has('AtlasGlossaryTerm.qualifiedName', eq('sales@glossary'))" +
- ".dedup())," +
- "__.has('Table.owner', eq(\"fetl\"))" +
+ "__.where(in('r:AtlasGlossarySemanticAssignment').has('AtlasGlossaryTerm.qualifiedName', 'sales@glossary'))" +
+ ",__.has('Table.owner', eq(\"fetl\"))" +
").dedup().limit(25).toList()");
}