sql format support lower case

This commit is contained in:
高铁
2015-12-12 20:54:02 +08:00
parent a84c53d4fb
commit de0715bd9c
11 changed files with 691 additions and 621 deletions
@@ -68,5 +68,14 @@ public class MySqlSelectTest_14 extends MysqlTest {
+ "\n\tFROM t2"//
+ "\n\t)", //
output);
String output_lcase = SQLUtils.toMySqlString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
Assert.assertEquals("select *" //
+ "\nfrom t1"//
+ "\nwhere column1 = ("//
+ "\n\tselect column1"//
+ "\n\tfrom t2"//
+ "\n\t)", //
output_lcase);
}
}
@@ -18,7 +18,6 @@ package com.alibaba.druid.bvt.sql.odps;
import org.junit.Assert;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.SQLUtils.FormatOption;
import junit.framework.TestCase;
@@ -33,10 +32,7 @@ public class OdpsSelectTest4 extends TestCase {
public void test_distribute_by_lcase() throws Exception {
String sql = "select total_day_cnt * EXP(-datediff(to_date('20150819', 'yyyymmdd'), last_time, 'dd') / 60) from dual";//
FormatOption option = new FormatOption();
option.setUppCase(false);;
Assert.assertEquals("select total_day_cnt * EXP(-datediff(to_date('20150819', 'yyyymmdd'), last_time, 'dd') / 60)"
+ "\nfrom dual", SQLUtils.formatOdps(sql, option));
+ "\nfrom dual", SQLUtils.formatOdps(sql, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION));
}
}
@@ -20,6 +20,7 @@ import java.util.List;
import org.junit.Assert;
import com.alibaba.druid.sql.PGTest;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.dialect.postgresql.parser.PGSQLStatementParser;
import com.alibaba.druid.sql.dialect.postgresql.visitor.PGSchemaStatVisitor;
@@ -32,13 +33,13 @@ public class PGSelectIntoTest extends PGTest {
PGSQLStatementParser parser = new PGSQLStatementParser(sql);
List<SQLStatement> statementList = parser.parseStatementList();
SQLStatement statemen = statementList.get(0);
SQLStatement stmt = statementList.get(0);
print(statementList);
Assert.assertEquals(1, statementList.size());
PGSchemaStatVisitor visitor = new PGSchemaStatVisitor();
statemen.accept(visitor);
stmt.accept(visitor);
System.out.println("Tables : " + visitor.getTables());
System.out.println("fields : " + visitor.getColumns());
@@ -49,5 +50,17 @@ public class PGSelectIntoTest extends PGTest {
Assert.assertTrue(visitor.getColumns().contains(new Column("films", "*")));
Assert.assertTrue(visitor.getColumns().contains(new Column("films", "date_prod")));
String result = SQLUtils.toPGString(stmt);
Assert.assertEquals(result,"SELECT *" //
+ "\nINTO films_recent" //
+ "\nFROM films" //
+ "\nWHERE date_prod >= '2002-01-01'");
String result_lcase = SQLUtils.toPGString(stmt, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
Assert.assertEquals(result_lcase,"select *" //
+ "\ninto films_recent" //
+ "\nfrom films" //
+ "\nwhere date_prod >= '2002-01-01'");
}
}