package net.sf.jsqlparser.test.select;
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.statement.Statement;
import net.sf.jsqlparser.statement.select.PlainSelect;
import net.sf.jsqlparser.statement.select.Select;
import static net.sf.jsqlparser.test.TestUtils.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
/**
* Created by nhanitvn on 5/19/16.
*/
public class HiveTest {
@Test
public void testLeftSemiJoin() throws Exception {
String sql;
Statement statement;
sql = "SELECT\n"
+ " Something\n"
+ "FROM\n"
+ " Sometable\n"
+ "LEFT SEMI JOIN\n"
+ " Othertable\n";
statement = CCJSqlParserUtil.parse(sql);
System.out.println(statement.toString());
Select select = (Select) statement;
PlainSelect plainSelect = (PlainSelect) select.getSelectBody();
assertEquals(1, plainSelect.getJoins().size());
assertEquals("Othertable", ((Table) plainSelect.getJoins().get(0).getRightItem()).
getFullyQualifiedName());
assertTrue(plainSelect.getJoins().get(0).isLeft());
assertTrue(plainSelect.getJoins().get(0).isSemi());
assertStatementCanBeDeparsedAs(select, sql, true);
assertSqlCanBeParsedAndDeparsed(sql, true);
}
}