diff -u -r original/unixODBC-2.2.8/Drivers/MySQL/catalog.c patched/unixODBC-2.2.8/Drivers/MySQL/catalog.c --- original/unixODBC-2.2.8/Drivers/MySQL/catalog.c 2002-04-10 16:14:08.000000000 +0200 +++ patched/unixODBC-2.2.8/Drivers/MySQL/catalog.c 2004-04-16 20:43:33.000000000 +0200 @@ -60,11 +60,11 @@ char *SQLTABLES_type_values[]={NULL,NULL,NULL,"TABLE",NULL}; MYSQL_FIELD SQLTABLES_fields[] = { - {"TABLE_CAT","Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"TABLE_SCHEM","Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"TABLE_NAME","Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN,0}, - {"TABLE_TYPE","Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,5,0}, - {"REMARKS","Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,11}}; + {"TABLE_CAT", "Catalog",NULL,NULL,NULL,NAME_LEN, 0,0,0,FIELD_TYPE_VAR_STRING}, + {"TABLE_SCHEM","Catalog",NULL,NULL,NULL,NAME_LEN, 0,0,0,FIELD_TYPE_VAR_STRING}, + {"TABLE_NAME", "Catalog",NULL,NULL,NULL,NAME_LEN,NAME_LEN,0,FIELD_TYPE_VAR_STRING}, + {"TABLE_TYPE", "Catalog",NULL,NULL,NULL,NAME_LEN, 5,0,0,FIELD_TYPE_VAR_STRING}, + {"REMARKS", "Catalog",NULL,NULL,NULL,NAME_LEN,11,0,0,FIELD_TYPE_VAR_STRING}}; const uint SQLTABLES_FIELDS=array_elements(SQLTABLES_values); @@ -217,24 +217,24 @@ }; MYSQL_FIELD SQLCOLUMNS_fields[] = { - {"TABLE_CAT","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"TABLE_SCHEM","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"TABLE_NAME","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN,NOT_NULL_FLAG}, - {"COLUMN_NAME","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN,NOT_NULL_FLAG}, - {"DATA_TYPE","MySQL_Catalog",NULL,FIELD_TYPE_SHORT,5,5,NOT_NULL_FLAG}, - {"TYPE_NAME","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,20,20,NOT_NULL_FLAG}, - {"COLUMN_SIZE","MySQL_Catalog",NULL,FIELD_TYPE_LONG,11,11}, - {"BUFFER_LENGTH","MySQL_Catalog",NULL,FIELD_TYPE_LONG,11,11}, - {"DECIMAL_DIGITS","MySQL_Catalog",NULL,FIELD_TYPE_SHORT,2,2}, - {"NUM_PREC_RADIX","MySQL_Catalog",NULL,FIELD_TYPE_SHORT,2,2}, - {"NULLABLE","MySQL_Catalog",NULL,FIELD_TYPE_SHORT,5,5,NOT_NULL_FLAG}, - {"REMARKS","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN}, - {"COLUMN_DEF","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN}, - {"SQL_DATA_TYPE","MySQL_Catalog",NULL,FIELD_TYPE_SHORT,5,5,NOT_NULL_FLAG}, - {"SQL_DATTIME_SUB","MySQL_Catalog",NULL,FIELD_TYPE_SHORT,2,2}, - {"CHAR_OCTET_LENGTH","MySQL_Catalog",NULL,FIELD_TYPE_LONG,11,11}, - {"ORDINAL_POSITION","MySQL_Catalog",NULL,FIELD_TYPE_LONG,11,11,NOT_NULL_FLAG}, - {"IS_NULLABLE","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,3,3}}; + {"TABLE_CAT","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"TABLE_SCHEM","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"TABLE_NAME","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"COLUMN_NAME","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"DATA_TYPE","MySQL_Catalog",NULL,NULL,NULL,5,5,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"TYPE_NAME","MySQL_Catalog",NULL,NULL,NULL,20,20,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"COLUMN_SIZE","MySQL_Catalog",NULL,NULL,NULL,11,11,0,0,FIELD_TYPE_LONG}, + {"BUFFER_LENGTH","MySQL_Catalog",NULL,NULL,NULL,11,11,0,0,FIELD_TYPE_LONG}, + {"DECIMAL_DIGITS","MySQL_Catalog",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_SHORT}, + {"NUM_PREC_RADIX","MySQL_Catalog",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_SHORT}, + {"NULLABLE","MySQL_Catalog",NULL,NULL,NULL,5,5,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"REMARKS","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,NAME_LEN,0,0,FIELD_TYPE_VAR_STRING}, + {"COLUMN_DEF","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,NAME_LEN,0,0,FIELD_TYPE_VAR_STRING}, + {"SQL_DATA_TYPE","MySQL_Catalog",NULL,NULL,NULL,5,5,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"SQL_DATTIME_SUB","MySQL_Catalog",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_SHORT}, + {"CHAR_OCTET_LENGTH","MySQL_Catalog",NULL,NULL,NULL,11,11,0,0,FIELD_TYPE_LONG}, + {"ORDINAL_POSITION","MySQL_Catalog",NULL,NULL,NULL,11,11,NOT_NULL_FLAG,0,FIELD_TYPE_LONG}, + {"IS_NULLABLE","MySQL_Catalog",NULL,NULL,NULL,3,3,0,0,FIELD_TYPE_VAR_STRING}}; const uint SQLCOLUMNS_FIELDS=array_elements(SQLCOLUMNS_values); @@ -272,7 +272,7 @@ if (!stmt->result) { set_handle_error(SQL_HANDLE_STMT,stmt,MYERR_S1000, - mysql_error(&stmt->dbc->mysql), + (SQLCHAR *) mysql_error(&stmt->dbc->mysql), mysql_errno(&stmt->dbc->mysql)); pthread_mutex_unlock(&stmt->dbc->lock); DBUG_RETURN(SQL_ERROR); @@ -341,19 +341,19 @@ char *SQLSTAT_values[]={NULL,NULL,"","",NULL,"",SS_type,"","","","",NULL,NULL}; MYSQL_FIELD SQLSTAT_fields[] = { - {"TABLE_CAT","MySQL_Stat",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"TABLE_SCHEM","MySQL_Stat",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"TABLE_NAME","MySQL_Stat",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN,NOT_NULL_FLAG}, - {"NON_UNIQUE","MySQL_Stat",NULL,FIELD_TYPE_SHORT,1,1,NOT_NULL_FLAG}, - {"INDEX_QUALIFIER","MySQL_Stat",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"INDEX_NAME","MySQL_Stat",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN}, - {"TYPE","MySQL_Stat",NULL,FIELD_TYPE_SHORT,1,1,NOT_NULL_FLAG}, - {"ORDINAL_POSITION","MySQL_Stat",NULL,FIELD_TYPE_SHORT,1,2,NOT_NULL_FLAG}, - {"COLUMN_NAME","MySQL_Stat",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN,NOT_NULL_FLAG}, - {"ASC_OR_DESC","MySQL_Stat",NULL,FIELD_TYPE_VAR_STRING,1,1}, - {"CARDINALITY","MySQL_Stat",NULL,FIELD_TYPE_LONG,11,11}, - {"PAGES","MySQL_Stat",NULL,FIELD_TYPE_LONG,9,9}, - {"FILTER_CONDITION","MySQL_Stat",NULL,FIELD_TYPE_VAR_STRING,10,10}, + {"TABLE_CAT","MySQL_Stat",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"TABLE_SCHEM","MySQL_Stat",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"TABLE_NAME","MySQL_Stat",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"NON_UNIQUE","MySQL_Stat",NULL,NULL,NULL,1,1,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"INDEX_QUALIFIER","MySQL_Stat",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"INDEX_NAME","MySQL_Stat",NULL,NULL,NULL,NAME_LEN,NAME_LEN,0,0,FIELD_TYPE_VAR_STRING}, + {"TYPE","MySQL_Stat",NULL,NULL,NULL,1,1,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"ORDINAL_POSITION","MySQL_Stat",NULL,NULL,NULL,1,2,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"COLUMN_NAME","MySQL_Stat",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"ASC_OR_DESC","MySQL_Stat",NULL,NULL,NULL,1,1,0,0,FIELD_TYPE_VAR_STRING}, + {"CARDINALITY","MySQL_Stat",NULL,NULL,NULL,11,11,0,0,FIELD_TYPE_LONG}, + {"PAGES","MySQL_Stat",NULL,NULL,NULL,9,9,0,0,FIELD_TYPE_LONG}, + {"FILTER_CONDITION","MySQL_Stat",NULL,NULL,NULL,10,10,0,0,FIELD_TYPE_VAR_STRING}, }; const uint SQLSTAT_FIELDS=array_elements(SQLSTAT_fields); @@ -390,7 +390,7 @@ !(stmt->result=mysql_store_result(&stmt->dbc->mysql))) { set_handle_error(SQL_HANDLE_STMT,stmt,MYERR_S1000, - mysql_error(&stmt->dbc->mysql), + (SQLCHAR *)mysql_error(&stmt->dbc->mysql), mysql_errno(&stmt->dbc->mysql)); pthread_mutex_unlock(&stmt->dbc->lock); DBUG_RETURN(SQL_ERROR); @@ -504,13 +504,13 @@ }; MYSQL_FIELD SQLTABLES_priv_fields[] = { - {"TABLE_CAT","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"TABLE_SCHEM","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"TABLE_NAME","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN,NOT_NULL_FLAG}, - {"GRANTOR","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"GRANTEE","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN,NOT_NULL_FLAG}, - {"PRIVILEGE","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN,NOT_NULL_FLAG}, - {"IS_GRANTABLE","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, + {"TABLE_CAT","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"TABLE_SCHEM","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"TABLE_NAME","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"GRANTOR","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"GRANTEE","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"PRIVILEGE","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"IS_GRANTABLE","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, }; const uint SQLTABLES_PRIV_FIELDS=array_elements(SQLTABLES_priv_values); @@ -551,7 +551,7 @@ if (!stmt->result) { set_handle_error(SQL_HANDLE_STMT,stmt,MYERR_S1000, - mysql_error(&stmt->dbc->mysql), + (SQLCHAR *)mysql_error(&stmt->dbc->mysql), mysql_errno(&stmt->dbc->mysql)); pthread_mutex_unlock(&stmt->dbc->lock); DBUG_RETURN(SQL_ERROR); @@ -613,14 +613,14 @@ }; MYSQL_FIELD SQLCOLUMNS_priv_fields[] = { - {"TABLE_CAT","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"TABLE_SCHEM","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"TABLE_NAME","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN,NOT_NULL_FLAG}, - {"COLUMN_NAME","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN,NOT_NULL_FLAG}, - {"GRANTOR","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"GRANTEE","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN,NOT_NULL_FLAG}, - {"PRIVILEGE","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,NAME_LEN,NOT_NULL_FLAG}, - {"IS_GRANTABLE","MySQL_Catalog",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, + {"TABLE_CAT","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"TABLE_SCHEM","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"TABLE_NAME","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"COLUMN_NAME","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"GRANTOR","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"GRANTEE","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"PRIVILEGE","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"IS_GRANTABLE","MySQL_Catalog",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, }; const uint SQLCOLUMNS_PRIV_FIELDS=array_elements(SQLCOLUMNS_priv_values); @@ -665,7 +665,7 @@ if (!stmt->result) { set_handle_error(SQL_HANDLE_STMT,stmt,MYERR_S1000, - mysql_error(&stmt->dbc->mysql), + (SQLCHAR *)mysql_error(&stmt->dbc->mysql), mysql_errno(&stmt->dbc->mysql)); pthread_mutex_unlock(&stmt->dbc->lock); DBUG_RETURN(SQL_ERROR); @@ -691,18 +691,14 @@ } MYSQL_FIELD SQLSPECIALCOLUMNS_fields[] = { - {"SCOPE","MySQL_SpecialColumns",NULL,FIELD_TYPE_SHORT,5,5, - NOT_NULL_FLAG}, - {"COLUMN_NAME","MySQL_SpecialColumns",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN, - NAME_LEN,NOT_NULL_FLAG}, - {"DATA_TYPE","MySQL_SpecialColumns",NULL,FIELD_TYPE_SHORT,5,5, - NOT_NULL_FLAG}, - {"TYPE_NAME","MySQL_SpecialColumns",NULL,FIELD_TYPE_VAR_STRING,20,20, - NOT_NULL_FLAG}, - {"COLUMN_SIZE","MySQL_SpecialColumns",NULL,FIELD_TYPE_LONG,7,7}, - {"BUFFER_LENGTH","MySQL_SpecialColumns",NULL,FIELD_TYPE_LONG,7,7}, - {"DECIMAL_DIGITS","MySQL_SpecialColumns",NULL,FIELD_TYPE_SHORT,3,3}, - {"PSEUDO_COLUMN","MySQL_SpecialColumns",NULL,FIELD_TYPE_SHORT,3,3} + {"SCOPE","MySQL_SpecialColumns",NULL,NULL,NULL,5,5,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"COLUMN_NAME","MySQL_SpecialColumns",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"DATA_TYPE","MySQL_SpecialColumns",NULL,NULL,NULL,5,5,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"TYPE_NAME","MySQL_SpecialColumns",NULL,NULL,NULL,20,20,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"COLUMN_SIZE","MySQL_SpecialColumns",NULL,NULL,NULL,7,7,0,0,FIELD_TYPE_LONG}, + {"BUFFER_LENGTH","MySQL_SpecialColumns",NULL,NULL,NULL,7,7,0,0,FIELD_TYPE_LONG}, + {"DECIMAL_DIGITS","MySQL_SpecialColumns",NULL,NULL,NULL,3,3,0,0,FIELD_TYPE_SHORT}, + {"PSEUDO_COLUMN","MySQL_SpecialColumns",NULL,NULL,NULL,3,3,0,0,FIELD_TYPE_SHORT} }; const uint SQLSPECIALCOLUMNS_FIELDS=array_elements(SQLSPECIALCOLUMNS_fields); @@ -747,7 +743,7 @@ if (!stmt->result) { set_handle_error(SQL_HANDLE_STMT,stmt,MYERR_S1000, - mysql_error(&stmt->dbc->mysql), + (SQLCHAR *)mysql_error(&stmt->dbc->mysql), mysql_errno(&stmt->dbc->mysql)); pthread_mutex_unlock(&stmt->dbc->lock); return(SQL_ERROR); @@ -866,14 +862,12 @@ /* Have DBMS set up result set of PrimaryKeys. */ MYSQL_FIELD SQLPRIM_KEYS_fields[] = { - {"TABLE_CAT","MySQL_Primary_keys",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"TABLE_SCHEM","MySQL_Primary_keys",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"TABLE_NAME","MySQL_Primary_keys",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN, - NAME_LEN, NOT_NULL_FLAG}, - {"COLUMN_NAME","MySQL_Primary_keys",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN, - NAME_LEN, NOT_NULL_FLAG}, - {"KEY_SEQ","MySQL_Primary_keys",NULL,FIELD_TYPE_SHORT,2,2,NOT_NULL_FLAG}, - {"PK_NAME","MySQL_Primary_keys",NULL,FIELD_TYPE_VAR_STRING,128,0}, + {"TABLE_CAT","MySQL_Primary_keys",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"TABLE_SCHEM","MySQL_Primary_keys",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"TABLE_NAME","MySQL_Primary_keys",NULL,NULL,NULL,NAME_LEN,NAME_LEN, NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"COLUMN_NAME","MySQL_Primary_keys",NULL,NULL,NULL,NAME_LEN,NAME_LEN, NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"KEY_SEQ","MySQL_Primary_keys",NULL,NULL,NULL,2,2,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"PK_NAME","MySQL_Primary_keys",NULL,NULL,NULL,128,0,0,0,FIELD_TYPE_VAR_STRING}, }; const uint SQLPRIM_KEYS_FIELDS=array_elements(SQLPRIM_KEYS_fields); @@ -912,7 +906,7 @@ !(stmt->result=mysql_store_result(&stmt->dbc->mysql))) { set_handle_error(SQL_HANDLE_STMT,stmt,MYERR_S1000, - mysql_error(&stmt->dbc->mysql), + (SQLCHAR *) mysql_error(&stmt->dbc->mysql), mysql_errno(&stmt->dbc->mysql)); pthread_mutex_unlock(&stmt->dbc->lock); DBUG_RETURN(SQL_ERROR); @@ -949,23 +943,19 @@ */ MYSQL_FIELD SQLFORE_KEYS_fields[] = { - {"PKTABLE_CAT","MySQL_Foreign_keys",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"PKTABLE_SCHEM","MySQL_Foreign_keys",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"PKTABLE_NAME","MySQL_Foreign_keys",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN, - NAME_LEN,NOT_NULL_FLAG}, - {"PKCOLUMN_NAME","MySQL_Foreign_keys",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN, - NAME_LEN,NOT_NULL_FLAG}, - {"FKTABLE_CAT","MySQL_Foreign_keys",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN,0}, - {"FKTABLE_SCHEM","MySQL_Foreign_keys",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN, - NAME_LEN,NOT_NULL_FLAG}, - {"FKCOLUMN_NAME","MySQL_Foreign_keys",NULL,FIELD_TYPE_VAR_STRING,NAME_LEN, - NAME_LEN,NOT_NULL_FLAG}, - {"KEY_SEQ","MySQL_Foreign_keys",NULL,FIELD_TYPE_SHORT,2,2,NOT_NULL_FLAG}, - {"UPDATE_RULE","MySQL_Foreign_keys",NULL,FIELD_TYPE_SHORT,2,2}, - {"DELETE_RULE","MySQL_Foreign_keys",NULL,FIELD_TYPE_SHORT,2,2}, - {"FK_NAME","MySQL_Foreign_keys",NULL,FIELD_TYPE_VAR_STRING,128,0}, - {"PK_NAME","MySQL_Foreign_keys",NULL,FIELD_TYPE_VAR_STRING,128,0}, - {"DEFERRABILITY","MySQL_Foreign_keys",NULL,FIELD_TYPE_SHORT,2,2}, + {"PKTABLE_CAT","MySQL_Foreign_keys",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"PKTABLE_SCHEM","MySQL_Foreign_keys",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"PKTABLE_NAME","MySQL_Foreign_keys",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"PKCOLUMN_NAME","MySQL_Foreign_keys",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"FKTABLE_CAT","MySQL_Foreign_keys",NULL,NULL,NULL,NAME_LEN,0,0,0,FIELD_TYPE_VAR_STRING}, + {"FKTABLE_SCHEM","MySQL_Foreign_keys",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"FKCOLUMN_NAME","MySQL_Foreign_keys",NULL,NULL,NULL,NAME_LEN,NAME_LEN,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"KEY_SEQ","MySQL_Foreign_keys",NULL,NULL,NULL,2,2,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"UPDATE_RULE","MySQL_Foreign_keys",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_SHORT}, + {"DELETE_RULE","MySQL_Foreign_keys",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_SHORT}, + {"FK_NAME","MySQL_Foreign_keys",NULL,NULL,NULL,128,0,0,0,FIELD_TYPE_VAR_STRING}, + {"PK_NAME","MySQL_Foreign_keys",NULL,NULL,NULL,128,0,0,0,FIELD_TYPE_VAR_STRING}, + {"DEFERRABILITY","MySQL_Foreign_keys",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_SHORT}, }; const uint SQLFORE_KEYS_FIELDS=array_elements(SQLFORE_KEYS_fields); @@ -1019,7 +1009,7 @@ SQLCHAR FAR *szProcName,SQLSMALLINT cbProcName) { return set_handle_error(SQL_HANDLE_STMT,hstmt,MYERR_S1000, - "Driver doesn't support this yet",4000); + (SQLCHAR *)"Driver doesn't support this yet",4000); } /* diff -u -r original/unixODBC-2.2.8/Drivers/MySQL/connect.c patched/unixODBC-2.2.8/Drivers/MySQL/connect.c --- original/unixODBC-2.2.8/Drivers/MySQL/connect.c 2002-04-10 16:14:08.000000000 +0200 +++ patched/unixODBC-2.2.8/Drivers/MySQL/connect.c 2004-04-16 20:43:34.000000000 +0200 @@ -192,7 +192,7 @@ socket[0] ? socket: NullS, (uint) client_flag)) { - set_dbc_error(dbc, "S1000", mysql_error(&dbc->mysql), + set_dbc_error(dbc, "S1000", (SQLCHAR *)mysql_error(&dbc->mysql), mysql_errno(&dbc->mysql)); translate_error(dbc->error.sqlstate,"S1000",mysql_errno(&dbc->mysql)); DBUG_RETURN(SQL_ERROR); @@ -647,7 +647,7 @@ (uint) client_flag)) { DBUG_RETURN(set_handle_error(SQL_HANDLE_DBC,hdbc,MYERR_S1000, - mysql_error(&dbc->mysql), + (SQLCHAR *)mysql_error(&dbc->mysql), mysql_errno(&dbc->mysql))); } dbc->dsn=my_strdup(KEY_DSN,MYF(MY_WME)); diff -u -r original/unixODBC-2.2.8/Drivers/MySQL/cursor.c patched/unixODBC-2.2.8/Drivers/MySQL/cursor.c --- original/unixODBC-2.2.8/Drivers/MySQL/cursor.c 2002-04-10 16:14:08.000000000 +0200 +++ patched/unixODBC-2.2.8/Drivers/MySQL/cursor.c 2004-04-16 20:45:44.000000000 +0200 @@ -182,7 +182,7 @@ !(presult=mysql_store_result(&stmt->dbc->mysql))) { set_handle_error(SQL_HANDLE_STMT,stmt,MYERR_S1000, - mysql_error(&stmt->dbc->mysql), + (SQLCHAR *)mysql_error(&stmt->dbc->mysql), mysql_errno(&stmt->dbc->mysql)); pthread_mutex_unlock(&stmt->dbc->lock); return(0); @@ -326,7 +326,7 @@ mysql_real_query(&dbc->mysql,query,len)) { error = set_handle_error(SQL_HANDLE_STMT,stmt,MYERR_S1000, - mysql_error(&dbc->mysql), + (SQLCHAR *)mysql_error(&dbc->mysql), mysql_errno(&dbc->mysql)); } pthread_mutex_unlock(&dbc->lock); @@ -484,7 +484,7 @@ if (mysql_query(&stmt->dbc->mysql,query.str) || !(presult=mysql_store_result(&stmt->dbc->mysql))) { - set_handle_error(SQL_HANDLE_STMT,stmt,MYERR_S1000,mysql_error(&stmt->dbc->mysql), + set_handle_error(SQL_HANDLE_STMT,stmt,MYERR_S1000,(SQLCHAR *)mysql_error(&stmt->dbc->mysql), mysql_errno(&stmt->dbc->mysql)); pthread_mutex_unlock(&stmt->dbc->lock); dynstr_free(&query); @@ -547,7 +547,7 @@ if((mysql_query(&stmt->dbc->mysql,select) || !(presult=mysql_store_result(&stmt->dbc->mysql)))) { - set_handle_error(3,stmt,MYERR_S1000,mysql_error(&stmt->dbc->mysql), + set_handle_error(3,stmt,MYERR_S1000,(SQLCHAR *)mysql_error(&stmt->dbc->mysql), mysql_errno(&stmt->dbc->mysql)); pthread_mutex_unlock(&stmt->dbc->lock); return(SQL_ERROR); diff -u -r original/unixODBC-2.2.8/Drivers/MySQL/execute.c patched/unixODBC-2.2.8/Drivers/MySQL/execute.c --- original/unixODBC-2.2.8/Drivers/MySQL/execute.c 2002-04-10 16:14:08.000000000 +0200 +++ patched/unixODBC-2.2.8/Drivers/MySQL/execute.c 2004-04-16 20:43:34.000000000 +0200 @@ -77,7 +77,7 @@ if (check_if_server_is_alive(stmt->dbc) || mysql_query(&stmt->dbc->mysql,query)) { - set_stmt_error(stmt,"S1000",mysql_error(&stmt->dbc->mysql), + set_stmt_error(stmt,"S1000",(SQLCHAR *)mysql_error(&stmt->dbc->mysql), mysql_errno(&stmt->dbc->mysql)); translate_error(stmt->error.sqlstate,"S1000", mysql_errno(&stmt->dbc->mysql)); @@ -104,7 +104,7 @@ goto exit; } set_handle_error(SQL_HANDLE_STMT,stmt,MYERR_S1000, - mysql_error(&stmt->dbc->mysql), + (SQLCHAR *)mysql_error(&stmt->dbc->mysql), mysql_errno(&stmt->dbc->mysql)); goto exit; } diff -u -r original/unixODBC-2.2.8/Drivers/MySQL/info.c patched/unixODBC-2.2.8/Drivers/MySQL/info.c --- original/unixODBC-2.2.8/Drivers/MySQL/info.c 2002-04-10 16:14:08.000000000 +0200 +++ patched/unixODBC-2.2.8/Drivers/MySQL/info.c 2004-04-16 20:43:34.000000000 +0200 @@ -830,25 +830,25 @@ */ MYSQL_FIELD SQL_GET_TYPE_INFO_fields[] = { - {"TYPE_NAME","GetTypeInfo",NULL,FIELD_TYPE_VAR_STRING,32,32,NOT_NULL_FLAG}, - {"DATA_TYPE","GetTypeInfo",NULL,FIELD_TYPE_SHORT,2,2,NOT_NULL_FLAG}, - {"COLUMN_SIZE","GetTypeInfo",NULL,FIELD_TYPE_LONG,10,10}, - {"LITERAL_PREFIX","GetTypeInfo",NULL,FIELD_TYPE_VAR_STRING,2,2}, - {"LITERAL_SUFFIX","GetTypeInfo",NULL,FIELD_TYPE_VAR_STRING,2,2}, - {"CREATE_PARAMS","GetTypeInfo",NULL,FIELD_TYPE_VAR_STRING,15,15}, - {"NULLABLE","GetTypeInfo",NULL,FIELD_TYPE_SHORT,2,2,NOT_NULL_FLAG}, - {"CASE_SENSITIVE","GetTypeInfo",NULL,FIELD_TYPE_SHORT,2,2,NOT_NULL_FLAG}, - {"SEARCHABLE","GetTypeInfo",NULL,FIELD_TYPE_SHORT,2,2,NOT_NULL_FLAG}, - {"UNSIGNED_ATTRIBUTE","GetTypeInfo",NULL,FIELD_TYPE_SHORT,2,2}, - {"FIXED_PREC_SCALE","GetTypeInfo",NULL,FIELD_TYPE_SHORT,2,2,NOT_NULL_FLAG}, - {"AUTO_UNIQUE_VALUE","GetTypeInfo",NULL,FIELD_TYPE_SHORT,2,2}, - {"LOCAL_TYPE_NAME","GetTypeInfo",NULL,FIELD_TYPE_VAR_STRING,60,60}, - {"MINIMUM_SCALE","GetTypeInfo",NULL,FIELD_TYPE_SHORT,2,2}, - {"MAXIMUM_SCALE","GetTypeInfo",NULL,FIELD_TYPE_SHORT,2,2}, - {"SQL_DATATYPE","GetTypeInfo",NULL,FIELD_TYPE_SHORT,2,2,NOT_NULL_FLAG}, - {"SQL_DATETIME_SUB","GetTypeInfo",NULL,FIELD_TYPE_SHORT,2,2}, - {"NUM_PREC_RADIX","GetTypeInfo",NULL,FIELD_TYPE_LONG,10,10}, - {"INTERVAL_PRECISION","GetTypeInfo",NULL,FIELD_TYPE_SHORT,2,2}, + {"TYPE_NAME","GetTypeInfo",NULL,NULL,NULL,32,32,NOT_NULL_FLAG,0,FIELD_TYPE_VAR_STRING}, + {"DATA_TYPE","GetTypeInfo",NULL,NULL,NULL,2,2,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"COLUMN_SIZE","GetTypeInfo",NULL,NULL,NULL,10,10,0,0,FIELD_TYPE_LONG}, + {"LITERAL_PREFIX","GetTypeInfo",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_VAR_STRING}, + {"LITERAL_SUFFIX","GetTypeInfo",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_VAR_STRING}, + {"CREATE_PARAMS","GetTypeInfo",NULL,NULL,NULL,15,15,0,0,FIELD_TYPE_VAR_STRING}, + {"NULLABLE","GetTypeInfo",NULL,NULL,NULL,2,2,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"CASE_SENSITIVE","GetTypeInfo",NULL,NULL,NULL,2,2,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"SEARCHABLE","GetTypeInfo",NULL,NULL,NULL,2,2,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"UNSIGNED_ATTRIBUTE","GetTypeInfo",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_SHORT}, + {"FIXED_PREC_SCALE","GetTypeInfo",NULL,NULL,NULL,2,2,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"AUTO_UNIQUE_VALUE","GetTypeInfo",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_SHORT}, + {"LOCAL_TYPE_NAME","GetTypeInfo",NULL,NULL,NULL,60,60,0,0,FIELD_TYPE_VAR_STRING}, + {"MINIMUM_SCALE","GetTypeInfo",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_SHORT}, + {"MAXIMUM_SCALE","GetTypeInfo",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_SHORT}, + {"SQL_DATATYPE","GetTypeInfo",NULL,NULL,NULL,2,2,NOT_NULL_FLAG,0,FIELD_TYPE_SHORT}, + {"SQL_DATETIME_SUB","GetTypeInfo",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_SHORT}, + {"NUM_PREC_RADIX","GetTypeInfo",NULL,NULL,NULL,10,10,0,0,FIELD_TYPE_LONG}, + {"INTERVAL_PRECISION","GetTypeInfo",NULL,NULL,NULL,2,2,0,0,FIELD_TYPE_SHORT}, }; diff -u -r original/unixODBC-2.2.8/Drivers/MySQL/options.c patched/unixODBC-2.2.8/Drivers/MySQL/options.c --- original/unixODBC-2.2.8/Drivers/MySQL/options.c 2002-04-10 16:14:08.000000000 +0200 +++ patched/unixODBC-2.2.8/Drivers/MySQL/options.c 2004-04-16 20:43:25.000000000 +0200 @@ -295,7 +295,7 @@ pthread_mutex_lock(&dbc->lock); if (mysql_select_db(&dbc->mysql,(char*) ValuePtr)) { - set_handle_error(SQL_HANDLE_DBC,dbc,MYERR_S1000,mysql_error(&dbc->mysql), + set_handle_error(SQL_HANDLE_DBC,dbc,MYERR_S1000,(SQLCHAR *)mysql_error(&dbc->mysql), mysql_errno(&dbc->mysql)); pthread_mutex_unlock(&dbc->lock); DBUG_RETURN(SQL_ERROR); @@ -412,7 +412,7 @@ break; case SQL_ATTR_CONNECTION_TIMEOUT: - *((SQLUINTEGER *) ValuePtr)= dbc->mysql.net.timeout; + *((SQLUINTEGER *) ValuePtr)= dbc->mysql.net.read_timeout; break; case SQL_ATTR_CURRENT_CATALOG: diff -u -r original/unixODBC-2.2.8/Drivers/MySQL/results.c patched/unixODBC-2.2.8/Drivers/MySQL/results.c --- original/unixODBC-2.2.8/Drivers/MySQL/results.c 2002-04-10 16:14:08.000000000 +0200 +++ patched/unixODBC-2.2.8/Drivers/MySQL/results.c 2004-04-16 20:43:34.000000000 +0200 @@ -606,7 +606,7 @@ if (!stmt->result) { set_handle_error(SQL_HANDLE_STMT,stmt,MYERR_S1000, - mysql_error(&stmt->dbc->mysql), + (SQLCHAR *)mysql_error(&stmt->dbc->mysql), mysql_errno(&stmt->dbc->mysql)); pthread_mutex_unlock(&stmt->dbc->lock); return(SQL_ERROR); diff -u -r original/unixODBC-2.2.8/Drivers/MySQL/transact.c patched/unixODBC-2.2.8/Drivers/MySQL/transact.c --- original/unixODBC-2.2.8/Drivers/MySQL/transact.c 2002-04-10 16:14:08.000000000 +0200 +++ patched/unixODBC-2.2.8/Drivers/MySQL/transact.c 2004-04-16 20:43:34.000000000 +0200 @@ -73,7 +73,7 @@ mysql_real_query(&dbc->mysql,query,strlen(query))) { result=set_handle_error(SQL_HANDLE_DBC,hdbc,MYERR_S1000, - mysql_error(&dbc->mysql), + (SQLCHAR *)mysql_error(&dbc->mysql), mysql_errno(&dbc->mysql)); } pthread_mutex_unlock(&dbc->lock); diff -u -r original/unixODBC-2.2.8/Drivers/MySQL/utility.c patched/unixODBC-2.2.8/Drivers/MySQL/utility.c --- original/unixODBC-2.2.8/Drivers/MySQL/utility.c 2002-04-10 16:14:08.000000000 +0200 +++ patched/unixODBC-2.2.8/Drivers/MySQL/utility.c 2004-04-16 20:44:58.000000000 +0200 @@ -47,7 +47,7 @@ mysql_real_query(&dbc->mysql,query,strlen(query))) { result = set_handle_error(SQL_HANDLE_DBC,dbc,MYERR_S1000, - mysql_error(&dbc->mysql), + (SQLCHAR *)mysql_error(&dbc->mysql), mysql_errno(&dbc->mysql)); } pthread_mutex_unlock(&dbc->lock);