RelationVertex rightVertex = new RelationVertex(rightChild); context.getJoinGraph().addJoin(context, joinNode.getJoinSpec(), leftVertex, rightVertex); } else { RelationVertex rightVertex = new RelationVertex(rightChild); JoinEdge edge = context.getJoinGraph().addJoin(context, joinNode.getJoinSpec(), leftVertex, rightVertex); Set<EvalNode> originPredicates = joinNode.getJoinSpec().getPredicates(); for (EvalNode predicate : joinNode.getJoinSpec().getPredicates()) { if (EvalTreeUtil.isJoinQual(block, leftVertex.getSchema(), rightVertex.getSchema(), predicate, false)) { if (JoinOrderingUtil.checkIfEvaluatedAtEdge(predicate, edge, true)) {
RelationVertex rightVertex = new RelationVertex(rightChild); context.getJoinGraph().addJoin(context, joinNode.getJoinSpec(), leftVertex, rightVertex); } else { RelationVertex rightVertex = new RelationVertex(rightChild); JoinEdge edge = context.getJoinGraph().addJoin(context, joinNode.getJoinSpec(), leftVertex, rightVertex); Set<EvalNode> originPredicates = joinNode.getJoinSpec().getPredicates(); for (EvalNode predicate : joinNode.getJoinSpec().getPredicates()) { if (EvalTreeUtil.isJoinQual(block, leftVertex.getSchema(), rightVertex.getSchema(), predicate, false)) { if (JoinOrderingUtil.checkIfEvaluatedAtEdge(predicate, edge, true)) {
} else if (node instanceof JoinNode) { JoinNode joinNode = (JoinNode) node; JoinSpec joinSpec = joinNode.getJoinSpec(); long leftChildVolume = estimateOutputVolumeInternal(joinNode.getLeftChild()); long rightChildVolume = estimateOutputVolumeInternal(joinNode.getRightChild());
} else if (node instanceof JoinNode) { JoinNode joinNode = (JoinNode) node; JoinSpec joinSpec = joinNode.getJoinSpec(); long leftChildVolume = estimateOutputVolumeInternal(joinNode.getLeftChild()); long rightChildVolume = estimateOutputVolumeInternal(joinNode.getRightChild());