Package org.teiid.query.sql.lang

Examples of org.teiid.query.sql.lang.JoinPredicate


        UnaryFromClause ufc2 = new UnaryFromClause();
        ufc2.setGroup(new GroupSymbol("t3")); //$NON-NLS-1$
       
        List criteria = new ArrayList();
        criteria.add(new CompareCriteria(new ElementSymbol("x.a"), AbstractCompareCriteria.EQ, new ElementSymbol("t3.a")));//$NON-NLS-1$//$NON-NLS-2$
        JoinPredicate joinPredicate = new JoinPredicate(sfc, ufc2, JoinType.JOIN_INNER, criteria);
        joinPredicate.setOptional(true);

        UnaryFromClause ufc3 = new UnaryFromClause();
        ufc3.setGroup(new GroupSymbol("t1")); //$NON-NLS-1$
        from.addClause(ufc3);
        from.addClause(joinPredicate);
View Full Code Here


        ufc2.setGroup(new GroupSymbol("t2")); //$NON-NLS-1$
        ufc2.setOptional(true);
       
        List criteria = new ArrayList();
        criteria.add(new CompareCriteria(new ElementSymbol("t1.a"), AbstractCompareCriteria.EQ, new ElementSymbol("t2.a")));//$NON-NLS-1$//$NON-NLS-2$
        JoinPredicate joinPredicate = new JoinPredicate(ufc, ufc2, JoinType.JOIN_LEFT_OUTER, criteria);

        UnaryFromClause ufc3 = new UnaryFromClause();
        ufc3.setGroup(new GroupSymbol("t3")); //$NON-NLS-1$
        ufc3.setOptional(true);

        criteria = new ArrayList();
        criteria.add(new CompareCriteria(new ElementSymbol("t1.a"), AbstractCompareCriteria.EQ, new ElementSymbol("t3.a")));//$NON-NLS-1$//$NON-NLS-2$
        JoinPredicate joinPredicate2 = new JoinPredicate(joinPredicate, ufc3, JoinType.JOIN_LEFT_OUTER, criteria);

        from.addClause(joinPredicate2);
        query.setFrom(from);          

        TestParser.helpTest(sql, "SELECT b FROM (t1 LEFT OUTER JOIN /*+ optional */ t2 ON t1.a = t2.a) LEFT OUTER JOIN /*+ optional */ t3 ON t1.a = t3.a", query);         //$NON-NLS-1$
View Full Code Here

        ElementSymbol b = new ElementSymbol("b")//$NON-NLS-1$
        ElementSymbol c = new ElementSymbol("c")//$NON-NLS-1$
       
        List crits = new ArrayList();
        crits.add(new CompareCriteria(a, CompareCriteria.EQ, b));
        JoinPredicate jp = new JoinPredicate(new UnaryFromClause(g1), new UnaryFromClause(g2), JoinType.JOIN_INNER, crits);
        jp.setMakeDep(true);
        List crits2 = new ArrayList();
        crits2.add(new CompareCriteria(a, CompareCriteria.EQ, c));
        JoinPredicate jp2 = new JoinPredicate(jp, new UnaryFromClause(g3), JoinType.JOIN_LEFT_OUTER, crits2);
        From from = new From();
        from.addClause(jp2);

        Select select = new Select();
        select.addSymbol(a);
View Full Code Here

                    crits.add(QueryRewriter.TRUE_CRITERIA);
                } else if (joinType == JoinType.JOIN_CROSS && !crits.isEmpty()) {
                    joinType = JoinType.JOIN_INNER;
                }
               
                JoinPredicate jp = new JoinPredicate(clause1, clause2, joinType, crits);
               
                // Replace last two clauses with new predicate
                clauses.remove(lastClause);
                clauses.set(lastClause-1, jp);
                return;
