Search in sources :

Example 6 with SourceDelegateNode

use of com.alibaba.maxgraph.compiler.tree.source.SourceDelegateNode in project GraphScope by alibaba.

the class TreeBuilder method travelTraversalDirectly.

private <S, E> TreeNode travelTraversalDirectly(Traversal.Admin<S, E> admin, TreeNode parent) {
    if (admin instanceof TokenTraversal) {
        return new TokenTreeNode(parent, schema, TokenTraversal.class.cast(admin).getToken());
    } else if (admin instanceof ValueTraversal) {
        ValueTraversal elementValueTraversal = ValueTraversal.class.cast(admin);
        String propKey = elementValueTraversal.getPropertyKey();
        TreeNode bypassTreeNode = null;
        Traversal.Admin<?, ?> bypassTraversal = ReflectionUtils.getFieldValue(AbstractLambdaTraversal.class, elementValueTraversal, "bypassTraversal");
        if (null != bypassTraversal) {
            bypassTreeNode = travelTraversalAdmin(bypassTraversal, new SourceDelegateNode(parent, schema));
        }
        return new ElementValueTreeNode(parent, propKey, bypassTreeNode, schema);
    } else if (admin instanceof ColumnTraversal) {
        ColumnTraversal columnTraversal = ColumnTraversal.class.cast(admin);
        return new ColumnTreeNode(parent, schema, columnTraversal.getColumn());
    } else if (admin instanceof IdentityTraversal) {
        return parent;
    } else if (admin instanceof TrueTraversal) {
        return parent;
    } else if (admin instanceof ConstantTraversal) {
        return new ConstantTreeNode(parent, schema, admin.next());
    } else if (admin instanceof CustomAggregationListTraversal) {
        CustomAggregationListTraversal customAggregationListTraversal = CustomAggregationListTraversal.class.cast(admin);
        List<TreeNode> aggNodeList = Lists.newArrayList();
        boolean saveFlag = this.rootPathFlag;
        this.rootPathFlag = false;
        List<Traversal<?, ?>> traversalList = customAggregationListTraversal.getTraversalList();
        for (Traversal<?, ?> aggTraversal : traversalList) {
            aggNodeList.add(travelTraversalAdmin(aggTraversal.asAdmin(), new SourceDelegateNode(parent, schema)));
        }
        this.rootPathFlag = saveFlag;
        return new AggregationListTreeNode(parent, schema, customAggregationListTraversal.getNameList(), aggNodeList);
    } else {
        throw new IllegalArgumentException("Not deal with direct traversal => " + admin);
    }
}
Also used : CustomAggregationListTraversal(com.alibaba.maxgraph.sdkcommon.compiler.custom.aggregate.CustomAggregationListTraversal) SourceDelegateNode(com.alibaba.maxgraph.compiler.tree.source.SourceDelegateNode) CustomAggregationListTraversal(com.alibaba.maxgraph.sdkcommon.compiler.custom.aggregate.CustomAggregationListTraversal) Traversal(org.apache.tinkerpop.gremlin.process.traversal.Traversal) GraphTraversal(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal) SourceTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceTreeNode) EstimateCountTreeNode(com.alibaba.maxgraph.compiler.tree.source.EstimateCountTreeNode) SourceEdgeTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceEdgeTreeNode) SourceVertexTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceVertexTreeNode) SourceCreateGraphTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceCreateGraphTreeNode)

Example 7 with SourceDelegateNode

use of com.alibaba.maxgraph.compiler.tree.source.SourceDelegateNode in project GraphScope by alibaba.

the class TreeBuilder method visitUnionStep.

