Menu

#124 Unexpected metadata for VARCHAR columns

open
nobody
None
5
2003-03-11
2003-03-11
Anonymous
No

Using Windows 2000 w/SP3, 3.0.6-stable against mySQL
3.23.55.

Through mySql client,

CREATE TABLE
counters (
TableName VARCHAR(64),
FieldName
VARCHAR(64),
NextCounter INTEGER);

mysql>
describe counters;
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key |
Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| TableName | varchar(64) | YES | |
NULL | |
| FieldName | varchar(64) | YES | | NULL | |
|
NextCounter | int(11) | YES | | NULL | |
+-------------+-------------+------+-----+---------+-------
+

Through JDBC,
ResultSet rs;

ResultSetMetaData rsmeta;
...
String query = "SELECT
TableName, FieldName, NextCounter FROM
counters";
...
rs = stmt.executeQuery(query);
rsmeta
= rs.getMetaData();
...

rsmeta.getColumnTypeName(1)
// was "CHAR", expected
"VARCHAR"
...
rsmeta.getColumnType(1)
// was 1
(java.sql.Types.CHAR), expected 12

This isn't
documented as one of mySQL's silent text column conversions,
and the columns "describe" as varchar(64) anyway.

Discussion


Log in to post a comment.