public static <V> DefaultDirectedGraph<V, DefaultEdge> create() { return create(DefaultEdge.factory()); }
public static <V> DefaultDirectedGraph<V, DefaultEdge> create() { return create(DefaultEdge.factory()); }
/** * Creates a new HepPlanner with the option to keep the graph a * tree(noDAG=true) or allow DAG(noDAG=false). * * @param program program controlling rule application * @param onCopyHook Function to call when a node is copied */ public HepPlanner( HepProgram program, Context context, boolean noDAG, Function2<RelNode, RelNode, Void> onCopyHook, RelOptCostFactory costFactory) { super(costFactory, context); this.mainProgram = program; this.onCopyHook = Util.first(onCopyHook, Functions.ignore2()); mapDigestToVertex = new HashMap<>(); graph = DefaultDirectedGraph.create(); // NOTE jvs 24-Apr-2006: We use LinkedHashSet here and below // in order to provide deterministic behavior. allRules = new LinkedHashSet<>(); this.noDAG = noDAG; }
private DirectedGraph<Integer, DefaultEdge> createGraphFromExpression( final List<RexNode> exprs) { final DirectedGraph<Integer, DefaultEdge> graph = DefaultDirectedGraph.create(); for (int i = 0; i < exprs.size(); i++) { graph.addVertex(i); } for (final Ord<RexNode> expr : Ord.zip(exprs)) { expr.e.accept( new RexVisitorImpl<Void>(true) { public Void visitLocalRef(RexLocalRef localRef) { graph.addEdge(localRef.getIndex(), expr.i); return null; } }); } assert graph.vertexSet().size() == exprs.size(); return graph; } }
private DirectedGraph<Integer, DefaultEdge> createGraphFromExpression( final List<RexNode> exprs) { final DirectedGraph<Integer, DefaultEdge> graph = DefaultDirectedGraph.create(); for (int i = 0; i < exprs.size(); i++) { graph.addVertex(i); } for (final Ord<RexNode> expr : Ord.zip(exprs)) { expr.e.accept( new RexVisitorImpl<Void>(true) { public Void visitLocalRef(RexLocalRef localRef) { graph.addEdge(localRef.getIndex(), expr.i); return null; } }); } assert graph.vertexSet().size() == exprs.size(); return graph; } }
List<Set<Integer>> cohorts) { final DirectedGraph<Integer, DefaultEdge> graph = DefaultDirectedGraph.create(); for (int i = 0; i < exprs.length; i++) { graph.addVertex(i);
DefaultDirectedGraph.create(Edge.FACTORY); for (RelNode node : relNodes) { graph.addVertex(node);
List<Set<Integer>> cohorts) { final DirectedGraph<Integer, DefaultEdge> graph = DefaultDirectedGraph.create(); for (int i = 0; i < exprs.length; i++) { graph.addVertex(i);
RelNode rel, List<RelOptMaterialization> materializations) { DirectedGraph<List<String>, DefaultEdge> usesGraph = DefaultDirectedGraph.create(); final Map<List<String>, RelOptMaterialization> qnameMap = new HashMap<>(); for (RelOptMaterialization materialization : materializations) {
RelNode rel, List<RelOptMaterialization> materializations) { DirectedGraph<List<String>, DefaultEdge> usesGraph = DefaultDirectedGraph.create(); final Map<List<String>, RelOptMaterialization> qnameMap = new HashMap<>(); for (RelOptMaterialization materialization : materializations) {
DefaultDirectedGraph.create(Edge.FACTORY); final List<Vertex> vertices = new ArrayList<>(); for (Pair<RelNode, String> p : Pair.zip(relNodes, aliases)) {
DefaultDirectedGraph.create(Edge::new); final Multimap<List<String>, RelTableRef> tableVNameToTableRefs = ArrayListMultimap.create();
@Test public void testOne() { DirectedGraph<String, DefaultEdge> g = DefaultDirectedGraph.create(); g.addVertex("A"); g.addVertex("B"); g.addVertex("C"); g.addVertex("D"); g.addVertex("E"); g.addVertex("F"); g.addEdge("A", "B"); g.addEdge("B", "C"); g.addEdge("D", "C"); g.addEdge("C", "D"); g.addEdge("E", "F"); g.addEdge("C", "C"); assertEquals("[A, B, C, D]", shortestPath(g, "A", "D").toString()); g.addEdge("B", "D"); assertEquals("[A, B, D]", shortestPath(g, "A", "D").toString()); assertNull("There is no path from A to E", shortestPath(g, "A", "E")); assertEquals("[]", shortestPath(g, "D", "D").toString()); assertNull("Node X is not in the graph", shortestPath(g, "X", "A")); assertEquals("[[A, B, C, D], [A, B, D]]", paths(g, "A", "D").toString()); }
DefaultDirectedGraph.create(); graph.addVertex("A"); graph.addVertex("B");
DefaultDirectedGraph.create(); graph.addVertex("A"); graph.addVertex("B");
@Test public void testOne() { DirectedGraph<String, DefaultEdge> g = DefaultDirectedGraph.create(); g.addVertex("A"); g.addVertex("B"); g.addVertex("C"); g.addVertex("D"); g.addVertex("E"); g.addVertex("F"); g.addEdge("A", "B"); g.addEdge("B", "C"); g.addEdge("D", "C"); g.addEdge("C", "D"); g.addEdge("E", "F"); g.addEdge("C", "C"); assertEquals("[A, B, C, D]", shortestPath(g, "A", "D").toString()); g.addEdge("B", "D"); assertEquals("[A, B, D]", shortestPath(g, "A", "D").toString()); assertNull("There is no path from A to E", shortestPath(g, "A", "E")); assertEquals("[]", shortestPath(g, "D", "D").toString()); assertNull("Node X is not in the graph", shortestPath(g, "X", "A")); assertEquals("[[A, B, C, D], [A, B, D]]", paths(g, "A", "D").toString()); }
private DefaultDirectedGraph<String, DefaultEdge> createDag() { // A - B - C - D // \ / // +- E - F final DefaultDirectedGraph<String, DefaultEdge> graph = DefaultDirectedGraph.create(); graph.addVertex("A"); graph.addVertex("B"); graph.addVertex("C"); graph.addVertex("D"); graph.addVertex("E"); graph.addVertex("F"); graph.addEdge("A", "B"); graph.addEdge("B", "C"); graph.addEdge("C", "D"); graph.addEdge("A", "E"); graph.addEdge("E", "C"); graph.addEdge("E", "F"); return graph; }
private DefaultDirectedGraph<String, DefaultEdge> createDag() { // A - B - C - D // \ / // +- E - F final DefaultDirectedGraph<String, DefaultEdge> graph = DefaultDirectedGraph.create(); graph.addVertex("A"); graph.addVertex("B"); graph.addVertex("C"); graph.addVertex("D"); graph.addVertex("E"); graph.addVertex("F"); graph.addEdge("A", "B"); graph.addEdge("B", "C"); graph.addEdge("C", "D"); graph.addEdge("A", "E"); graph.addEdge("E", "C"); graph.addEdge("E", "F"); return graph; }
@Test public void testVertexMustExist() { DirectedGraph<String, DefaultEdge> g = DefaultDirectedGraph.create();
@Test public void testVertexMustExist() { DirectedGraph<String, DefaultEdge> g = DefaultDirectedGraph.create();