private TreeNode visitUnionStep(UnionStep step, TreeNode prev) {
    List<Traversal.Admin<?, ?>> unionTraversalList = step.getGlobalChildren();
    List<TreeNode> unionTreeNodeList = Lists.newArrayList();
    unionTraversalList.forEach(v -> unionTreeNodeList.add(travelTraversalAdmin(v, new SourceDelegateNode(prev, schema))));
    UnionTreeNode unionTreeNode = new UnionTreeNode(prev, schema, unionTreeNodeList);
    return unionTreeNode;
}
Also used : SourceTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceTreeNode) EstimateCountTreeNode(com.alibaba.maxgraph.compiler.tree.source.EstimateCountTreeNode) SourceEdgeTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceEdgeTreeNode) SourceVertexTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceVertexTreeNode) SourceCreateGraphTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceCreateGraphTreeNode) SourceDelegateNode(com.alibaba.maxgraph.compiler.tree.source.SourceDelegateNode)

Example 8 with SourceDelegateNode

use of com.alibaba.maxgraph.compiler.tree.source.SourceDelegateNode in project GraphScope by alibaba.

the class TreeBuilder method visitAndStep.

private TreeNode visitAndStep(AndStep step, TreeNode prev) {
    List<Traversal.Admin<?, ?>> traversals = ReflectionUtils.getFieldValue(ConnectiveStep.class, step, "traversals");
    List<TreeNode> andTreeNodeList = Lists.newArrayList();
    boolean saveFlag = rootPathFlag;
    rootPathFlag = false;
    traversals.forEach(v -> {
        TreeNode treeNode = travelTraversalAdmin(v, new SourceDelegateNode(prev, schema));
        if (treeNode instanceof HasTreeNode) {
            TreeNode hasInputNode = ((HasTreeNode) treeNode).getInputNode();
            if (hasInputNode instanceof SourceVertexTreeNode || hasInputNode instanceof SourceEdgeTreeNode || hasInputNode instanceof EdgeTreeNode) {
                prev.addHasContainerList(((HasTreeNode) treeNode).getHasContainerList());
            } else {
                andTreeNodeList.add(treeNode);
            }
        } else {
            andTreeNodeList.add(treeNode);
        }
    });
    rootPathFlag = saveFlag;
    if (andTreeNodeList.isEmpty()) {
        return prev;
    } else {
        AndTreeNode andTreeNode = new AndTreeNode(prev, schema);
        andTreeNode.getAndTreeNodeList().addAll(andTreeNodeList);
        return andTreeNode;
    }
}
Also used : SourceTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceTreeNode) EstimateCountTreeNode(com.alibaba.maxgraph.compiler.tree.source.EstimateCountTreeNode) SourceEdgeTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceEdgeTreeNode) SourceVertexTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceVertexTreeNode) SourceCreateGraphTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceCreateGraphTreeNode) SourceVertexTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceVertexTreeNode) SourceEdgeTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceEdgeTreeNode) SourceDelegateNode(com.alibaba.maxgraph.compiler.tree.source.SourceDelegateNode) SourceEdgeTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceEdgeTreeNode)

Example 9 with SourceDelegateNode

use of com.alibaba.maxgraph.compiler.tree.source.SourceDelegateNode in project GraphScope by alibaba.

the class TreeBuilder method visitLambdaMapStep.

