mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
add teradata support
This commit is contained in:
@@ -46,6 +46,8 @@ import com.alibaba.druid.sql.dialect.postgresql.visitor.PGOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.postgresql.visitor.PGSchemaStatVisitor;
|
||||
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerSchemaStatVisitor;
|
||||
import com.alibaba.druid.sql.dialect.teradata.visitor.TeradataOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.teradata.visitor.TeradataSchemaStatVisitor;
|
||||
import com.alibaba.druid.sql.parser.ParserException;
|
||||
import com.alibaba.druid.sql.parser.SQLExprParser;
|
||||
import com.alibaba.druid.sql.parser.SQLParserUtils;
|
||||
@@ -56,7 +58,6 @@ import com.alibaba.druid.sql.visitor.SchemaStatVisitor;
|
||||
import com.alibaba.druid.support.logging.Log;
|
||||
import com.alibaba.druid.support.logging.LogFactory;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import com.alibaba.druid.util.JdbcUtils;
|
||||
import com.alibaba.druid.util.StringUtils;
|
||||
|
||||
public class SQLUtils {
|
||||
@@ -109,35 +110,35 @@ public class SQLUtils {
|
||||
}
|
||||
|
||||
public static SQLExpr toMySqlExpr(String sql) {
|
||||
return toSQLExpr(sql, JdbcUtils.MYSQL);
|
||||
return toSQLExpr(sql, JdbcConstants.MYSQL);
|
||||
}
|
||||
|
||||
public static String formatMySql(String sql) {
|
||||
return format(sql, JdbcUtils.MYSQL);
|
||||
return format(sql, JdbcConstants.MYSQL);
|
||||
}
|
||||
|
||||
public static String formatMySql(String sql, FormatOption option) {
|
||||
return format(sql, JdbcUtils.MYSQL, option);
|
||||
return format(sql, JdbcConstants.MYSQL, option);
|
||||
}
|
||||
|
||||
public static String formatOracle(String sql) {
|
||||
return format(sql, JdbcUtils.ORACLE);
|
||||
return format(sql, JdbcConstants.ORACLE);
|
||||
}
|
||||
|
||||
public static String formatOracle(String sql, FormatOption option) {
|
||||
return format(sql, JdbcUtils.ORACLE, option);
|
||||
return format(sql, JdbcConstants.ORACLE, option);
|
||||
}
|
||||
|
||||
public static String formatOdps(String sql) {
|
||||
return format(sql, JdbcUtils.ODPS);
|
||||
return format(sql, JdbcConstants.ODPS);
|
||||
}
|
||||
|
||||
public static String formatOdps(String sql, FormatOption option) {
|
||||
return format(sql, JdbcUtils.ODPS, option);
|
||||
return format(sql, JdbcConstants.ODPS, option);
|
||||
}
|
||||
|
||||
public static String formatSQLServer(String sql) {
|
||||
return format(sql, JdbcUtils.SQL_SERVER);
|
||||
return format(sql, JdbcConstants.SQL_SERVER);
|
||||
}
|
||||
|
||||
public static String toOracleString(SQLObject sqlObject) {
|
||||
@@ -173,7 +174,7 @@ public class SQLUtils {
|
||||
}
|
||||
|
||||
public static String formatPGSql(String sql, FormatOption option) {
|
||||
return format(sql, JdbcUtils.POSTGRESQL, option);
|
||||
return format(sql, JdbcConstants.POSTGRESQL, option);
|
||||
}
|
||||
|
||||
public static SQLExpr toSQLExpr(String sql, String dbType) {
|
||||
@@ -344,7 +345,7 @@ public class SQLUtils {
|
||||
public static SQLASTOutputVisitor createFormatOutputVisitor(Appendable out, //
|
||||
List<SQLStatement> statementList, //
|
||||
String dbType) {
|
||||
if (JdbcUtils.ORACLE.equals(dbType) || JdbcUtils.ALI_ORACLE.equals(dbType)) {
|
||||
if (JdbcConstants.ORACLE.equals(dbType) || JdbcConstants.ALI_ORACLE.equals(dbType)) {
|
||||
if (statementList == null || statementList.size() == 1) {
|
||||
return new OracleOutputVisitor(out, false);
|
||||
} else {
|
||||
@@ -352,27 +353,31 @@ public class SQLUtils {
|
||||
}
|
||||
}
|
||||
|
||||
if (JdbcUtils.MYSQL.equals(dbType) || //
|
||||
JdbcUtils.MARIADB.equals(dbType) || //
|
||||
JdbcUtils.H2.equals(dbType)) {
|
||||
if (JdbcConstants.MYSQL.equals(dbType) //
|
||||
|| JdbcConstants.MARIADB.equals(dbType) //
|
||||
|| JdbcConstants.H2.equals(dbType)) {
|
||||
return new MySqlOutputVisitor(out);
|
||||
}
|
||||
|
||||
if (JdbcUtils.POSTGRESQL.equals(dbType)) {
|
||||
if (JdbcConstants.POSTGRESQL.equals(dbType)) {
|
||||
return new PGOutputVisitor(out);
|
||||
}
|
||||
|
||||
if (JdbcUtils.SQL_SERVER.equals(dbType) || JdbcUtils.JTDS.equals(dbType)) {
|
||||
if (JdbcConstants.SQL_SERVER.equals(dbType) || JdbcConstants.JTDS.equals(dbType)) {
|
||||
return new SQLServerOutputVisitor(out);
|
||||
}
|
||||
|
||||
if (JdbcUtils.DB2.equals(dbType)) {
|
||||
if (JdbcConstants.DB2.equals(dbType)) {
|
||||
return new DB2OutputVisitor(out);
|
||||
}
|
||||
|
||||
if (JdbcUtils.ODPS.equals(dbType)) {
|
||||
if (JdbcConstants.ODPS.equals(dbType)) {
|
||||
return new OdpsOutputVisitor(out);
|
||||
}
|
||||
|
||||
if (JdbcConstants.TERADATA.equals(dbType)) {
|
||||
return new TeradataOutputVisitor(out);
|
||||
}
|
||||
|
||||
return new SQLASTOutputVisitor(out);
|
||||
}
|
||||
@@ -383,31 +388,35 @@ public class SQLUtils {
|
||||
}
|
||||
|
||||
public static SchemaStatVisitor createSchemaStatVisitor(String dbType) {
|
||||
if (JdbcUtils.ORACLE.equals(dbType) || JdbcUtils.ALI_ORACLE.equals(dbType)) {
|
||||
if (JdbcConstants.ORACLE.equals(dbType) || JdbcConstants.ALI_ORACLE.equals(dbType)) {
|
||||
return new OracleSchemaStatVisitor();
|
||||
}
|
||||
|
||||
if (JdbcUtils.MYSQL.equals(dbType) || //
|
||||
JdbcUtils.MARIADB.equals(dbType) || //
|
||||
JdbcUtils.H2.equals(dbType)) {
|
||||
if (JdbcConstants.MYSQL.equals(dbType) || //
|
||||
JdbcConstants.MARIADB.equals(dbType) || //
|
||||
JdbcConstants.H2.equals(dbType)) {
|
||||
return new MySqlSchemaStatVisitor();
|
||||
}
|
||||
|
||||
if (JdbcUtils.POSTGRESQL.equals(dbType)) {
|
||||
if (JdbcConstants.POSTGRESQL.equals(dbType)) {
|
||||
return new PGSchemaStatVisitor();
|
||||
}
|
||||
|
||||
if (JdbcUtils.SQL_SERVER.equals(dbType) || JdbcUtils.JTDS.equals(dbType)) {
|
||||
if (JdbcConstants.SQL_SERVER.equals(dbType) || JdbcConstants.JTDS.equals(dbType)) {
|
||||
return new SQLServerSchemaStatVisitor();
|
||||
}
|
||||
|
||||
if (JdbcUtils.DB2.equals(dbType)) {
|
||||
if (JdbcConstants.DB2.equals(dbType)) {
|
||||
return new DB2SchemaStatVisitor();
|
||||
}
|
||||
|
||||
if (JdbcUtils.ODPS.equals(dbType)) {
|
||||
if (JdbcConstants.ODPS.equals(dbType)) {
|
||||
return new OdpsSchemaStatVisitor();
|
||||
}
|
||||
|
||||
if (JdbcConstants.TERADATA.equals(dbType)) {
|
||||
return new TeradataSchemaStatVisitor();
|
||||
}
|
||||
|
||||
return new SchemaStatVisitor();
|
||||
}
|
||||
@@ -647,3 +656,4 @@ public class SQLUtils {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user