Index: ChangeLog =================================================================== --- ChangeLog (revision 1041) +++ ChangeLog (working copy) @@ -13,6 +13,8 @@ * SSL connections could not be established properly. Added the server certificate verification flag. (Bug #29955) * Added deprecated SQLSetParam function. (Bug #29871) + * Fixed some incorrect information returned by SQLGetTypeInfo(). + (Bug #30918) ---- Index: driver/info.c =================================================================== --- driver/info.c (revision 1041) +++ driver/info.c (working copy) @@ -907,7 +907,7 @@ }; const uint SQL_GET_TYPE_INFO_FIELDS= array_elements(SQL_GET_TYPE_INFO_fields); -#define MYSQL_DATA_TYPES 53 +#define MYSQL_DATA_TYPES 52 char sql_searchable[6], sql_unsearchable[6], sql_nullable[6], sql_no_nulls[6], sql_bit[6], sql_tinyint[6], sql_smallint[6], sql_integer[6], sql_bigint[6], @@ -919,8 +919,7 @@ char *SQL_GET_TYPE_INFO_values[MYSQL_DATA_TYPES][19]= { /* SQL_BIT= -7 */ - {"bit",sql_bit,"1",NULL,NULL,NULL,sql_nullable,"0",sql_searchable,"0","0","0","char(1)",NULL,NULL,sql_bit,NULL,NULL,NULL}, - {"bit auto_increment",sql_bit,"1",NULL,NULL,NULL,sql_no_nulls,"0",sql_searchable,"0","0","1","char(1) auto_increment",NULL,NULL,sql_bit,NULL, NULL,NULL}, + {"bit",sql_bit,"1",NULL,NULL,NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"bit(1)",NULL,NULL,sql_bit,NULL,NULL,NULL}, /* SQL_TINY= -6 */ {"tinyint",sql_tinyint,"3",NULL,NULL,NULL,sql_nullable,"0",sql_searchable,"0","0","0","tinyint",NULL,NULL,sql_tinyint,NULL,"10",NULL}, @@ -935,28 +934,27 @@ {"bigint unsigned auto_increment",sql_bigint,"20",NULL,NULL,NULL,sql_no_nulls, "0",sql_searchable,"1","0","1","bigint unsigned auto_increment",NULL,NULL,sql_bigint, NULL,"10",NULL}, /* SQL_LONGVARBINARY= -4 */ - {"long varbinary",sql_longvarbinary,"16777215","0x",NULL,NULL,sql_nullable,"0",sql_searchable,"0","0","0","mediumblob",NULL,NULL,sql_longvarbinary,NULL,NULL,NULL}, - {"blob",sql_longvarbinary,"65535","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","binary large object (0-65535)",NULL,NULL,sql_longvarbinary,NULL,NULL,NULL}, - {"longblob",sql_longvarbinary,"2147483647","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","binary large object, use mediumblob instead",NULL,NULL,sql_longvarbinary,NULL,NULL,NULL}, - {"tinyblob",sql_longvarbinary,"255","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","binary large object (0-255) ",NULL,NULL,sql_longvarbinary,NULL,NULL,NULL}, - {"mediumblob",sql_longvarbinary,"16777215","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","binary large object",NULL,NULL,sql_longvarbinary,NULL,NULL,NULL}, + {"long varbinary",sql_longvarbinary,"16777215","0x",NULL,NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"mediumblob",NULL,NULL,sql_longvarbinary,NULL,NULL,NULL}, + {"blob",sql_longvarbinary,"65535","'","'",NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"binary large object (0-65535)",NULL,NULL,sql_longvarbinary,NULL,NULL,NULL}, + {"longblob",sql_longvarbinary,"2147483647","'","'",NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"binary large object, use mediumblob instead",NULL,NULL,sql_longvarbinary,NULL,NULL,NULL}, + {"tinyblob",sql_longvarbinary,"255","'","'",NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"binary large object (0-255)",NULL,NULL,sql_longvarbinary,NULL,NULL,NULL}, + {"mediumblob",sql_longvarbinary,"16777215","'","'",NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"binary large object",NULL,NULL,sql_longvarbinary,NULL,NULL,NULL}, /* SQL_VARBINARY= -3 */ - {"varbinary",sql_varbinary,"255","'","'","length",sql_nullable,"0",sql_searchable,"0","0","0","varbinary",NULL,NULL,sql_varbinary,NULL,NULL,NULL}, + {"varbinary",sql_varbinary,"255","'","'","length",sql_nullable,"0",sql_searchable,NULL,"0",NULL,"varbinary",NULL,NULL,sql_varbinary,NULL,NULL,NULL}, /* SQL_BINARY= -2 */ - {"binary",sql_binary,"255","'","'","length",sql_nullable,"0",sql_searchable,"0","0","0","binary",NULL,NULL,sql_binary,NULL,NULL,NULL}, + {"binary",sql_binary,"255","'","'","length",sql_nullable,"0",sql_searchable,NULL,"0",NULL,"binary",NULL,NULL,sql_binary,NULL,NULL,NULL}, - /* SQL_LONGVARCHAR= -1 */ - {"long varchar",sql_longvarchar,"16777215","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","mediumtext",NULL,NULL,sql_longvarchar,NULL,NULL,NULL}, - {"text",sql_longvarchar,"65535","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","text(0-65535)",NULL,NULL,sql_longvarchar,NULL,NULL,NULL}, - {"mediumtext",sql_longvarchar,"16777215","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","mediumtext",NULL,NULL,sql_longvarchar,NULL,NULL,NULL}, - {"longtext",sql_longvarchar,"2147483647","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","longtext",NULL,NULL,sql_longvarchar,NULL,NULL,NULL}, - {"tinytext",sql_longvarchar,"255","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","tinytext",NULL,NULL,sql_longvarchar,NULL,NULL,NULL}, + {"long varchar",sql_longvarchar,"16777215","'","'",NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"mediumtext",NULL,NULL,sql_longvarchar,NULL,NULL,NULL}, + {"text",sql_longvarchar,"65535","'","'",NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"text(0-65535)",NULL,NULL,sql_longvarchar,NULL,NULL,NULL}, + {"mediumtext",sql_longvarchar,"16777215","'","'",NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"mediumtext",NULL,NULL,sql_longvarchar,NULL,NULL,NULL}, + {"longtext",sql_longvarchar,"2147483647","'","'",NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"longtext",NULL,NULL,sql_longvarchar,NULL,NULL,NULL}, + {"tinytext",sql_longvarchar,"255","'","'",NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"tinytext",NULL,NULL,sql_longvarchar,NULL,NULL,NULL}, /* SQL_CHAR= 1 */ - {"char",sql_char,"255","'","'","length",sql_nullable,"0",sql_searchable,"0","0","0","char",NULL,NULL,sql_char,NULL,NULL,NULL}, + {"char",sql_char,"255","'","'","length",sql_nullable,"0",sql_searchable,NULL,"0",NULL,"char",NULL,NULL,sql_char,NULL,NULL,NULL}, /* SQL_NUMERIC= 2 */ {"numeric",sql_numeric,"19",NULL,NULL,"precision,scale",sql_nullable,"0",sql_searchable,"0","0","0","numeric","0","19",sql_numeric,NULL,"10",NULL}, @@ -985,39 +983,34 @@ {"smallint unsigned auto_increment",sql_smallint,"5",NULL,NULL,NULL,sql_no_nulls, "0",sql_searchable,"1","0","1","smallint unsigned auto_increment",NULL,NULL, sql_smallint,NULL,"10",NULL}, /* SQL_FLOAT= 6 */ - {"double",sql_float,"15",NULL,NULL,NULL,sql_nullable,"0",sql_searchable,"0","0","0","double","0","4",sql_float, NULL,"2",NULL}, - {"double auto_increment",sql_float,"15",NULL,NULL,NULL,sql_no_nulls,"0",sql_searchable,"0","0","1","double auto_increment","0","4",sql_float,NULL,"2",NULL}, + {"double",sql_float,"15",NULL,NULL,NULL,sql_nullable,"0",sql_searchable,"0","0","0","double","0","4",sql_float, NULL,"10",NULL}, + {"double auto_increment",sql_float,"15",NULL,NULL,NULL,sql_no_nulls,"0",sql_searchable,"0","0","1","double auto_increment","0","4",sql_float,NULL,"10",NULL}, /* SQL_REAL= 7 */ - {"float",sql_real,"7",NULL,NULL,NULL,sql_nullable, "0",sql_unsearchable,"0","0","0","float","0","2",sql_float, NULL,"10",NULL}, - {"float auto_increment",sql_real,"7",NULL,NULL,NULL,sql_no_nulls,"0",sql_unsearchable,"0","0","1","float auto_increment","0","2",sql_float,NULL,"10",NULL}, + {"float",sql_real,"7",NULL,NULL,NULL,sql_nullable, "0",sql_unsearchable,"0","0","0","float","0","2",sql_real, NULL,"10",NULL}, + {"float auto_increment",sql_real,"7",NULL,NULL,NULL,sql_no_nulls,"0",sql_unsearchable,"0","0","1","float auto_increment","0","2",sql_real,NULL,"10",NULL}, /* SQL_DOUBLE= 8 */ {"double",sql_double,"15",NULL,NULL,NULL,sql_nullable,"0",sql_searchable,"0","0","0","double","0","4",sql_double,NULL,"10",NULL}, {"double auto_increment",sql_double,"15",NULL,NULL,NULL,sql_no_nulls,"0",sql_searchable,"0","0","1","double auto_increment","0","4",sql_double,NULL,"10",NULL}, /* SQL_TYPE_DATE= 91 */ - {"date",sql_date,"10","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","date",NULL,NULL,sql_datetime,sql_date,NULL,NULL}, + {"date",sql_date,"10","'","'",NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"date",NULL,NULL,sql_datetime,sql_date,NULL,NULL}, /* SQL_TYPE_TIME= 92 */ - {"time",sql_time,"8","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","time",NULL,NULL,sql_datetime,sql_time,NULL,NULL}, + {"time",sql_time,"8","'","'",NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"time",NULL,NULL,sql_datetime,sql_time,NULL,NULL}, /* YEAR - SQL_SMALLINT */ {"year",sql_smallint,"4",NULL,NULL,NULL,sql_nullable,"0",sql_searchable,"0","0","0","year",NULL,NULL,sql_smallint,NULL,"10",NULL}, /* SQL_TYPE_TIMESTAMP= 93 */ - {"datetime",sql_timestamp,"21","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","datetime","0","0",sql_datetime,sql_timestamp,NULL,NULL}, - {"timestamp",sql_timestamp,"14","'","'",NULL,sql_no_nulls,"0",sql_searchable,"0","0","0","timestamp","0","0",sql_datetime,sql_timestamp,NULL,NULL}, + {"datetime",sql_timestamp,"21","'","'",NULL,sql_nullable,"0",sql_searchable,NULL,"0",NULL,"datetime","0","0",sql_datetime,sql_timestamp,NULL,NULL}, + {"timestamp",sql_timestamp,"14","'","'",NULL,sql_no_nulls,"0",sql_searchable,NULL,"0",NULL,"timestamp","0","0",sql_datetime,sql_timestamp,NULL,NULL}, /* SQL_VARCHAR= 12 */ -#if TO_BE_DELETED /* NO NEED OF THIS, causes problems for DM */ - {"text",sql_varchar,"255","'","'","",sql_nullable,"0",sql_searchable,"0","0","0","text",NULL,NULL,sql_varchar,NULL,NULL,NULL}, -#endif - {"varchar",sql_varchar,"255","'","'","max length",sql_nullable,"0",sql_searchable,"0","0","0","varchar",NULL,NULL,sql_varchar,NULL,NULL,NULL}, -#if TO_BE_DELETED /* NO NEED OF THIS, causes problems for DM */ - {"enum",sql_varchar,"255","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","enum(value1,value2,value3...)",NULL,NULL,sql_varchar,NULL,NULL,NULL}, - {"set",sql_varchar,"255","'","'",NULL,sql_nullable,"0",sql_searchable,"0","0","0","set(value1,value2,value3...)",NULL,NULL,sql_varchar,NULL,NULL,NULL} -#endif + {"varchar",sql_varchar,"255","'","'","length",sql_nullable,"0",sql_searchable,NULL,"0",NULL,"varchar",NULL,NULL,sql_varchar,NULL,NULL,NULL}, + + /* ENUM and SET are not included -- it confuses some applications. */ };