@Test public final void testCrossJoinClause() { QueryBlock block = (QueryBlock) analyzer.parse(JOINS[3]).getParseTree(); JoinClause join = block.getJoinClause(); assertEquals(JoinType.CROSS_JOIN, join.getJoinType()); assertEquals("branch", join.getRight().getTableName()); assertTrue(join.hasLeftJoin()); assertEquals("people", join.getLeftJoin().getLeft().getTableName()); assertEquals("student", join.getLeftJoin().getRight().getTableName()); }
@Test public final void testRightJoinClause() { QueryBlock block = (QueryBlock) analyzer.parse(JOINS[8]).getParseTree(); JoinClause join = block.getJoinClause(); assertEquals(JoinType.RIGHT_OUTER, join.getJoinType()); assertEquals("people", join.getLeft().getTableName()); assertEquals("p", join.getLeft().getAlias()); assertEquals("student", join.getRight().getTableName()); assertEquals("s", join.getRight().getAlias()); assertTrue(join.hasJoinQual()); assertEquals(EvalNode.Type.EQUAL, join.getJoinQual().getType()); }
@Test /** join / \ join branch / \ people student */ public final void testNaturalJoinClause() { QueryBlock block = (QueryBlock) analyzer.parse(JOINS[0]).getParseTree(); JoinClause join = block.getJoinClause(); assertEquals(JoinType.INNER, join.getJoinType()); assertTrue(join.isNatural()); assertEquals("branch", join.getRight().getTableName()); assertTrue(join.hasLeftJoin()); assertEquals("people", join.getLeftJoin().getLeft().getTableName()); assertEquals("student", join.getLeftJoin().getRight().getTableName()); }
@Test /** join / \ people student */ public final void testInnerJoinClause() { QueryBlock block = (QueryBlock) analyzer.parse(JOINS[1]).getParseTree(); JoinClause join = block.getJoinClause(); assertEquals(JoinType.INNER, join.getJoinType()); assertEquals("people", join.getLeft().getTableName()); assertEquals("p", join.getLeft().getAlias()); assertEquals("student", join.getRight().getTableName()); assertEquals("s", join.getRight().getAlias()); assertTrue(join.hasJoinQual()); assertEquals(EvalNode.Type.EQUAL, join.getJoinQual().getType()); block = (QueryBlock) analyzer.parse(JOINS[2]).getParseTree(); join = block.getJoinClause(); assertEquals(JoinType.INNER, join.getJoinType()); assertEquals("people", join.getLeft().getTableName()); assertEquals("p", join.getLeft().getAlias()); assertEquals("student", join.getRight().getTableName()); assertEquals("s", join.getRight().getAlias()); assertTrue(join.hasJoinColumns()); assertEquals("id", join.getJoinColumns()[0].getColumnName()); }