private JoinPredicate rewriteJoinPredicate(Query parent, JoinPredicate predicate) throws TeiidComponentException, TeiidProcessingException{ List joinCrits = predicate.getJoinCriteria(); if(joinCrits != null && joinCrits.size() > 0) { //rewrite join crits by rewriting a compound criteria Criteria criteria = new CompoundCriteria(new ArrayList(joinCrits)); criteria = rewriteCriteria(criteria); joinCrits.clear(); if (criteria instanceof CompoundCriteria && ((CompoundCriteria)criteria).getOperator() == CompoundCriteria.AND) { joinCrits.addAll(((CompoundCriteria)criteria).getCriteria()); } else { joinCrits.add(criteria); } predicate.setJoinCriteria(joinCrits); } if (predicate.getJoinType() == JoinType.JOIN_UNION) { predicate.setJoinType(JoinType.JOIN_FULL_OUTER); predicate.setJoinCriteria(new ArrayList<Criteria>(Arrays.asList(FALSE_CRITERIA))); } else if (predicate.getJoinType() == JoinType.JOIN_RIGHT_OUTER) { predicate.setJoinType(JoinType.JOIN_LEFT_OUTER); FromClause leftClause = predicate.getLeftClause(); predicate.setLeftClause(predicate.getRightClause()); predicate.setRightClause(leftClause); } predicate.setLeftClause( rewriteFromClause(parent, predicate.getLeftClause())); predicate.setRightClause( rewriteFromClause(parent, predicate.getRightClause())); return predicate; }
private JoinPredicate rewriteJoinPredicate(Query parent, JoinPredicate predicate) throws TeiidComponentException, TeiidProcessingException{ List joinCrits = predicate.getJoinCriteria(); if(joinCrits != null && joinCrits.size() > 0) { //rewrite join crits by rewriting a compound criteria Criteria criteria = new CompoundCriteria(new ArrayList(joinCrits)); criteria = rewriteCriteria(criteria); joinCrits.clear(); if (criteria instanceof CompoundCriteria && ((CompoundCriteria)criteria).getOperator() == CompoundCriteria.AND) { joinCrits.addAll(((CompoundCriteria)criteria).getCriteria()); } else { joinCrits.add(criteria); } predicate.setJoinCriteria(joinCrits); } if (predicate.getJoinType() == JoinType.JOIN_UNION) { predicate.setJoinType(JoinType.JOIN_FULL_OUTER); predicate.setJoinCriteria(new ArrayList<Criteria>(Arrays.asList(FALSE_CRITERIA))); } else if (predicate.getJoinType() == JoinType.JOIN_RIGHT_OUTER) { predicate.setJoinType(JoinType.JOIN_LEFT_OUTER); FromClause leftClause = predicate.getLeftClause(); predicate.setLeftClause(predicate.getRightClause()); predicate.setRightClause(leftClause); } predicate.setLeftClause( rewriteFromClause(parent, predicate.getLeftClause())); predicate.setRightClause( rewriteFromClause(parent, predicate.getRightClause())); return predicate; }
private JoinPredicate rewriteJoinPredicate(Query parent, JoinPredicate predicate) throws TeiidComponentException, TeiidProcessingException{ List joinCrits = predicate.getJoinCriteria(); if(joinCrits != null && joinCrits.size() > 0) { //rewrite join crits by rewriting a compound criteria Criteria criteria = new CompoundCriteria(new ArrayList(joinCrits)); criteria = rewriteCriteria(criteria); joinCrits.clear(); if (criteria instanceof CompoundCriteria && ((CompoundCriteria)criteria).getOperator() == CompoundCriteria.AND) { joinCrits.addAll(((CompoundCriteria)criteria).getCriteria()); } else { joinCrits.add(criteria); } predicate.setJoinCriteria(joinCrits); } if (predicate.getJoinType() == JoinType.JOIN_UNION) { predicate.setJoinType(JoinType.JOIN_FULL_OUTER); predicate.setJoinCriteria(new ArrayList<Criteria>(Arrays.asList(FALSE_CRITERIA))); } else if (predicate.getJoinType() == JoinType.JOIN_RIGHT_OUTER) { predicate.setJoinType(JoinType.JOIN_LEFT_OUTER); FromClause leftClause = predicate.getLeftClause(); predicate.setLeftClause(predicate.getRightClause()); predicate.setRightClause(leftClause); } predicate.setLeftClause( rewriteFromClause(parent, predicate.getLeftClause())); predicate.setRightClause( rewriteFromClause(parent, predicate.getRightClause())); return predicate; }
jp.setJoinCriteria(newJoinCrits);
jp.setJoinCriteria(Criteria.separateCriteriaByAnd(mappedCriteria)); query.getFrom().getClauses().add(jp); } else {
jp.setJoinCriteria(Criteria.separateCriteriaByAnd(mappedCriteria)); query.getFrom().getClauses().add(jp); } else {
jp.setJoinCriteria(Criteria.separateCriteriaByAnd(mappedCriteria)); query.getFrom().getClauses().add(jp); } else {
/** * Constructs an example <code>JoinPredicate</code> object that can be used * as join predicate in a query. * * @param joinType the type of join to be constructed * @param joinOnElement the element name to be used in the left and right * side criteria of the ON expression of the join * @return a join predicate object */ public static JoinPredicate example(JoinType joinType, String joinOnElement) { JoinPredicate jp = new JoinPredicate(); GroupSymbol g1 = new GroupSymbol("m.g1"); //$NON-NLS-1$ GroupSymbol g2 = new GroupSymbol("m.g2"); //$NON-NLS-1$ FromClause lc = new UnaryFromClause(g1); FromClause rc = new UnaryFromClause(g2); Expression le = new ElementSymbol("m.g1." + joinOnElement); //$NON-NLS-1$ Expression re = new ElementSymbol("m.g2." + joinOnElement); //$NON-NLS-1$ Criteria c1 = new CompareCriteria(le, CompareCriteria.EQ, re); jp.setLeftClause(lc); jp.setRightClause(rc); jp.setJoinType(joinType != null ? joinType : JoinType.JOIN_LEFT_OUTER); jp.setJoinCriteria( Arrays.asList(new Object[]{c1})); return jp; }
jj_consume_token(ON); onCriteria = criteria(info); result.setJoinCriteria(Criteria.separateCriteriaByAnd(onCriteria)); {if (true) return result;} throw new Error("Missing return statement in function");
jj_consume_token(ON); onCriteria = criteria(info); result.setJoinCriteria(Criteria.separateCriteriaByAnd(onCriteria)); {if (true) return result;} throw new Error("Missing return statement in function");
jj_consume_token(ON); onCriteria = criteria(info); result.setJoinCriteria(Criteria.separateCriteriaByAnd(onCriteria)); {if (true) return result;} throw new Error("Missing return statement in function");