Skip to content

Commit e56fbe9

Browse files
committed
Add a test-case for Hive's LEFT SEMI JOIN
1 parent fd03ad4 commit e56fbe9

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package net.sf.jsqlparser.test.select;
2+
3+
import junit.framework.*;
4+
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
5+
import net.sf.jsqlparser.schema.Table;
6+
import net.sf.jsqlparser.statement.Statement;
7+
import net.sf.jsqlparser.statement.select.PlainSelect;
8+
import net.sf.jsqlparser.statement.select.Select;
9+
10+
import static net.sf.jsqlparser.test.TestUtils.*;
11+
12+
/**
13+
* Created by nhanitvn on 5/19/16.
14+
*/
15+
public class HiveTest extends TestCase {
16+
17+
public void testLeftSemiJoin() throws Exception {
18+
String sql;
19+
Statement statement;
20+
21+
sql = "SELECT\n"
22+
+ " Something\n"
23+
+ "FROM\n"
24+
+ " Sometable\n"
25+
+ "LEFT SEMI JOIN\n"
26+
+ " Othertable\n";
27+
28+
statement = CCJSqlParserUtil.parse(sql);
29+
30+
System.out.println(statement.toString());
31+
32+
Select select = (Select) statement;
33+
PlainSelect plainSelect = (PlainSelect) select.getSelectBody();
34+
assertEquals(1, plainSelect.getJoins().size());
35+
assertEquals("Othertable", ((Table) plainSelect.getJoins().get(0).getRightItem()).getFullyQualifiedName());
36+
assertTrue(plainSelect.getJoins().get(0).isLeft());
37+
assertTrue(plainSelect.getJoins().get(0).isSemi());
38+
assertStatementCanBeDeparsedAs(select, sql, true);
39+
40+
assertSqlCanBeParsedAndDeparsed(sql, true);
41+
}
42+
}

0 commit comments

Comments
 (0)