View Full Code Here

    */
    private void shredJoinTree(FromClause clause, Query query) {
        if(clause instanceof UnaryFromClause || clause instanceof SubqueryFromClause) {
            query.getFrom().addClause(clause);
        } else {
            JoinPredicate jp = (JoinPredicate) clause;
           
            List<Criteria> crits = jp.getJoinCriteria();
            if(crits != null && crits.size() > 0) {
              Criteria joinCrit = null;
              if (crits.size() > 1) {
                joinCrit = new CompoundCriteria(crits);
              } else {
                joinCrit = crits.get(0);
              }
                query.setCriteria(CompoundCriteria.combineCriteria(joinCrit, query.getCriteria()));
            }
           
            // Recurse through tree
            shredJoinTree(jp.getLeftClause(), query);
            shredJoinTree(jp.getRightClause(), query);           
        }
    }
View Full Code Here

     */
    static boolean hasOuterJoins(FromClause clause) {
        if(clause instanceof UnaryFromClause || clause instanceof SubqueryFromClause) {
            return false;
        }
        JoinPredicate jp = (JoinPredicate) clause;
        if(jp.getJoinType().isOuter()) {
            return true;
        }
        // Walk children
        boolean childHasOuter = hasOuterJoins(jp.getLeftClause());
        if(childHasOuter) {
            return true;
        }
        return hasOuterJoins(jp.getRightClause());
    }
View Full Code Here

      new ElementSymbol("g1.a1"), //$NON-NLS-1$
      CompareCriteria.EQ,
      new ElementSymbol("g2.a2")); //$NON-NLS-1$
    ArrayList<Criteria> crits = new ArrayList<Criteria>();
    crits.add(jcrit);   
    JoinPredicate jp = new JoinPredicate(g1, g2, JoinType.JOIN_INNER, crits);
    From from = new From();
    from.addClause(jp);

    AllSymbol all = new AllSymbol();
    Select select = new Select();
View Full Code Here

  /** SELECT * FROM g1 cross join g2 */
  @Test public void testCrossJoin() {
    UnaryFromClause g1 = new UnaryFromClause(new GroupSymbol("g1")); //$NON-NLS-1$
    UnaryFromClause g2 = new UnaryFromClause(new GroupSymbol("g2")); //$NON-NLS-1$
    JoinPredicate jp = new JoinPredicate(g1, g2, JoinType.JOIN_CROSS);   
    From from = new From();
    from.addClause(jp)

    AllSymbol all = new AllSymbol();
    Select select = new Select();
View Full Code Here

 
  /** SELECT * FROM (g1 cross join g2), g3 */
  @Test public void testFromClauses() {
    UnaryFromClause g1 = new UnaryFromClause(new GroupSymbol("g1")); //$NON-NLS-1$
    UnaryFromClause g2 = new UnaryFromClause(new GroupSymbol("g2")); //$NON-NLS-1$
    JoinPredicate jp = new JoinPredicate(g1, g2, JoinType.JOIN_CROSS);   
    From from = new From();
    from.addClause(jp)
    from.addClause(new UnaryFromClause(new GroupSymbol("g3"))); //$NON-NLS-1$

    AllSymbol all = new AllSymbol();
View Full Code Here

  /** SELECT * FROM (g1 cross join g2) cross join g3 */
  @Test public void testMultiCrossJoin() {
    UnaryFromClause g1 = new UnaryFromClause(new GroupSymbol("g1")); //$NON-NLS-1$
    UnaryFromClause g2 = new UnaryFromClause(new GroupSymbol("g2"));     //$NON-NLS-1$
    JoinPredicate jp = new JoinPredicate(g1, g2, JoinType.JOIN_CROSS);
    JoinPredicate jp2 = new JoinPredicate(jp, new UnaryFromClause(new GroupSymbol("g3")), JoinType.JOIN_CROSS);     //$NON-NLS-1$
    From from = new From();
    from.addClause(jp2)

    AllSymbol all = new AllSymbol();
    Select select = new Select();
View Full Code Here

TOP

Related Classes of org.teiid.query.sql.lang.JoinPredicate

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.