Search in sources :

Example 36 with GroovyExpression

use of org.apache.atlas.groovy.GroovyExpression in project incubator-atlas by apache.

the class AbstractGremlinQueryOptimizerTest method testAliasInAndExpr.

@Test
public void testAliasInAndExpr() throws AtlasException {
    GroovyExpression expr1 = makeHasExpression("name", "Fred");
    GroovyExpression expr2 = getFactory().generateAliasExpression(makeHasExpression("name", "George"), "george");
    GroovyExpression toOptimize = getVerticesExpression();
    toOptimize = getFactory().generateLogicalExpression(toOptimize, "and", Arrays.asList(expr1, expr2));
    GroovyExpression optimized = GremlinQueryOptimizer.getInstance().optimize(toOptimize);
    //expression with alias cannot currently be pulled out of the and
    assertEquals(optimized.toString(), getExpectedGremlinForTestAliasInAndExpr());
}
Also used : GroovyExpression(org.apache.atlas.groovy.GroovyExpression) Test(org.testng.annotations.Test)

Example 37 with GroovyExpression

use of org.apache.atlas.groovy.GroovyExpression in project incubator-atlas by apache.

the class AbstractGremlinQueryOptimizerTest method testAndWithMultiCallArguments.

@Test
public void testAndWithMultiCallArguments() throws AtlasException {
    GroovyExpression cond1 = makeHasExpression("p1", "e1");
    GroovyExpression cond2 = makeHasExpression(cond1, "p2", "e2");
    GroovyExpression cond3 = makeHasExpression("p3", "e3");
    GroovyExpression cond4 = makeHasExpression(cond3, "p4", "e4");
    GroovyExpression toOptimize = getFactory().generateLogicalExpression(getVerticesExpression(), "and", Arrays.asList(cond2, cond4));
    GroovyExpression optimized = GremlinQueryOptimizer.getInstance().optimize(toOptimize);
    assertEquals(optimized.toString(), getExpectedGremlinForTestAndWithMultiCallArguments());
}
Also used : GroovyExpression(org.apache.atlas.groovy.GroovyExpression) Test(org.testng.annotations.Test)

Example 38 with GroovyExpression

use of org.apache.atlas.groovy.GroovyExpression in project incubator-atlas by apache.

the class AbstractGremlinQueryOptimizerTest method testAndOfOrs.

@Test
public void testAndOfOrs() throws AtlasException {
    GroovyExpression or1Cond1 = makeHasExpression("p1", "e1");
    GroovyExpression or1Cond2 = makeHasExpression("p2", "e2");
    GroovyExpression or2Cond1 = makeHasExpression("p3", "e3");
    GroovyExpression or2Cond2 = makeHasExpression("p4", "e4");
    GroovyExpression or1 = getFactory().generateLogicalExpression(null, "or", Arrays.asList(or1Cond1, or1Cond2));
    GroovyExpression or2 = getFactory().generateLogicalExpression(null, "or", Arrays.asList(or2Cond1, or2Cond2));
    GroovyExpression toOptimize = getFactory().generateLogicalExpression(getVerticesExpression(), "and", Arrays.asList(or1, or2));
    GroovyExpression optimized = GremlinQueryOptimizer.getInstance().optimize(toOptimize);
    assertEquals(optimized.toString(), getExpectedGremlinForTestAndOfOrs());
}
Also used : GroovyExpression(org.apache.atlas.groovy.GroovyExpression) Test(org.testng.annotations.Test)

Example 39 with GroovyExpression

use of org.apache.atlas.groovy.GroovyExpression in project incubator-atlas by apache.

the class AbstractGremlinQueryOptimizerTest method testOrGrouping.

@Test
public void testOrGrouping() throws AtlasException {
    GroovyExpression expr1 = makeOutExpression(null, "out1");
    GroovyExpression expr2 = makeOutExpression(null, "out2");
    GroovyExpression expr3 = makeHasExpression("prop1", "Fred");
    GroovyExpression expr4 = makeHasExpression("prop2", "George");
    GroovyExpression toOptimize = getFactory().generateLogicalExpression(getVerticesExpression(), "or", Arrays.asList(expr1, expr2, expr3, expr4));
    GroovyExpression optimized = GremlinQueryOptimizer.getInstance().optimize(toOptimize);
    assertEquals(optimized.toString(), getExpectedGremlinForTestOrGrouping());
}
Also used : GroovyExpression(org.apache.atlas.groovy.GroovyExpression) Test(org.testng.annotations.Test)

Example 40 with GroovyExpression

use of org.apache.atlas.groovy.GroovyExpression in project incubator-atlas by apache.

the class Gremlin2ExpressionFactory method getOrderFieldParents.

@Override
public List<GroovyExpression> getOrderFieldParents() {
    GroovyExpression itExpr = getItVariable();
    List<GroovyExpression> result = new ArrayList<>(2);
    result.add(new FieldExpression(itExpr, "a"));
    result.add(new FieldExpression(itExpr, "b"));
    return result;
}
Also used : ArrayList(java.util.ArrayList) GroovyExpression(org.apache.atlas.groovy.GroovyExpression) FieldExpression(org.apache.atlas.groovy.FieldExpression)

Aggregations

GroovyExpression (org.apache.atlas.groovy.GroovyExpression)80 FunctionCallExpression (org.apache.atlas.groovy.FunctionCallExpression)34 Test (org.testng.annotations.Test)33 LiteralExpression (org.apache.atlas.groovy.LiteralExpression)17 ClosureExpression (org.apache.atlas.groovy.ClosureExpression)16 AbstractFunctionExpression (org.apache.atlas.groovy.AbstractFunctionExpression)11 ArrayList (java.util.ArrayList)9 IdentifierExpression (org.apache.atlas.groovy.IdentifierExpression)6 TypeCoersionExpression (org.apache.atlas.groovy.TypeCoersionExpression)6 CastExpression (org.apache.atlas.groovy.CastExpression)5 FieldExpression (org.apache.atlas.groovy.FieldExpression)5 ComparisonExpression (org.apache.atlas.groovy.ComparisonExpression)4 TernaryOperatorExpression (org.apache.atlas.groovy.TernaryOperatorExpression)4 ListExpression (org.apache.atlas.groovy.ListExpression)3 RangeFinder (org.apache.atlas.gremlin.optimizer.RangeFinder)2 ComparisonOperatorExpression (org.apache.atlas.groovy.ComparisonOperatorExpression)2 LogicalExpression (org.apache.atlas.groovy.LogicalExpression)2 StatementListExpression (org.apache.atlas.groovy.StatementListExpression)2 AttributeInfo (org.apache.atlas.typesystem.types.AttributeInfo)2 IDataType (org.apache.atlas.typesystem.types.IDataType)2