From 4c9c50578d72e198941722cdcf840d9a257bd1a5 Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Thu, 31 Mar 2022 22:54:29 +0800 Subject: [PATCH 1/3] fix VARCHAR2 dialectTypemap for oracle Change-Id: I9a9ce18bf0b70bf7d4a8add7f0c67ef3eaa08d7b --- .../drinkjava2/jdialects/DialectTypeMappingTemplate.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java index 8c3da58..7f493a9 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java @@ -1011,7 +1011,7 @@ public class DialectTypeMappingTemplate { m.put(TIMESTAMP, "date"); m.put(TINYINT, "number(3,0)"); m.put(VARBINARY, "raw($l)<2000|long raw"); - m.put(VARCHAR, "varchar2($l)<4000|long"); + m.put(VARCHAR, "varchar($l)<4000|long"); //add new m.put(Type.BINARY_FLOAT, "BINARY_FLOAT"); m.put(Type.BINARY_DOUBLE, "BINARY_DOUBLE"); @@ -1020,6 +1020,7 @@ public class DialectTypeMappingTemplate { m.put(Type.TIMESTAMP_WITH_LOCAL_TIME_ZONE, "TIMESTAMP WITH LOCAL TIME ZONE"); m.put(Type.INTERVAL_YEAR_TO_MONTH, "INTERVAL YEAR($l) TO MONTH"); m.put(Type.INTERVAL_DAY_TO_SECOND, "INTERVAL DAY($p) TO SECOND($s)"); + m.put(Type.VARCHAR2, "varchar2($l)"); m = Dialect.Oracle10gDialect.typeMappings; m.putAll(Dialect.OracleDialect.typeMappings);//extends from OracleDialect @@ -1031,7 +1032,6 @@ public class DialectTypeMappingTemplate { m.put(LONGVARCHAR, "long"); m.put(NVARCHAR, "nvarchar2($l)"); m.put(TIMESTAMP, "timestamp"); - m.put(VARCHAR, "varchar2($l char)<4000|long"); m = Dialect.Oracle12cDialect.typeMappings; m.putAll(Dialect.OracleDialect.typeMappings);//extends from OracleDialect @@ -1043,7 +1043,6 @@ public class DialectTypeMappingTemplate { m.put(LONGVARCHAR, "long"); m.put(NVARCHAR, "nvarchar2($l)"); m.put(TIMESTAMP, "timestamp"); - m.put(VARCHAR, "varchar2($l char)<4000|long"); m = Dialect.Oracle8iDialect.typeMappings; m.putAll(Dialect.OracleDialect.typeMappings);//extends from OracleDialect @@ -1056,7 +1055,6 @@ public class DialectTypeMappingTemplate { m.putAll(Dialect.OracleDialect.typeMappings);//extends from OracleDialect m.put(CHAR, "char($l char)"); m.put(TIMESTAMP, "timestamp"); - m.put(VARCHAR, "varchar2($l char)<4000|long"); m = Dialect.Oracle9iDialect.typeMappings; m.putAll(Dialect.OracleDialect.typeMappings);//extends from OracleDialect @@ -1068,7 +1066,6 @@ public class DialectTypeMappingTemplate { m.put(LONGVARCHAR, "long"); m.put(NVARCHAR, "nvarchar2($l)"); m.put(TIMESTAMP, "timestamp"); - m.put(VARCHAR, "varchar2($l char)<4000|long"); //================PointbaseDialect family=============== m = Dialect.PointbaseDialect.typeMappings; -- Gitee From 2d5ec1b69e071a961c91bc8b1fe1b7370642d8ce Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Sat, 2 Apr 2022 18:27:59 +0800 Subject: [PATCH 2/3] add more type for mysql --- .../jdialects/DialectTypeMappingTemplate.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java index 7f493a9..3c133ee 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java @@ -923,7 +923,8 @@ public class DialectTypeMappingTemplate { m = Dialect.MySQLDialect.typeMappings; m.put(Type.BINARY, "binary($l)"); m.put(Type.BIT, "bit"); - m.put(Type.BLOB, "longblob"); + m.put(Type.LONGBLOB,"longblob"); + m.put(Type.BLOB, "blob"); m.put(Type.BOOLEAN, "bit"); m.put(Type.CHAR, "char($l)"); m.put(Type.CLOB, "longtext"); @@ -939,6 +940,7 @@ public class DialectTypeMappingTemplate { m.put(Type.DATETIME, "datetime"); m.put(Type.VARBINARY, "tinyblob<255|blob<65535|mediumblob<16777215|longblob"); + m.put(DECIMAL, "decimal($p,$s)"); m.put(Type.SMALLINT, "smallint($l)"); m.put(Type.MEDIUMINT, "MEDIUMINT($l)"); m.put(Type.TINYINT, "tinyint($l)"); @@ -946,6 +948,14 @@ public class DialectTypeMappingTemplate { m.put(Type.YEAR, "year($l)"); m.put(Type.VARCHAR, "varchar($l)<65535|longtext"); m.put(Type.TIMESTAMP, "timestamp"); + m.put(Type.INT, "INT($l)"); + m.put(Type.TINYBLOB, "TINYBLOB"); + m.put(Type.TINYTEXT, "TINYTEXT"); + m.put(Type.TEXT, "TEXT($l)"); + m.put(Type.MEDIUMBLOB, "MEDIUMBLOB"); + m.put(Type.MEDIUMTEXT, "MEDIUMTEXT"); + m.put(Type.LONGTEXT, "LONGTEXT"); + m.put(Type.JSON, "JSON"); m = Dialect.MySQL5Dialect.typeMappings; m.putAll(Dialect.MySQLDialect.typeMappings);//extends from MySQLDialect -- Gitee From f2df0d6954c00598a1c63395c9566b31d1759134 Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Sat, 2 Apr 2022 18:27:59 +0800 Subject: [PATCH 3/3] add more type for oracle --- .../jdialects/DialectTypeMappingTemplate.java | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java index 7f493a9..6daa15e 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java @@ -923,7 +923,8 @@ public class DialectTypeMappingTemplate { m = Dialect.MySQLDialect.typeMappings; m.put(Type.BINARY, "binary($l)"); m.put(Type.BIT, "bit"); - m.put(Type.BLOB, "longblob"); + m.put(Type.LONGBLOB,"longblob"); + m.put(Type.BLOB, "blob"); m.put(Type.BOOLEAN, "bit"); m.put(Type.CHAR, "char($l)"); m.put(Type.CLOB, "longtext"); @@ -939,6 +940,7 @@ public class DialectTypeMappingTemplate { m.put(Type.DATETIME, "datetime"); m.put(Type.VARBINARY, "tinyblob<255|blob<65535|mediumblob<16777215|longblob"); + m.put(DECIMAL, "decimal($p,$s)"); m.put(Type.SMALLINT, "smallint($l)"); m.put(Type.MEDIUMINT, "MEDIUMINT($l)"); m.put(Type.TINYINT, "tinyint($l)"); @@ -946,6 +948,14 @@ public class DialectTypeMappingTemplate { m.put(Type.YEAR, "year($l)"); m.put(Type.VARCHAR, "varchar($l)<65535|longtext"); m.put(Type.TIMESTAMP, "timestamp"); + m.put(Type.INT, "INT($l)"); + m.put(Type.TINYBLOB, "TINYBLOB"); + m.put(Type.TINYTEXT, "TINYTEXT"); + m.put(Type.TEXT, "TEXT($l)"); + m.put(Type.MEDIUMBLOB, "MEDIUMBLOB"); + m.put(Type.MEDIUMTEXT, "MEDIUMTEXT"); + m.put(Type.LONGTEXT, "LONGTEXT"); + m.put(Type.JSON, "JSON"); m = Dialect.MySQL5Dialect.typeMappings; m.putAll(Dialect.MySQLDialect.typeMappings);//extends from MySQLDialect @@ -986,21 +996,17 @@ public class DialectTypeMappingTemplate { //================OracleDialect family=============== m = Dialect.OracleDialect.typeMappings; m.put(BIGINT, "number(19,0)"); - m.put(BINARY, "N/A"); m.put(BIT, "number(1,0)"); m.put(BLOB, "blob"); - m.put(BOOLEAN, "boolean"); m.put(CHAR, "char($l)"); m.put(CLOB, "clob"); m.put(DATE, "date"); m.put(DECIMAL, "number($p,$s)"); - m.put(DOUBLE, "double precision"); + m.put(DOUBLE, "double"); m.put(FLOAT, "float"); - m.put(INTEGER, "number(10,0)"); + m.put(INTEGER, "number($l,0)"); m.put(JAVA_OBJECT, "N/A"); - m.put(LONGNVARCHAR, "nvarchar($l)"); - m.put(LONGVARBINARY, "bit varying($l)"); - m.put(LONGVARCHAR, "varchar($l)"); + m.put(LONGNVARCHAR, "nvarchar2($l)"); m.put(NCHAR, "nchar($l)"); m.put(NCLOB, "nclob"); m.put(NUMERIC, "number($p,$s)"); @@ -1008,10 +1014,9 @@ public class DialectTypeMappingTemplate { m.put(REAL, "real"); m.put(SMALLINT, "number(5,0)"); m.put(TIME, "date"); - m.put(TIMESTAMP, "date"); + m.put(TIMESTAMP, "timestamp"); m.put(TINYINT, "number(3,0)"); m.put(VARBINARY, "raw($l)<2000|long raw"); - m.put(VARCHAR, "varchar($l)<4000|long"); //add new m.put(Type.BINARY_FLOAT, "BINARY_FLOAT"); m.put(Type.BINARY_DOUBLE, "BINARY_DOUBLE"); @@ -1021,6 +1026,11 @@ public class DialectTypeMappingTemplate { m.put(Type.INTERVAL_YEAR_TO_MONTH, "INTERVAL YEAR($l) TO MONTH"); m.put(Type.INTERVAL_DAY_TO_SECOND, "INTERVAL DAY($p) TO SECOND($s)"); m.put(Type.VARCHAR2, "varchar2($l)"); + m.put(Type.BINARY, "raw($l)<2000|long raw"); + m.put(Type.BOOLEAN, "number(1,0)"); + m.put(Type.LONGVARBINARY, "long raw"); + m.put(Type.LONGVARCHAR, "long"); + m.put(Type.VARCHAR, "varchar($l char)<4000|long"); m = Dialect.Oracle10gDialect.typeMappings; m.putAll(Dialect.OracleDialect.typeMappings);//extends from OracleDialect -- Gitee