private TreeNode visitLambdaMapStep(LambdaMapStep step, TreeNode prev) {
    Function functionObj = step.getMapFunction();
    Function mapFunction;
    if (functionObj instanceof FunctionTraverser) {
        mapFunction = ReflectionUtils.getFieldValue(FunctionTraverser.class, functionObj, "function");
    } else {
        mapFunction = functionObj;
    }
    if (mapFunction instanceof CustomCaseWhenFunction) {
        CustomCaseWhenFunction customCaseWhenFunction = CustomCaseWhenFunction.class.cast(mapFunction);
        return processCaseWhenFunction(prev, customCaseWhenFunction);
    } else if (mapFunction instanceof CustomAggregationListTraversal) {
        CustomAggregationListTraversal customAggregationListTraversal = CustomAggregationListTraversal.class.cast(mapFunction);
        List<Traversal<?, ?>> aggregateTraversalList = customAggregationListTraversal.getTraversalList();
        List<TreeNode> aggregateNodeList = Lists.newArrayList();
        boolean saveFlag = rootPathFlag;
        this.rootPathFlag = false;
        for (Traversal<?, ?> traversal : aggregateTraversalList) {
            aggregateNodeList.add(travelTraversalAdmin(traversal.asAdmin(), new SourceDelegateNode(prev, schema)));
        }
        this.rootPathFlag = saveFlag;
        return new AggregationListTreeNode(prev, schema, customAggregationListTraversal.getNameList(), aggregateNodeList);
    } else if (mapFunction instanceof MapPropFillFunction || mapFunction instanceof RangeSumFunction) {
        return new LambdaMapTreeNode(prev, schema, mapFunction, null);
    } else {
        if (this.lambdaEnableFlag) {
            return new LambdaMapTreeNode(prev, schema, mapFunction, buildLambdaIndex(step));
        } else {
            throw new UnsupportedOperationException("Not support lambda map yet");
        }
    }
}
Also used : CustomAggregationListTraversal(com.alibaba.maxgraph.sdkcommon.compiler.custom.aggregate.CustomAggregationListTraversal) CustomCaseWhenFunction(com.alibaba.maxgraph.sdkcommon.compiler.custom.branch.CustomCaseWhenFunction) RangeSumFunction(com.alibaba.maxgraph.sdkcommon.compiler.custom.map.RangeSumFunction) MapPropFillFunction(com.alibaba.maxgraph.sdkcommon.compiler.custom.map.MapPropFillFunction) CustomWhenThenFunction(com.alibaba.maxgraph.sdkcommon.compiler.custom.branch.CustomWhenThenFunction) Function(java.util.function.Function) CustomCaseWhenFunction(com.alibaba.maxgraph.sdkcommon.compiler.custom.branch.CustomCaseWhenFunction) CustomAggregationListTraversal(com.alibaba.maxgraph.sdkcommon.compiler.custom.aggregate.CustomAggregationListTraversal) Traversal(org.apache.tinkerpop.gremlin.process.traversal.Traversal) GraphTraversal(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal) SourceDelegateNode(com.alibaba.maxgraph.compiler.tree.source.SourceDelegateNode) RangeSumFunction(com.alibaba.maxgraph.sdkcommon.compiler.custom.map.RangeSumFunction) MapPropFillFunction(com.alibaba.maxgraph.sdkcommon.compiler.custom.map.MapPropFillFunction)

Example 10 with SourceDelegateNode

use of com.alibaba.maxgraph.compiler.tree.source.SourceDelegateNode in project GraphScope by alibaba.

the class TreeBuilder method visitBranchStep.

