{
super.initialiseTypes(handler, mconn);
// Add on any missing JDBC types
// CLOB - not present before v2.0
SQLTypeInfo sqlType = new org.datanucleus.store.rdbms.schema.HSQLTypeInfo(
"LONGVARCHAR", (short)Types.CLOB, 2147483647, "'", "'", null, 1, true, (short)3,
false, false, false, "LONGVARCHAR", (short)0, (short)0, 0);
addSQLTypeForJDBCType(handler, mconn, (short)Types.CLOB, sqlType, true);
// BLOB - not present before v2.0
sqlType = new org.datanucleus.store.rdbms.schema.HSQLTypeInfo(
"LONGVARBINARY", (short)Types.BLOB, 2147483647, "'", "'", null, 1, false, (short)3,
false, false, false, "LONGVARBINARY", (short)0, (short)0, 0);
addSQLTypeForJDBCType(handler, mconn, (short)Types.BLOB, sqlType, true);
// LONGVARCHAR - not present in 2.0+
sqlType = new org.datanucleus.store.rdbms.schema.HSQLTypeInfo(
"LONGVARCHAR", (short)Types.LONGVARCHAR, 2147483647, "'", "'", null, 1, true, (short)3,
false, false, false, "LONGVARCHAR", (short)0, (short)0, 0);
addSQLTypeForJDBCType(handler, mconn, (short)Types.LONGVARCHAR, sqlType, true);
// Update any types that need extra info relative to the JDBC info
Collection<SQLTypeInfo> sqlTypes = getSQLTypeInfoForJdbcType(handler, mconn, (short)Types.BLOB);
if (sqlTypes != null)
{
Iterator<SQLTypeInfo> iter = sqlTypes.iterator();
while (iter.hasNext())
{
sqlType = iter.next();
sqlType.setAllowsPrecisionSpec(false); // Can't add precision on a BLOB
}
}
sqlTypes = getSQLTypeInfoForJdbcType(handler, mconn, (short)Types.CLOB);
if (sqlType != null)
{
Iterator<SQLTypeInfo> iter = sqlTypes.iterator();
while (iter.hasNext())
{
sqlType = iter.next();
sqlType.setAllowsPrecisionSpec(false); // Can't add precision on a CLOB
}
}
sqlTypes = getSQLTypeInfoForJdbcType(handler, mconn, (short)Types.LONGVARBINARY);
if (sqlTypes != null)
{
Iterator<SQLTypeInfo> iter = sqlTypes.iterator();
while (iter.hasNext())
{
sqlType = iter.next();
sqlType.setAllowsPrecisionSpec(false); // Can't add precision on a LONGVARBINARY
}
}
sqlTypes = getSQLTypeInfoForJdbcType(handler, mconn, (short)Types.LONGVARCHAR);
if (sqlTypes != null)
{
Iterator<SQLTypeInfo> iter = sqlTypes.iterator();
while (iter.hasNext())
{
sqlType = iter.next();
sqlType.setAllowsPrecisionSpec(false); // Can't add precision on a LONGVARCHAR
}
}
}