/** * Handles multi-group criteria originating at the given joinNode * * @param joinNode * @param critNode * @return */ private boolean handleJoinCriteria(PlanNode joinNode, PlanNode critNode, QueryMetadataInterface metadata) { JoinType jt = (JoinType)joinNode.getProperty(NodeConstants.Info.JOIN_TYPE); if (jt == JoinType.JOIN_CROSS || jt == JoinType.JOIN_INNER) { return moveCriteriaIntoOnClause(critNode, joinNode); } JoinType optimized = JoinUtil.optimizeJoinType(critNode, joinNode, metadata, true); if (optimized == JoinType.JOIN_INNER) { moveCriteriaIntoOnClause(critNode, joinNode); return true; //return true since the join type has changed } return false; }
/** * Handles multi-group criteria originating at the given joinNode * * @param joinNode * @param critNode * @return */ private boolean handleJoinCriteria(PlanNode joinNode, PlanNode critNode, QueryMetadataInterface metadata) { JoinType jt = (JoinType)joinNode.getProperty(NodeConstants.Info.JOIN_TYPE); if (jt == JoinType.JOIN_CROSS || jt == JoinType.JOIN_INNER) { return moveCriteriaIntoOnClause(critNode, joinNode); } JoinType optimized = JoinUtil.optimizeJoinType(critNode, joinNode, metadata, true); if (optimized == JoinType.JOIN_INNER) { moveCriteriaIntoOnClause(critNode, joinNode); return true; //return true since the join type has changed } return false; }
/** * Handles multi-group criteria originating at the given joinNode * * @param joinNode * @param critNode * @return */ private boolean handleJoinCriteria(PlanNode joinNode, PlanNode critNode, QueryMetadataInterface metadata) { JoinType jt = (JoinType)joinNode.getProperty(NodeConstants.Info.JOIN_TYPE); if (jt == JoinType.JOIN_CROSS || jt == JoinType.JOIN_INNER) { return moveCriteriaIntoOnClause(critNode, joinNode); } JoinType optimized = JoinUtil.optimizeJoinType(critNode, joinNode, metadata, true); if (optimized == JoinType.JOIN_INNER) { moveCriteriaIntoOnClause(critNode, joinNode); return true; //return true since the join type has changed } return false; }