public static JoinType getJoinTypePreventingCriteriaOptimization(PlanNode joinNode, Set<GroupSymbol> groups) { JoinType joinType = (JoinType) joinNode.getProperty(NodeConstants.Info.JOIN_TYPE); if(!joinType.isOuter()) { return null; } if(joinType.equals(JoinType.JOIN_FULL_OUTER)) { return joinType; } Set<GroupSymbol> innerGroups = getInnerSideJoinNodes(joinNode)[0].getGroups(); for (GroupSymbol group : groups) { if (innerGroups.contains(group)) { return joinType; } } return null; }
public static JoinType getJoinTypePreventingCriteriaOptimization(PlanNode joinNode, Set<GroupSymbol> groups) { JoinType joinType = (JoinType) joinNode.getProperty(NodeConstants.Info.JOIN_TYPE); if(!joinType.isOuter()) { return null; } if(joinType.equals(JoinType.JOIN_FULL_OUTER)) { return joinType; } Set<GroupSymbol> innerGroups = getInnerSideJoinNodes(joinNode)[0].getGroups(); for (GroupSymbol group : groups) { if (innerGroups.contains(group)) { return joinType; } } return null; }
public static JoinType getJoinTypePreventingCriteriaOptimization(PlanNode joinNode, Set<GroupSymbol> groups) { JoinType joinType = (JoinType) joinNode.getProperty(NodeConstants.Info.JOIN_TYPE); if(!joinType.isOuter()) { return null; } if(joinType.equals(JoinType.JOIN_FULL_OUTER)) { return joinType; } Set<GroupSymbol> innerGroups = getInnerSideJoinNodes(joinNode)[0].getGroups(); for (GroupSymbol group : groups) { if (innerGroups.contains(group)) { return joinType; } } return null; }
} else { FrameUtil.replaceWithNullNode(JoinUtil.getInnerSideJoinNodes(node)[0]); removeCopiedFlag = true;
} else { FrameUtil.replaceWithNullNode(JoinUtil.getInnerSideJoinNodes(node)[0]); removeCopiedFlag = true;
} else { FrameUtil.replaceWithNullNode(JoinUtil.getInnerSideJoinNodes(node)[0]); removeCopiedFlag = true;
PlanNode[] innerJoinNodes = JoinUtil.getInnerSideJoinNodes(joinNode);
PlanNode[] innerJoinNodes = JoinUtil.getInnerSideJoinNodes(joinNode);
PlanNode[] innerJoinNodes = JoinUtil.getInnerSideJoinNodes(joinNode);
if(jtype == JoinType.JOIN_FULL_OUTER || (jtype.isOuter() && JoinUtil.getInnerSideJoinNodes(joinNode)[0] != sourceNode)) { sourceNode.recordDebugAnnotation("node is on outer side of the join", null, "Rejecting dependent join", analysisRecord, null); //$NON-NLS-1$ //$NON-NLS-2$ return false;
if(jtype == JoinType.JOIN_FULL_OUTER || (jtype.isOuter() && JoinUtil.getInnerSideJoinNodes(joinNode)[0] != sourceNode)) { sourceNode.recordDebugAnnotation("node is on outer side of the join", null, "Rejecting dependent join", analysisRecord, null); //$NON-NLS-1$ //$NON-NLS-2$ return false;
if(jtype == JoinType.JOIN_FULL_OUTER || (jtype.isOuter() && JoinUtil.getInnerSideJoinNodes(joinNode)[0] != sourceNode)) { sourceNode.recordDebugAnnotation("node is on outer side of the join", null, "Rejecting dependent join", analysisRecord, null); //$NON-NLS-1$ //$NON-NLS-2$ return false;