mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improved sql parser.
This commit is contained in:
@@ -416,16 +416,16 @@ public class SQLTransformUtils {
|
||||
len = ((SQLIntegerExpr) arg0).getNumber().intValue();
|
||||
}
|
||||
}
|
||||
dataType = new SQLDataTypeImpl("varchar", len);
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.VARCHAR, len);
|
||||
} else if (nameHash == FnvHash.Constants.ROWID) {
|
||||
dataType = new SQLDataTypeImpl("char", 10);
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.CHAR, 10);
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.BOOLEAN) {
|
||||
dataType = new SQLDataTypeImpl("tinyint");
|
||||
} else if (nameHash == FnvHash.Constants.BOOLEAN || nameHash == FnvHash.Constants.SMALLINT) {
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.SMALLINT);
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.INTEGER
|
||||
|| nameHash == FnvHash.Constants.INT) {
|
||||
dataType = new SQLDataTypeImpl("decimal", 38);
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.DECIMAL, 38);
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.BINARY_FLOAT) {
|
||||
dataType = new SQLDataTypeImpl("real");
|
||||
@@ -439,7 +439,7 @@ public class SQLTransformUtils {
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.NUMBER) {
|
||||
if (argumentns.size() == 0) {
|
||||
dataType = new SQLDataTypeImpl("decimal", 38);
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.DECIMAL, 38);
|
||||
} else {
|
||||
SQLExpr arg0 = argumentns.get(0);
|
||||
|
||||
@@ -468,23 +468,23 @@ public class SQLTransformUtils {
|
||||
|
||||
if (scale == 0) {
|
||||
if (precision < 5) {
|
||||
dataType = new SQLDataTypeImpl("smallint");
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.SMALLINT);
|
||||
} else if (precision < 9) {
|
||||
dataType = new SQLDataTypeImpl("int");
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.INT);
|
||||
} else if (precision <= 20) {
|
||||
dataType = new SQLDataTypeImpl("bigint");
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.BIGINT);
|
||||
} else {
|
||||
dataType = new SQLDataTypeImpl("decimal", precision);
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.DECIMAL, precision);
|
||||
}
|
||||
} else {
|
||||
dataType = new SQLDataTypeImpl("decimal", precision, scale);
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.DECIMAL, precision, scale);
|
||||
}
|
||||
}
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.DEC
|
||||
|| nameHash == FnvHash.Constants.DECIMAL) {
|
||||
dataType = x.clone();
|
||||
dataType.setName("decimal");
|
||||
dataType.setName(SQLDataType.Constants.DECIMAL);
|
||||
|
||||
int precision = 0;
|
||||
if (argumentns.size() > 0) {
|
||||
@@ -509,9 +509,9 @@ public class SQLTransformUtils {
|
||||
} else {
|
||||
throw new UnsupportedOperationException(SQLUtils.toOracleString(x));
|
||||
}
|
||||
dataType = new SQLCharacterDataType("char", len);
|
||||
dataType = new SQLCharacterDataType(SQLDataType.Constants.CHAR, len);
|
||||
} else if (argumentns.size() == 0) {
|
||||
dataType = new SQLCharacterDataType("char");
|
||||
dataType = new SQLCharacterDataType(SQLDataType.Constants.CHAR);
|
||||
} else {
|
||||
throw new UnsupportedOperationException(SQLUtils.toOracleString(x));
|
||||
}
|
||||
@@ -528,17 +528,19 @@ public class SQLTransformUtils {
|
||||
|
||||
if (len <= 2000) {
|
||||
dataType = x;
|
||||
dataType.setName(SQLDataType.Constants.CHAR);
|
||||
} else {
|
||||
dataType = new SQLCharacterDataType("text");
|
||||
dataType = new SQLCharacterDataType(SQLDataType.Constants.TEXT);
|
||||
}
|
||||
} else if (argumentns.size() == 0) {
|
||||
dataType = new SQLCharacterDataType("char");
|
||||
dataType = new SQLCharacterDataType(SQLDataType.Constants.CHAR);
|
||||
} else {
|
||||
throw new UnsupportedOperationException(SQLUtils.toOracleString(x));
|
||||
}
|
||||
} else if (nameHash == FnvHash.Constants.NCHAR) {
|
||||
// no changed
|
||||
dataType = x;
|
||||
dataType.setName(SQLDataType.Constants.NCHAR);
|
||||
} else if (nameHash == FnvHash.Constants.VARCHAR
|
||||
|| nameHash == FnvHash.Constants.VARCHAR2) {
|
||||
if (argumentns.size() > 0) {
|
||||
@@ -551,15 +553,16 @@ public class SQLTransformUtils {
|
||||
}
|
||||
|
||||
if (len <= 4000) {
|
||||
dataType = new SQLCharacterDataType("varchar", len);
|
||||
dataType = new SQLCharacterDataType(SQLDataType.Constants.VARCHAR, len);
|
||||
} else {
|
||||
dataType = new SQLCharacterDataType("text");
|
||||
dataType = new SQLCharacterDataType(SQLDataType.Constants.TEXT);
|
||||
}
|
||||
} else {
|
||||
dataType = new SQLCharacterDataType("varchar");
|
||||
dataType = new SQLCharacterDataType(SQLDataType.Constants.VARCHAR);
|
||||
}
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.NVARCHAR2
|
||||
} else if (nameHash == FnvHash.Constants.NVARCHAR
|
||||
|| nameHash == FnvHash.Constants.NVARCHAR2
|
||||
|| nameHash == FnvHash.Constants.NCHAR_VARYING) {
|
||||
if (argumentns.size() > 0) {
|
||||
int len;
|
||||
@@ -569,13 +572,13 @@ public class SQLTransformUtils {
|
||||
} else {
|
||||
throw new UnsupportedOperationException(SQLUtils.toOracleString(x));
|
||||
}
|
||||
dataType = new SQLCharacterDataType("varchar", len);
|
||||
dataType = new SQLCharacterDataType(SQLDataType.Constants.VARCHAR, len);
|
||||
} else {
|
||||
dataType = new SQLCharacterDataType("varchar");
|
||||
dataType = new SQLCharacterDataType(SQLDataType.Constants.VARCHAR);
|
||||
}
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.BFILE) {
|
||||
dataType = new SQLCharacterDataType("varchar", 255);
|
||||
dataType = new SQLCharacterDataType(SQLDataType.Constants.VARCHAR, 255);
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.DATE
|
||||
|| nameHash == FnvHash.Constants.DATETIME
|
||||
@@ -591,24 +594,24 @@ public class SQLTransformUtils {
|
||||
}
|
||||
|
||||
if (len > 0) {
|
||||
dataType = new SQLDataTypeImpl("timestamp", len);
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.TIMESTAMP, len);
|
||||
} else {
|
||||
dataType = new SQLDataTypeImpl("timestamp");
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.TIMESTAMP);
|
||||
}
|
||||
} else if (nameHash == FnvHash.Constants.BLOB
|
||||
|| nameHash == FnvHash.Constants.LONG_RAW
|
||||
|| nameHash == FnvHash.Constants.RAW) {
|
||||
argumentns.clear();
|
||||
dataType = new SQLDataTypeImpl("bytea");
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.BYTEA);
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.CLOB
|
||||
|| nameHash == FnvHash.Constants.NCLOB
|
||||
|| nameHash == FnvHash.Constants.LONG) {
|
||||
argumentns.clear();
|
||||
dataType = new SQLCharacterDataType("text");
|
||||
dataType = new SQLCharacterDataType(SQLDataType.Constants.TEXT);
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.XMLTYPE) {
|
||||
dataType = new SQLDataTypeImpl("xml");
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.XML);
|
||||
} else {
|
||||
dataType = x;
|
||||
}
|
||||
|
||||
@@ -36,4 +36,21 @@ public interface SQLDataType extends SQLObject {
|
||||
|
||||
void setDbType(String dbType);
|
||||
String getDbType();
|
||||
|
||||
interface Constants {
|
||||
String CHAR = "CHAR";
|
||||
String NCHAR = "NCHAR";
|
||||
String VARCHAR = "VARCHAR";
|
||||
String TIMESTAMP = "TIMESTAMP";
|
||||
String XML = "XML";
|
||||
|
||||
String DECIMAL = "DECIMAL";
|
||||
String NUMBER = "NUMBER";
|
||||
String TINYINT = "TINYINT";
|
||||
String SMALLINT = "SMALLINT";
|
||||
String INT = "INT";
|
||||
String BIGINT = "BIGINT";
|
||||
String TEXT = "TEXT";
|
||||
String BYTEA = "BYTEA";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,10 +101,8 @@ public class SQLDataTypeImpl extends SQLObjectImpl implements SQLDataType {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = name != null ? name.hashCode() : 0;
|
||||
result = 31 * result + (arguments != null ? arguments.hashCode() : 0);
|
||||
result = 31 * result + (withTimeZone != null ? withTimeZone.hashCode() : 0);
|
||||
return result;
|
||||
long value = nameHashCode64();
|
||||
return (int)(value ^ (value >>> 32));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -143,6 +141,7 @@ public class SQLDataTypeImpl extends SQLObjectImpl implements SQLDataType {
|
||||
public void cloneTo(SQLDataTypeImpl x) {
|
||||
x.dbType = dbType;
|
||||
x.name = name;
|
||||
x.nameHashCode64 = nameHashCode64;
|
||||
|
||||
for (SQLExpr arg : arguments) {
|
||||
x.addArgument(arg.clone());
|
||||
|
||||
@@ -302,6 +302,7 @@ public final class FnvHash {
|
||||
long TARGET_AFFECT_ROW = fnv1a_64_lower("TARGET_AFFECT_ROW");
|
||||
long COLLATE = fnv1a_64_lower("COLLATE");
|
||||
long BOOLEAN = fnv1a_64_lower("BOOLEAN");
|
||||
long SMALLINT = fnv1a_64_lower("SMALLINT");
|
||||
long CHARSET = fnv1a_64_lower("CHARSET");
|
||||
long SEMI = fnv1a_64_lower("SEMI");
|
||||
long ANTI = fnv1a_64_lower("ANTI");
|
||||
|
||||
+14
-14
@@ -8,87 +8,87 @@ import junit.framework.TestCase;
|
||||
|
||||
public class Oracle2PG_DataTypeTest_chars extends TestCase {
|
||||
public void test_oracle2pg_char() throws Exception {
|
||||
String sql = "char(10)";
|
||||
String sql = "CHAR(10)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("char(10)", pgDataType.toString());
|
||||
assertEquals("CHAR(10)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_char_2000() throws Exception {
|
||||
String sql = "char(2000)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("char(2000)", pgDataType.toString());
|
||||
assertEquals("CHAR(2000)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_char_4000() throws Exception {
|
||||
String sql = "char(4000)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("text", pgDataType.toString());
|
||||
assertEquals("TEXT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_nchar() throws Exception {
|
||||
String sql = "nchar(10)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("nchar(10)", pgDataType.toString());
|
||||
assertEquals("NCHAR(10)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_varchar() throws Exception {
|
||||
String sql = "varchar(10)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("varchar(10)", pgDataType.toString());
|
||||
assertEquals("VARCHAR(10)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_varchar_2000() throws Exception {
|
||||
String sql = "varchar(2000)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("varchar(2000)", pgDataType.toString());
|
||||
assertEquals("VARCHAR(2000)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_varchar_4000() throws Exception {
|
||||
String sql = "varchar(4000)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("varchar(4000)", pgDataType.toString());
|
||||
assertEquals("VARCHAR(4000)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_varchar_8000() throws Exception {
|
||||
String sql = "varchar(8000)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("text", pgDataType.toString());
|
||||
assertEquals("TEXT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_nvarchar() throws Exception {
|
||||
String sql = "nvarchar(10)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("nvarchar(10)", pgDataType.toString());
|
||||
assertEquals("VARCHAR(10)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_urowid() throws Exception {
|
||||
String sql = "urowid(100)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("varchar(100)", pgDataType.toString());
|
||||
assertEquals("VARCHAR(100)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_bfile() throws Exception {
|
||||
String sql = "bfile";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("varchar(255)", pgDataType.toString());
|
||||
assertEquals("VARCHAR(255)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_varchar2_8000() throws Exception {
|
||||
String sql = "varchar2(8000)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("text", pgDataType.toString());
|
||||
assertEquals("TEXT", pgDataType.toString());
|
||||
}
|
||||
|
||||
|
||||
@@ -96,6 +96,6 @@ public class Oracle2PG_DataTypeTest_chars extends TestCase {
|
||||
String sql = "varchar2(10000)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("text", pgDataType.toString());
|
||||
assertEquals("TEXT", pgDataType.toString());
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -11,27 +11,27 @@ public class Oracle2PG_DataTypeTest_datetime extends TestCase {
|
||||
String sql = "timestamp";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("timestamp", pgDataType.toString());
|
||||
assertEquals("TIMESTAMP", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_timestamp_arg() throws Exception {
|
||||
String sql = "timestamp(2)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("timestamp(2)", pgDataType.toString());
|
||||
assertEquals("TIMESTAMP(2)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_date() throws Exception {
|
||||
String sql = "date";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("timestamp", pgDataType.toString());
|
||||
assertEquals("TIMESTAMP", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_datetime() throws Exception {
|
||||
String sql = "datetime";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("timestamp", pgDataType.toString());
|
||||
assertEquals("TIMESTAMP", pgDataType.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,21 +11,21 @@ public class Oracle2PG_DataTypeTest_int extends TestCase {
|
||||
String sql = "int";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("decimal(38)", pgDataType.toString());
|
||||
assertEquals("DECIMAL(38)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_integer() throws Exception {
|
||||
String sql = "integer";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("decimal(38)", pgDataType.toString());
|
||||
assertEquals("DECIMAL(38)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_smallint() throws Exception {
|
||||
String sql = "smallint";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("smallint", pgDataType.toString());
|
||||
assertEquals("SMALLINT", pgDataType.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,27 +11,27 @@ public class Oracle2PG_DataTypeTest_lob extends TestCase {
|
||||
String sql = "blob";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bytea", pgDataType.toString());
|
||||
assertEquals("BYTEA", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_long() throws Exception {
|
||||
String sql = "long";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("text", pgDataType.toString());
|
||||
assertEquals("TEXT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_long_raw() throws Exception {
|
||||
String sql = "long raw";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bytea", pgDataType.toString());
|
||||
assertEquals("BYTEA", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_raw() throws Exception {
|
||||
String sql = "raw(100)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bytea", pgDataType.toString());
|
||||
assertEquals("BYTEA", pgDataType.toString());
|
||||
}
|
||||
}
|
||||
|
||||
+25
-25
@@ -11,174 +11,174 @@ public class Oracle2PG_DataTypeTest_number_int extends TestCase {
|
||||
String sql = "number(1, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("smallint", pgDataType.toString());
|
||||
assertEquals("SMALLINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_2() throws Exception {
|
||||
String sql = "number(2, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("smallint", pgDataType.toString());
|
||||
assertEquals("SMALLINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_3() throws Exception {
|
||||
String sql = "number(3, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("smallint", pgDataType.toString());
|
||||
assertEquals("SMALLINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_4() throws Exception {
|
||||
String sql = "number(4, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("smallint", pgDataType.toString());
|
||||
assertEquals("SMALLINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_5() throws Exception {
|
||||
String sql = "number(5, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("int", pgDataType.toString());
|
||||
assertEquals("INT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_6() throws Exception {
|
||||
String sql = "number(6, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("int", pgDataType.toString());
|
||||
assertEquals("INT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_7() throws Exception {
|
||||
String sql = "number(7, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("int", pgDataType.toString());
|
||||
assertEquals("INT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_8() throws Exception {
|
||||
String sql = "number(8, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("int", pgDataType.toString());
|
||||
assertEquals("INT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_9() throws Exception {
|
||||
String sql = "number(9, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_10() throws Exception {
|
||||
String sql = "number(10, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_11() throws Exception {
|
||||
String sql = "number(11, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_12() throws Exception {
|
||||
String sql = "number(12, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_13() throws Exception {
|
||||
String sql = "number(13, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_14() throws Exception {
|
||||
String sql = "number(14, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_15() throws Exception {
|
||||
String sql = "number(15, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_16() throws Exception {
|
||||
String sql = "number(16, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_17() throws Exception {
|
||||
String sql = "number(17, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_18() throws Exception {
|
||||
String sql = "number(18, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_19() throws Exception {
|
||||
String sql = "number(19, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_20() throws Exception {
|
||||
String sql = "number(20, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_20_x() throws Exception {
|
||||
String sql = "number(20)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_star() throws Exception {
|
||||
String sql = "number(*)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("bigint", pgDataType.toString());
|
||||
assertEquals("BIGINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_int_21() throws Exception {
|
||||
String sql = "number(21, 0)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("decimal(21)", pgDataType.toString());
|
||||
assertEquals("DECIMAL(21)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_decimal() throws Exception {
|
||||
String sql = "decimal(19,1)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("decimal(19, 1)", pgDataType.toString());
|
||||
assertEquals("DECIMAL(19, 1)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_dec() throws Exception {
|
||||
String sql = "dec(19,1)";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("decimal(19, 1)", pgDataType.toString());
|
||||
assertEquals("DECIMAL(19, 1)", pgDataType.toString());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user