Skip to content

Commit

Permalink
0002356: Triggers not created for tables with sql_variant column
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed Aug 3, 2015
1 parent 6feda86 commit a6dde30
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 1 deletion.
Expand Up @@ -32,7 +32,9 @@ private ColumnTypes() {
public static final int LONGNVARCHAR = -16;

public static final int ORACLE_TIMESTAMPTZ = -101;
public static final int ORACLE_TIMESTAMPLTZ = -102;
public static final int ORACLE_TIMESTAMPLTZ = -102;

public static final int MSSQL_SQL_VARIANT = -150;

public static final int MAPPED_TIMESTAMPTZ = ORACLE_TIMESTAMPTZ;

Expand Down
2 changes: 2 additions & 0 deletions symmetric-db/src/main/java/org/jumpmind/db/model/TypeMap.java
Expand Up @@ -21,6 +21,7 @@

import static org.jumpmind.db.model.ColumnTypes.ORACLE_TIMESTAMPLTZ;
import static org.jumpmind.db.model.ColumnTypes.ORACLE_TIMESTAMPTZ;
import static org.jumpmind.db.model.ColumnTypes.MSSQL_SQL_VARIANT;

import java.sql.Types;
import java.util.HashMap;
Expand Down Expand Up @@ -158,6 +159,7 @@ public abstract class TypeMap
registerJdbcType(Types.VARCHAR, VARCHAR, JdbcTypeCategoryEnum.TEXTUAL);
registerJdbcType(ORACLE_TIMESTAMPTZ, TIMESTAMPTZ, JdbcTypeCategoryEnum.DATETIME);
registerJdbcType(ORACLE_TIMESTAMPLTZ, TIMESTAMPLTZ, JdbcTypeCategoryEnum.DATETIME);
registerJdbcType(MSSQL_SQL_VARIANT, BLOB, JdbcTypeCategoryEnum.BINARY);

// only available in JDK 1.4 and above:
if (PlatformUtils.supportsJava14JdbcTypes())
Expand Down
Expand Up @@ -22,6 +22,7 @@

import java.sql.Types;

import org.jumpmind.db.model.ColumnTypes;
import org.jumpmind.db.platform.DatabaseNamesConstants;

public class MsSql2008DdlBuilder extends MsSql2005DdlBuilder {
Expand All @@ -35,6 +36,7 @@ public MsSql2008DdlBuilder() {

databaseInfo.addNativeTypeMapping(Types.DATE, "DATE", Types.DATE);
databaseInfo.addNativeTypeMapping(Types.DATE, "TIME", Types.TIME);
databaseInfo.addNativeTypeMapping(ColumnTypes.MSSQL_SQL_VARIANT, "SQL_VARIANT", Types.BLOB);
// TODO add MSSQL 2008 types for time, datetimeoffset, and datetime2
}

Expand Down
Expand Up @@ -155,6 +155,8 @@ protected Integer mapUnknownJdbcTypeForColumn(Map<String, Object> values) {
return Types.LONGVARCHAR;
} else if (typeName != null && typeName.toUpperCase().contains("NVARCHAR") && size > 8000) {
return Types.LONGNVARCHAR;
} else if (typeName != null && typeName.toUpperCase().equals("SQL_VARIANT")) {
return Types.BINARY;
} else {
return super.mapUnknownJdbcTypeForColumn(values);
}
Expand Down

0 comments on commit a6dde30

Please sign in to comment.