Details
Description
DatabaseMetadata.getColumns() returns bad COLUMN_SIZE value for varchar and varbinary columns. Specifically, for the following table:
CREATE TABLE SERGIO (I INTEGER, V10 VARCHAR(10),
VHUGE VARCHAR(2147483647), V VARCHAR, VB10 VARBINARY(10), VBHUGE VARBINARY(2147483647), VB VARBINARY) ;
1. COLUMN_SIZE is NULL for all varbinary columns, no matter the defined size. This should return the max possible size of the column, so:
COLUMN_SIZE should return 10 for column VB10,
COLUMN_SIZE should return 2147483647 for column VBHUGE,
COLUMN_SIZE should return 2147483647 for column VB, assuming that a column defined with no size should default to the maximum size.
2. COLUMN_SIZE returns NULL for all varchar columns that are not defined with a size, like in column V in the above CREATE TABLE. I would think that a VARCHAR column defined with no size parameter should default to the maximum size possible (2147483647) for COLUMN_SIZE, not to NULL.
Attachments
Issue Links
- depends upon
-
CALCITE-1684 Change default precision of VARCHAR and VARBINARY from 1 to "unspecified"
- Closed
- relates to
-
PHOENIX-2370 ResultSetMetaData.getColumnDisplaySize() returns bad value for varchar and varbinary columns
- Patch Available