Skip to content

Commit

Permalink
interbase hacks
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed May 25, 2011
1 parent 3dec54c commit 25d125d
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
Expand Up @@ -78,6 +78,19 @@ protected Table readTable(DatabaseMetaDataWrapper metaData, Map values) throws S

return table;
}

@Override
protected Column readColumn(DatabaseMetaDataWrapper metaData, Map<String, Object> values)
throws SQLException {
Column column = super.readColumn(metaData, values);
if (column.getTypeCode() == Types.VARCHAR) {
int size = Integer.parseInt(column.getSize());
if (size >= InterbasePlatform.SWITCH_TO_LONGVARCHAR_SIZE) {
column.setTypeCode(Types.LONGVARCHAR);
}
}
return column;
}

/**
* {@inheritDoc}
Expand Down
Expand Up @@ -45,6 +45,8 @@ public class InterbasePlatform extends PlatformImplBase
public static final String JDBC_DRIVER = "interbase.interclient.Driver";
/** The subprotocol used by the interbase driver. */
public static final String JDBC_SUBPROTOCOL = "interbase";

public static int SWITCH_TO_LONGVARCHAR_SIZE = 4096;

/**
* Creates a new platform instance.
Expand Down Expand Up @@ -72,7 +74,7 @@ public InterbasePlatform()
info.addNativeTypeMapping(Types.FLOAT, "DOUBLE PRECISION", Types.DOUBLE);
info.addNativeTypeMapping(Types.JAVA_OBJECT, "BLOB", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.LONGVARBINARY, "BLOB", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.LONGVARCHAR, "BLOB SUB_TYPE TEXT", Types.CLOB);
info.addNativeTypeMapping(Types.LONGVARCHAR, "VARCHAR("+SWITCH_TO_LONGVARCHAR_SIZE+")", Types.VARCHAR);
info.addNativeTypeMapping(Types.NULL, "BLOB", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.OTHER, "BLOB", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.REAL, "FLOAT");
Expand Down

0 comments on commit 25d125d

Please sign in to comment.