Search in sources :

Example 76 with GroovyExpression

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

the class AbstractGremlinQueryOptimizerTest method testFinalAliasNeeded.

@Test
public void testFinalAliasNeeded() throws AtlasException {
    GroovyExpression toOptimize = getVerticesExpression();
    toOptimize = makeHasExpression(toOptimize, "name", "Fred");
    toOptimize = getFactory().generateAliasExpression(toOptimize, "person");
    toOptimize = makeOutExpression(toOptimize, "livesIn");
    GroovyExpression isChicago = makeHasExpression(null, "name", "Chicago");
    GroovyExpression isBoston = makeHasExpression(null, "name", "Boston");
    toOptimize = getFactory().generateLogicalExpression(toOptimize, "or", Arrays.asList(isChicago, isBoston));
    toOptimize = getFactory().generateAliasExpression(toOptimize, "city");
    toOptimize = makeOutExpression(toOptimize, "state");
    toOptimize = makeHasExpression(toOptimize, "name", "Massachusetts");
    toOptimize = getFactory().generatePathExpression(toOptimize);
    GroovyExpression optimized = GremlinQueryOptimizer.getInstance().optimize(toOptimize);
    assertEquals(optimized.toString(), getExpectedGremlinForTestFinalAliasNeeded());
}
Also used : GroovyExpression(org.apache.atlas.groovy.GroovyExpression) Test(org.testng.annotations.Test)

Example 77 with GroovyExpression

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

the class AbstractGremlinQueryOptimizerTest method testOrFollowedByAnd.

@Test
public void testOrFollowedByAnd() throws AtlasException {
    GroovyExpression expr1 = makeHasExpression("name", "Fred");
    GroovyExpression expr2 = makeHasExpression("name", "George");
    GroovyExpression expr3 = makeHasExpression("age", "13");
    GroovyExpression expr4 = makeHasExpression("age", "14");
    GroovyExpression toOptimize = getFactory().generateLogicalExpression(getVerticesExpression(), "or", Arrays.asList(expr1, expr2));
    toOptimize = getFactory().generateLogicalExpression(toOptimize, "and", Arrays.asList(expr3, expr4));
    GroovyExpression optimized = GremlinQueryOptimizer.getInstance().optimize(toOptimize);
    assertEquals(optimized.toString(), getExpectedGremlinForTestOrFollowedByAnd());
}
Also used : GroovyExpression(org.apache.atlas.groovy.GroovyExpression) Test(org.testng.annotations.Test)

Example 78 with GroovyExpression

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

the class AbstractGremlinQueryOptimizerTest method testLongStringEndingWithOr.

@Test
public void testLongStringEndingWithOr() throws AtlasException {
    GroovyExpression toOptimize = getVerticesExpression();
    toOptimize = makeHasExpression(toOptimize, "name", "Fred");
    toOptimize = makeHasExpression(toOptimize, "age", "13");
    toOptimize = makeOutExpression(toOptimize, "livesIn");
    toOptimize = makeHasExpression(toOptimize, "state", "Massachusetts");
    GroovyExpression or1cond1 = makeHasExpression("p1", "e1");
    GroovyExpression or1cond2 = makeHasExpression("p2", "e2");
    toOptimize = getFactory().generateLogicalExpression(toOptimize, "or", Arrays.asList(or1cond1, or1cond2));
    GroovyExpression or2cond1 = makeHasExpression("p3", "e3");
    GroovyExpression or2cond2 = makeHasExpression("p4", "e4");
    toOptimize = getFactory().generateLogicalExpression(toOptimize, "or", Arrays.asList(or2cond1, or2cond2));
    toOptimize = makeHasExpression(toOptimize, "p5", "e5");
    toOptimize = makeHasExpression(toOptimize, "p6", "e6");
    GroovyExpression or3cond1 = makeHasExpression("p7", "e7");
    GroovyExpression or3cond2 = makeHasExpression("p8", "e8");
    toOptimize = getFactory().generateLogicalExpression(toOptimize, "or", Arrays.asList(or3cond1, or3cond2));
    GroovyExpression optimized = GremlinQueryOptimizer.getInstance().optimize(toOptimize);
    assertEquals(optimized.toString(), getExpectedGremlinForTestLongStringEndingWithOr());
}
Also used : GroovyExpression(org.apache.atlas.groovy.GroovyExpression) Test(org.testng.annotations.Test)

Example 79 with GroovyExpression

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

the class AbstractGremlinQueryOptimizerTest method testOrFollowedByOr.

@Test
public void testOrFollowedByOr() throws AtlasException {
    GroovyExpression expr1 = makeHasExpression("name", "Fred");
    GroovyExpression expr2 = makeHasExpression("name", "George");
    GroovyExpression expr3 = makeHasExpression("age", "13");
    GroovyExpression expr4 = makeHasExpression("age", "14");
    GroovyExpression toOptimize = getFactory().generateLogicalExpression(getVerticesExpression(), "or", Arrays.asList(expr1, expr2));
    toOptimize = getFactory().generateLogicalExpression(toOptimize, "or", Arrays.asList(expr3, expr4));
    GroovyExpression optimized = GremlinQueryOptimizer.getInstance().optimize(toOptimize);
    assertEquals(optimized.toString(), getExpectedGremlinForTestOrFollowedByOr());
}
Also used : GroovyExpression(org.apache.atlas.groovy.GroovyExpression) Test(org.testng.annotations.Test)

Example 80 with GroovyExpression

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

the class AbstractGremlinQueryOptimizerTest method testAndFollowedByAnd.

@Test
public void testAndFollowedByAnd() throws AtlasException {
    GroovyExpression expr1 = makeHasExpression("name", "Fred");
    GroovyExpression expr2 = makeHasExpression("name", "George");
    GroovyExpression expr3 = makeHasExpression("age", "13");
    GroovyExpression expr4 = makeHasExpression("age", "14");
    GroovyExpression toOptimize = getFactory().generateLogicalExpression(getVerticesExpression(), "and", Arrays.asList(expr1, expr2));
    toOptimize = getFactory().generateLogicalExpression(toOptimize, "and", Arrays.asList(expr3, expr4));
    GroovyExpression optimized = GremlinQueryOptimizer.getInstance().optimize(toOptimize);
    assertEquals(optimized.toString(), getExpectedGremlinForTestAndFollowedByAnd());
}
Also used : GroovyExpression(org.apache.atlas.groovy.GroovyExpression) Test(org.testng.annotations.Test)

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