private TreeNode visitBranchStep(BranchStep step, TreeNode prev) {
    Traversal.Admin<?, ?> branchTraversal = ReflectionUtils.getFieldValue(BranchStep.class, step, "branchTraversal");
    Map<TraversalOptionParent.Pick, List<Traversal.Admin<?, ?>>> traversalPickOptions = ReflectionUtils.getFieldValue(BranchStep.class, step, "traversalPickOptions");
    List<org.javatuples.Pair<Traversal.Admin, Traversal.Admin<?, ?>>> traversalOptions = ReflectionUtils.getFieldValue(BranchStep.class, step, "traversalOptions");
    checkNotNull(branchTraversal, "branch traversal can't be null");
    checkArgument(!traversalPickOptions.isEmpty() || !traversalOptions.isEmpty(), "traversal options can't be empty");
    Map<Object, List<Traversal.Admin<?, ?>>> traversalAllOptions = new HashMap<>();
    traversalAllOptions.putAll(traversalPickOptions);
    traversalOptions.forEach(pair -> {
        Traversal.Admin left = pair.getValue0();
        if (left instanceof PredicateTraversal.Admin) {
            PredicateTraversal predicateTraversal = (PredicateTraversal) left;
            P p = ReflectionUtils.getFieldValue(PredicateTraversal.class, predicateTraversal, "predicate");
            traversalAllOptions.computeIfAbsent(p.getValue(), k -> Lists.newArrayList()).add(pair.getValue1());
        }
    });
    boolean saveFlag = rootPathFlag;
    rootPathFlag = false;
    TreeNode branchTreeNode = travelTraversalAdmin(branchTraversal, new SourceDelegateNode(prev, schema));
    rootPathFlag = saveFlag;
    TreeNode noneTreeNode = null, anyTreeNode = null;
    Map<Object, List<TreeNode>> branchOptionList = Maps.newHashMap();
    BranchTreeNode branchOptionTreeNode = new BranchTreeNode(prev, schema, branchTreeNode);
    for (Map.Entry<Object, List<Traversal.Admin<?, ?>>> entry : traversalAllOptions.entrySet()) {
        if (entry.getKey() == TraversalOptionParent.Pick.none) {
            checkArgument(entry.getValue().size() == 1);
            noneTreeNode = travelTraversalAdmin(entry.getValue().get(0), new SourceDelegateNode(prev, schema));
        } else if (entry.getKey() == TraversalOptionParent.Pick.any) {
            checkArgument(entry.getValue().size() == 1);
            anyTreeNode = travelTraversalAdmin(entry.getValue().get(0), new SourceDelegateNode(prev, schema));
        } else {
            List<TreeNode> optionTreeNodeList = Lists.newArrayList();
            for (Traversal.Admin<?, ?> v : entry.getValue()) {
                TreeNode optionTreeNode = travelTraversalAdmin(v, new SourceDelegateNode(prev, schema));
                optionTreeNodeList.add(optionTreeNode);
            }
            branchOptionList.put(entry.getKey(), optionTreeNodeList);
        }
    }
    branchOptionTreeNode.setNoneTreeNode(noneTreeNode);
    branchOptionTreeNode.setAnyTreeNode(anyTreeNode);
    branchOptionTreeNode.setOptionTreeNodeList(branchOptionList);
    return branchOptionTreeNode;
}
Also used : PageRankStep(com.alibaba.maxgraph.tinkerpop.steps.PageRankStep) WherePredicateStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.WherePredicateStep) SampleGlobalStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.SampleGlobalStep) DedupGlobalStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.DedupGlobalStep) Contains(org.apache.tinkerpop.gremlin.process.traversal.Contains) StringUtils(org.apache.commons.lang3.StringUtils) ShortestPathVertexProgramStep(org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ShortestPathVertexProgramStep) OrStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.OrStep) ShortestPathStep(com.alibaba.maxgraph.tinkerpop.steps.ShortestPathStep) ProfileStrategy(org.apache.tinkerpop.gremlin.process.traversal.strategy.finalization.ProfileStrategy) Pair(org.apache.commons.lang3.tuple.Pair) UnionStep(org.apache.tinkerpop.gremlin.process.traversal.step.branch.UnionStep) TraversalParent(org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent) OutputVineyardStep(com.alibaba.maxgraph.tinkerpop.steps.OutputVineyardStep) PeerPressureVertexProgramStep(org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PeerPressureVertexProgramStep) LambdaFilterStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.LambdaFilterStep) org.apache.tinkerpop.gremlin.process.traversal.step.map(org.apache.tinkerpop.gremlin.process.traversal.step.map) TraversalHelper(org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper) VertexRatioProgram(com.alibaba.maxgraph.sdkcommon.compiler.custom.program.VertexRatioProgram) ReflectionUtils(com.alibaba.maxgraph.compiler.utils.ReflectionUtils) RegexPredicate(com.alibaba.maxgraph.sdkcommon.compiler.custom.RegexPredicate) Message(com.alibaba.maxgraph.Message) IsStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.IsStep) CountFlagNode(com.alibaba.maxgraph.compiler.tree.addition.CountFlagNode) ListKeyPredicate(com.alibaba.maxgraph.sdkcommon.compiler.custom.ListKeyPredicate) LabelPropagationStep(com.alibaba.maxgraph.tinkerpop.steps.LabelPropagationStep) SideEffectCapStep(org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectCapStep) GraphSchema(com.alibaba.maxgraph.compiler.api.schema.GraphSchema) SourceTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceTreeNode) EmptyStep(org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep) java.util(java.util) CustomVertexProgramStep(com.alibaba.maxgraph.tinkerpop.steps.CustomVertexProgramStep) MxGraphStepStrategy(com.alibaba.maxgraph.tinkerpop.strategies.MxGraphStepStrategy) SourceDelegateNode(com.alibaba.maxgraph.compiler.tree.source.SourceDelegateNode) AdjacentToIncidentStrategy(org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.AdjacentToIncidentStrategy) StringKeyPredicate(com.alibaba.maxgraph.sdkcommon.compiler.custom.StringKeyPredicate) AllPathStep(com.alibaba.maxgraph.tinkerpop.steps.AllPathStep) VertexValueType(com.alibaba.maxgraph.compiler.tree.value.VertexValueType) Supplier(java.util.function.Supplier) VertexProgram(org.apache.tinkerpop.gremlin.process.computer.VertexProgram) CustomPredicate(com.alibaba.maxgraph.sdkcommon.compiler.custom.CustomPredicate) Lists(com.google.common.collect.Lists) Order(org.apache.tinkerpop.gremlin.process.traversal.Order) ConnectedComponentVertexProgramStep(org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ConnectedComponentVertexProgramStep) EstimateCountTreeNode(com.alibaba.maxgraph.compiler.tree.source.EstimateCountTreeNode) TraversalRing(org.apache.tinkerpop.gremlin.process.traversal.util.TraversalRing) LpaVertexProgramStep(com.alibaba.maxgraph.tinkerpop.steps.LpaVertexProgramStep) ComputerAwareStep(org.apache.tinkerpop.gremlin.process.traversal.step.util.ComputerAwareStep) ListValueType(com.alibaba.maxgraph.compiler.tree.value.ListValueType) PropertyType(org.apache.tinkerpop.gremlin.structure.PropertyType) SourceEdgeTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceEdgeTreeNode) CustomCaseWhenFunction(com.alibaba.maxgraph.sdkcommon.compiler.custom.branch.CustomCaseWhenFunction) StandardVerificationStrategy(org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.StandardVerificationStrategy) CustomAggregationListTraversal(com.alibaba.maxgraph.sdkcommon.compiler.custom.aggregate.CustomAggregationListTraversal) T(org.apache.tinkerpop.gremlin.structure.T) OptimizeConfig(com.alibaba.maxgraph.compiler.optimizer.OptimizeConfig) Direction(org.apache.tinkerpop.gremlin.structure.Direction) IncidentToAdjacentStrategy(org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.IncidentToAdjacentStrategy) Traversal(org.apache.tinkerpop.gremlin.process.traversal.Traversal) SchemaUtils(com.alibaba.maxgraph.sdkcommon.util.SchemaUtils) RangeGlobalStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.RangeGlobalStep) ListPredicate(com.alibaba.maxgraph.sdkcommon.compiler.custom.ListPredicate) HitsVertexProgramStep(com.alibaba.maxgraph.tinkerpop.steps.HitsVertexProgramStep) Pop(org.apache.tinkerpop.gremlin.process.traversal.Pop) LoggerFactory(org.slf4j.LoggerFactory) CreateGraphStep(com.alibaba.maxgraph.tinkerpop.steps.CreateGraphStep) Preconditions.checkArgument(com.google.common.base.Preconditions.checkArgument) RangeSumFunction(com.alibaba.maxgraph.sdkcommon.compiler.custom.map.RangeSumFunction) AggregateLocalStep(org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.AggregateLocalStep) ConnectedComponentsStep(com.alibaba.maxgraph.tinkerpop.steps.ConnectedComponentsStep) org.apache.tinkerpop.gremlin.process.traversal.lambda(org.apache.tinkerpop.gremlin.process.traversal.lambda) RepeatUnrollStrategy(org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.RepeatUnrollStrategy) EstimateCountStep(com.alibaba.maxgraph.tinkerpop.steps.EstimateCountStep) P(org.apache.tinkerpop.gremlin.process.traversal.P) ValueValueType(com.alibaba.maxgraph.compiler.tree.value.ValueValueType) CompilerUtils(com.alibaba.maxgraph.compiler.utils.CompilerUtils) HasContainer(org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer) SourceVertexTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceVertexTreeNode) Predicate(java.util.function.Predicate) AndStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.AndStep) LazyBarrierStrategy(org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.LazyBarrierStrategy) MapPropFillFunction(com.alibaba.maxgraph.sdkcommon.compiler.custom.map.MapPropFillFunction) Collectors(java.util.stream.Collectors) Sets(com.google.common.collect.Sets) Compare(org.apache.tinkerpop.gremlin.process.traversal.Compare) MaxGraphFilterRankingStrategy(com.alibaba.maxgraph.compiler.strategy.traversal.MaxGraphFilterRankingStrategy) HitsStep(com.alibaba.maxgraph.tinkerpop.steps.HitsStep) SourceCreateGraphTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceCreateGraphTreeNode) EdgeVertexWithByStep(com.alibaba.maxgraph.tinkerpop.steps.EdgeVertexWithByStep) ConnectiveP(org.apache.tinkerpop.gremlin.process.traversal.util.ConnectiveP) CustomWhenThenFunction(com.alibaba.maxgraph.sdkcommon.compiler.custom.branch.CustomWhenThenFunction) NotImplementedException(org.apache.commons.lang3.NotImplementedException) VertexByModulatingStep(com.alibaba.maxgraph.tinkerpop.steps.VertexByModulatingStep) MaxGraphStep(com.alibaba.maxgraph.tinkerpop.steps.MaxGraphStep) HasStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasStep) PredicateType(com.alibaba.maxgraph.sdkcommon.compiler.custom.PredicateType) TreeNodeUtils(com.alibaba.maxgraph.compiler.utils.TreeNodeUtils) DataType(com.alibaba.maxgraph.compiler.api.schema.DataType) VertexWithByStep(com.alibaba.maxgraph.tinkerpop.steps.VertexWithByStep) PathFilterStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.PathFilterStep) Function(java.util.function.Function) FilterStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep) BiPredicate(java.util.function.BiPredicate) ChooseStep(org.apache.tinkerpop.gremlin.process.traversal.step.branch.ChooseStep) JoinZeroNode(com.alibaba.maxgraph.compiler.tree.addition.JoinZeroNode) MapConfiguration(org.apache.commons.configuration2.MapConfiguration) SampleNode(com.alibaba.maxgraph.compiler.tree.addition.SampleNode) PropertyNode(com.alibaba.maxgraph.compiler.tree.addition.PropertyNode) RegexKeyPredicate(com.alibaba.maxgraph.sdkcommon.compiler.custom.RegexKeyPredicate) Logger(org.slf4j.Logger) NotStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.NotStep) FilterRankingStrategy(org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.FilterRankingStrategy) Preconditions.checkNotNull(com.google.common.base.Preconditions.checkNotNull) RepeatStep(org.apache.tinkerpop.gremlin.process.traversal.step.branch.RepeatStep) ConnectiveStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.ConnectiveStep) TraversalVertexProgramStep(org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.TraversalVertexProgramStep) Maps(com.google.common.collect.Maps) GraphTraversal(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal) PageRankVertexProgramStep(org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PageRankVertexProgramStep) Step(org.apache.tinkerpop.gremlin.process.traversal.Step) StringPredicate(com.alibaba.maxgraph.sdkcommon.compiler.custom.StringPredicate) IdentityStep(org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.IdentityStep) SubgraphStep(org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SubgraphStep) OutputStep(com.alibaba.maxgraph.tinkerpop.steps.OutputStep) TraversalOptionParent(org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent) TraversalFilterStep(org.apache.tinkerpop.gremlin.process.traversal.step.filter.TraversalFilterStep) ValueType(com.alibaba.maxgraph.compiler.tree.value.ValueType) VarietyValueType(com.alibaba.maxgraph.compiler.tree.value.VarietyValueType) BranchStep(org.apache.tinkerpop.gremlin.process.traversal.step.branch.BranchStep) CustomAggregationListTraversal(com.alibaba.maxgraph.sdkcommon.compiler.custom.aggregate.CustomAggregationListTraversal) Traversal(org.apache.tinkerpop.gremlin.process.traversal.Traversal) GraphTraversal(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal) SourceDelegateNode(com.alibaba.maxgraph.compiler.tree.source.SourceDelegateNode) P(org.apache.tinkerpop.gremlin.process.traversal.P) ConnectiveP(org.apache.tinkerpop.gremlin.process.traversal.util.ConnectiveP) SourceTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceTreeNode) EstimateCountTreeNode(com.alibaba.maxgraph.compiler.tree.source.EstimateCountTreeNode) SourceEdgeTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceEdgeTreeNode) SourceVertexTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceVertexTreeNode) SourceCreateGraphTreeNode(com.alibaba.maxgraph.compiler.tree.source.SourceCreateGraphTreeNode) Pair(org.apache.commons.lang3.tuple.Pair)

