Hi,
Going through the H2 code I found the following section in the
TableLink class (lines (172-187):
ResultSetMetaData rsMeta = rs.getMetaData();
for (i = 0; i < rsMeta.getColumnCount();) {
String n = rsMeta.getColumnName(i + 1);
n = convertColumnName(n);
int sqlType = rsMeta.getColumnType(i + 1);
long precision = rsMeta.getPrecision(i + 1);
precision = convertPrecision(sqlType, precision);
int scale = rsMeta.getScale(i + 1);
scale = convertScale(sqlType, scale);
int displaySize = rsMeta.getColumnDisplaySize(i +
1);
int type =
DataType.convertSQLTypeToValueType(sqlType);
Column col = new Column(n, type, precision, scale,
displaySize);
col.setTable(this, i++);
columnList.add(col);
columnMap.put(n, col);
}
I was expecting an isSigned test on the metadata but I could not find
it. So, unless I missed something, it seems to me that unsigned types
are not supported in H2 like BigInt from MySQL and that TableLinks to
such tables will result in errors as the wrong type is asked for
because the metadata is not completely interpreted.
This results in errors such as:
Error: '18446744073709551615' in column '3' is outside valid range
for
the datatype BIGINT. [0-147]
SQLState: 22003
ErrorCode: 0
being returned.
Have I interpreted this correctly? Maybe something for the feature
list?
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en.