package com.alibaba.druid.bvt.sql.odps; import org.junit.Assert; import com.alibaba.druid.sql.SQLUtils; import com.alibaba.druid.sql.ast.SQLStatement; import com.alibaba.druid.sql.dialect.odps.parser.OdpsStatementParser; import com.alibaba.druid.sql.parser.Token; import junit.framework.TestCase; public class OdpsCreateViewTest extends TestCase { public void test_create() throws Exception { String sql = "CREATE view sale_detail as select * from dual;"; OdpsStatementParser parser = new OdpsStatementParser(sql); SQLStatement stmt = parser.parseStatementList().get(0); parser.match(Token.EOF); String output = SQLUtils.toOdpsString(stmt); Assert.assertEquals("CREATE VIEW sale_detail" // + "\nAS" // + "\nSELECT *" // + "\nFROM dual", output); } public void test_create_or_replace() throws Exception { String sql = "CREATE or replace view sale_detail as select * from dual;"; OdpsStatementParser parser = new OdpsStatementParser(sql); SQLStatement stmt = parser.parseStatementList().get(0); parser.match(Token.EOF); String output = SQLUtils.toOdpsString(stmt); Assert.assertEquals("CREATE OR REPLACE VIEW sale_detail" // + "\nAS" // + "\nSELECT *" // + "\nFROM dual", output); } public void test_create_if_not_exists() throws Exception { String sql = "CREATE view if not exists sale_detail as select * from dual;"; OdpsStatementParser parser = new OdpsStatementParser(sql); SQLStatement stmt = parser.parseStatementList().get(0); parser.match(Token.EOF); String output = SQLUtils.toOdpsString(stmt); Assert.assertEquals("CREATE VIEW IF NOT EXISTS sale_detail" // + "\nAS" // + "\nSELECT *" // + "\nFROM dual", output); } public void test_create_comments() throws Exception { String sql = "CREATE view if not exists sale_detail comment 'aaaa' as select * from dual;"; OdpsStatementParser parser = new OdpsStatementParser(sql); SQLStatement stmt = parser.parseStatementList().get(0); parser.match(Token.EOF); String output = SQLUtils.toOdpsString(stmt); Assert.assertEquals("CREATE VIEW IF NOT EXISTS sale_detail" // + "\nCOMMENT 'aaaa'" // + "\nAS" // + "\nSELECT *" // + "\nFROM dual", output); } public void test_create_column_comments() throws Exception { String sql = "CREATE view if not exists sale_detail (f1 comment 'aaaa', f2 comment 'bbb') as select * from dual;"; OdpsStatementParser parser = new OdpsStatementParser(sql); SQLStatement stmt = parser.parseStatementList().get(0); parser.match(Token.EOF); String output = SQLUtils.toOdpsString(stmt); Assert.assertEquals("CREATE VIEW IF NOT EXISTS sale_detail" // + "\n(" // + "\n\tf1 COMMENT 'aaaa', " // + "\n\tf2 COMMENT 'bbb'" // + "\n)" // + "\nAS" // + "\nSELECT *" // + "\nFROM dual", output); } }