Aggregations

SourceDelegateNode (com.alibaba.maxgraph.compiler.tree.source.SourceDelegateNode)38 SourceTreeNode (com.alibaba.maxgraph.compiler.tree.source.SourceTreeNode)27 SourceVertexTreeNode (com.alibaba.maxgraph.compiler.tree.source.SourceVertexTreeNode)21 EstimateCountTreeNode (com.alibaba.maxgraph.compiler.tree.source.EstimateCountTreeNode)20 SourceCreateGraphTreeNode (com.alibaba.maxgraph.compiler.tree.source.SourceCreateGraphTreeNode)20 SourceEdgeTreeNode (com.alibaba.maxgraph.compiler.tree.source.SourceEdgeTreeNode)20 CustomAggregationListTraversal (com.alibaba.maxgraph.sdkcommon.compiler.custom.aggregate.CustomAggregationListTraversal)17 Traversal (org.apache.tinkerpop.gremlin.process.traversal.Traversal)17 GraphTraversal (org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal)17 LogicalSubQueryPlan (com.alibaba.maxgraph.compiler.logical.LogicalSubQueryPlan)11 LogicalVertex (com.alibaba.maxgraph.compiler.logical.LogicalVertex)11 LogicalEdge (com.alibaba.maxgraph.compiler.logical.LogicalEdge)10 ProcessorFunction (com.alibaba.maxgraph.compiler.logical.function.ProcessorFunction)10 LogicalUnaryVertex (com.alibaba.maxgraph.compiler.logical.LogicalUnaryVertex)9 Pair (org.apache.commons.lang3.tuple.Pair)7 ValueType (com.alibaba.maxgraph.compiler.tree.value.ValueType)5 ValueValueType (com.alibaba.maxgraph.compiler.tree.value.ValueValueType)5 VertexValueType (com.alibaba.maxgraph.compiler.tree.value.VertexValueType)5 VertexIdManager (com.alibaba.maxgraph.compiler.logical.VertexIdManager)4 RangeGlobalTreeNode (com.alibaba.maxgraph.compiler.tree.RangeGlobalTreeNode)4