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:
@@ -428,14 +428,14 @@ public class SQLTransformUtils {
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.DECIMAL, 38);
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.BINARY_FLOAT) {
|
||||
dataType = new SQLDataTypeImpl("real");
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.REAL);
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.BINARY_DOUBLE
|
||||
|| nameHash == FnvHash.Constants.FLOAT
|
||||
|| nameHash == FnvHash.Constants.DOUBLE
|
||||
|| nameHash == FnvHash.Constants.REAL
|
||||
|| nameHash == FnvHash.Constants.DOUBLE_PRECISION) {
|
||||
dataType = new SQLDataTypeImpl("double precision");
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.DOUBLE_PRECISION);
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.NUMBER) {
|
||||
if (argumentns.size() == 0) {
|
||||
@@ -579,9 +579,9 @@ public class SQLTransformUtils {
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.BFILE) {
|
||||
dataType = new SQLCharacterDataType(SQLDataType.Constants.VARCHAR, 255);
|
||||
|
||||
} else if (nameHash == FnvHash.Constants.DATE
|
||||
|| nameHash == FnvHash.Constants.DATETIME
|
||||
} else if (nameHash == FnvHash.Constants.DATE) {
|
||||
dataType = new SQLDataTypeImpl(SQLDataType.Constants.TIMESTAMP, 0);
|
||||
} else if (nameHash == FnvHash.Constants.DATETIME
|
||||
|| nameHash == FnvHash.Constants.TIMESTAMP) {
|
||||
int len = -1;
|
||||
if (argumentns.size() > 0) {
|
||||
|
||||
@@ -46,6 +46,9 @@ public interface SQLDataType extends SQLObject {
|
||||
|
||||
String DECIMAL = "DECIMAL";
|
||||
String NUMBER = "NUMBER";
|
||||
String REAL = "REAL";
|
||||
String DOUBLE_PRECISION = "DOUBLE PRECISION";
|
||||
|
||||
String TINYINT = "TINYINT";
|
||||
String SMALLINT = "SMALLINT";
|
||||
String INT = "INT";
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.alibaba.druid.bvt.sql.transform;
|
||||
package com.alibaba.druid.bvt.sql.transform.datatype;
|
||||
|
||||
import com.alibaba.druid.sql.SQLTransformUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLDataType;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.alibaba.druid.bvt.sql.transform;
|
||||
package com.alibaba.druid.bvt.sql.transform.datatype.oracle2pg;
|
||||
|
||||
import com.alibaba.druid.sql.SQLTransformUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLDataType;
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package com.alibaba.druid.bvt.sql.transform;
|
||||
package com.alibaba.druid.bvt.sql.transform.datatype.oracle2pg;
|
||||
|
||||
import com.alibaba.druid.sql.SQLTransformUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLDataType;
|
||||
@@ -25,7 +25,7 @@ public class Oracle2PG_DataTypeTest_datetime extends TestCase {
|
||||
String sql = "date";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("TIMESTAMP", pgDataType.toString());
|
||||
assertEquals("TIMESTAMP(0)", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_datetime() throws Exception {
|
||||
+7
-7
@@ -1,4 +1,4 @@
|
||||
package com.alibaba.druid.bvt.sql.transform;
|
||||
package com.alibaba.druid.bvt.sql.transform.datatype.oracle2pg;
|
||||
|
||||
import com.alibaba.druid.sql.SQLTransformUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLDataType;
|
||||
@@ -11,42 +11,42 @@ public class Oracle2PG_DataTypeTest_double extends TestCase {
|
||||
String sql = "float";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("double precision", pgDataType.toString());
|
||||
assertEquals("DOUBLE PRECISION", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_double() throws Exception {
|
||||
String sql = "double";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("double precision", pgDataType.toString());
|
||||
assertEquals("DOUBLE PRECISION", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_real() throws Exception {
|
||||
String sql = "real";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("double precision", pgDataType.toString());
|
||||
assertEquals("DOUBLE PRECISION", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_binary_float() throws Exception {
|
||||
String sql = "BINARY_FLOAT";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("real", pgDataType.toString());
|
||||
assertEquals("REAL", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_binary_double() throws Exception {
|
||||
String sql = "BINARY_DOUBLE";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("double precision", pgDataType.toString());
|
||||
assertEquals("DOUBLE PRECISION", pgDataType.toString());
|
||||
}
|
||||
|
||||
public void test_oracle2pg_binary_double_precision() throws Exception {
|
||||
String sql = "double precision";
|
||||
SQLDataType dataType = SQLParserUtils.createExprParser(sql, JdbcConstants.ORACLE).parseDataType();
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("double precision", pgDataType.toString());
|
||||
assertEquals("DOUBLE PRECISION", pgDataType.toString());
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -1,4 +1,4 @@
|
||||
package com.alibaba.druid.bvt.sql.transform;
|
||||
package com.alibaba.druid.bvt.sql.transform.datatype.oracle2pg;
|
||||
|
||||
import com.alibaba.druid.sql.SQLTransformUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLDataType;
|
||||
@@ -27,5 +27,6 @@ public class Oracle2PG_DataTypeTest_int extends TestCase {
|
||||
SQLDataType pgDataType = SQLTransformUtils.transformOracleToPostgresql(dataType);
|
||||
assertEquals("SMALLINT", pgDataType.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.alibaba.druid.bvt.sql.transform;
|
||||
package com.alibaba.druid.bvt.sql.transform.datatype.oracle2pg;
|
||||
|
||||
import com.alibaba.druid.sql.SQLTransformUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLDataType;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.alibaba.druid.bvt.sql.transform;
|
||||
package com.alibaba.druid.bvt.sql.transform.datatype.oracle2pg;
|
||||
|
||||
import com.alibaba.druid.sql.SQLTransformUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLDataType;
|
||||
Reference in New Issue
Block a user