Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
3.0.6, 2.0.18
-
None
Description
If SP parameter is described as double(m,n), connector will return its type as SQL_DOUBLE, and column size as m. While specs says that column size for SQL_DOUBLE is fixed and is 15.
Connector should either return the type as SQL_DECIMAL, or return column size 15. The similar problem exists for float fields as well.
BUFFER_LENGTH for decimal field does not consider if the field unsigned
For SQLProcedureColumns NUM_PREC_RADIX is always 10, while it should be NULL for types, where it is not applicable, i.e. for non-numeric types
BUFFER_LENGTH for character types contains incorrect data. Currently this is max number of bytes for encoding of string in charset used for storing data on server, while that has to be in the charset used for transferring data to the client.
SQLColumns returns incorrect SQL_DATETIME_SUB - SQL_TYPE_DATE instead of SQL_CODE_DATE, etc. SQLProceduresColumns returns NULL for all data types, and also it returns incorrect inconcise type for datetime parameters - should be SQL_DATETIME for all date/time types
Both functions would return NULL in COLUMN_SIZE, and would not return correct value in BUFFER_LENGTH for MySQL 'year' type
SQLProcedureColumns should return empty string in COLUMN_NAME for procedure columns that does not have name, e.g. for functions return value. It returns NULL instead.
Also both functions did not do difference between NULL and empty string parameters. Specs says, that "" has different meaning for catalog/schema name. Also CatalogName cannot be string search pattern, while it is allowed by connector.