|
|||||||||||
|
Connector/ODBC 3.51 commit: r731 - in branches/guffert: . driver test
From: <jwinstead(at)mysql.com>
Date: Fri Aug 31 2007 - 19:42:00 EDT
branches/guffert/ branches/guffert/BUILD.win branches/guffert/ChangeLog branches/guffert/driver/catalog.c branches/guffert/driver/cursor.c branches/guffert/driver/driver.h branches/guffert/driver/execute.c branches/guffert/driver/handle.c branches/guffert/driver/info.c branches/guffert/driver/myutil.h branches/guffert/driver/options.c branches/guffert/driver/prepare.c branches/guffert/driver/results.c branches/guffert/driver/utility.c branches/guffert/test/my_catalog.c Log: Merged revisions 714-729 via svnmerge from svn+ssh://bk-internal/connectors-svnroot/connector-odbc3/trunk
.......
Let SQLGetData() always return SQL_NO_DATA_FOUND on second call when
no data left, even if requested size is 0 (bug#30520).
.......
Added entry for bug#30520
Remove use of gptr, because it was removed from 5.1, and eliminate all warnings in the driver when compiling against the 5.0 or 5.1 client libraries. ....... Property changes on: branches/guffert Name: svnmerge-integrated
Modified: branches/guffert/BUILD.win
devenv.com MySQL_Connector_ODBC.sln /build Release - devenv.com MySQL_Connector_ODBC.sln /build DebWithDbgInfo + devenv.com MySQL_Connector_ODBC.sln /build RelWithDbgInfo devenv.com MySQL_Connector_ODBC.sln /build Debug Upon completion; you will find the executables in the target sub Modified: branches/guffert/ChangeLog
Bugs fixed:
3.51.19 (8-Aug-2007)
Modified: branches/guffert/driver/catalog.c
MYSQL_FIELD SQLTABLES_fields[]=
- {"TABLE_CAT", NullS,"Catalog",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TABLE_SCHEM", NullS,"Catalog",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TABLE_NAME", NullS,"Catalog",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TABLE_TYPE", NullS,"Catalog",NullS,NullS,NullS,NullS,NAME_LEN,5, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"REMARKS", NullS,"Catalog",NullS,NullS,NullS,NullS,NAME_LEN,11, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING}
+ MYODBC_FIELD_STRING("TABLE_CAT", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("TABLE_SCHEM", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("TABLE_NAME", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("TABLE_TYPE", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("REMARKS", NAME_LEN, 0),
};
const uint SQLTABLES_FIELDS= array_elements(SQLTABLES_values);
stmt->order = SQLTABLES_qualifier_order;
stmt->order_count = array_elements(SQLTABLES_qualifier_order);
stmt->fix_fields = fix_fields_copy;
- stmt->array= (MYSQL_ROW) my_memdup((gptr) SQLTABLES_qualifier_values,
+ stmt->array= (MYSQL_ROW) my_memdup((char *)SQLTABLES_qualifier_values,
sizeof(SQLTABLES_qualifier_values),
MYF(0));
if (!stmt->array)
empty_set:
sizeof(SQLTABLES_values),
SQLTABLES_fields,
SQLTABLES_FIELDS);
@@ -540,24 +540,24 @@
MYSQL_FIELD SQLCOLUMNS_fields[]=
- {"TABLE_CAT", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TABLE_SCHEM", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TABLE_NAME", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"COLUMN_NAME", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"DATA_TYPE", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,5,5, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_SHORT},
- {"TYPE_NAME", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,20,20, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"COLUMN_SIZE", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,11,11, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_LONG},
- {"BUFFER_LENGTH", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,11,11, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_LONG},
- {"DECIMAL_DIGITS", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,2,2, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_SHORT},
- {"NUM_PREC_RADIX", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,2,2, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_SHORT},
- {"NULLABLE", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,5,5, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_SHORT},
- {"REMARKS", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"COLUMN_DEF", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"SQL_DATA_TYPE", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,5,5, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_SHORT},
- {"SQL_DATETIME_SUB", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,2,2, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_SHORT},
- {"CHAR_OCTET_LENGTH", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,11,11, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_LONG},
- {"ORDINAL_POSITION", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,11,11, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_LONG},
- {"IS_NULLABLE", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,3,3, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING}
+ MYODBC_FIELD_STRING("TABLE_CAT", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("TABLE_SCHEM", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("TABLE_NAME", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("COLUMN_NAME", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_SHORT("DATA_TYPE", NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("TYPE_NAME", 20, NOT_NULL_FLAG),
+ MYODBC_FIELD_LONG("COLUMN_SIZE", 0),
+ MYODBC_FIELD_LONG("BUFFER_LENGTH", 0),
+ MYODBC_FIELD_SHORT("DECIMAL_DIGITS", 0),
+ MYODBC_FIELD_SHORT("NUM_PREC_RADIX", 0),
+ MYODBC_FIELD_SHORT("NULLABLE", NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("REMARKS", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("COLUMN_DEF", NAME_LEN, 0),
+ MYODBC_FIELD_SHORT("SQL_DATA_TYPE", NOT_NULL_FLAG),
+ MYODBC_FIELD_SHORT("SQL_DATETIME_SUB", 0),
+ MYODBC_FIELD_LONG("CHAR_OCTET_LENGTH", 0),
+ MYODBC_FIELD_LONG("ORDINAL_POSITION", NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("IS_NULLABLE", 3, 0),
};
const uint SQLCOLUMNS_FIELDS= array_elements(SQLCOLUMNS_values);
rows+= mysql_num_fields(table_res);
empty_set:
sizeof(SQLCOLUMNS_values),
SQLCOLUMNS_fields,
SQLCOLUMNS_FIELDS);
@@ -910,19 +910,19 @@
MYSQL_FIELD SQLSTAT_fields[]=
- {"TABLE_CAT", NullS,"MySQL_Stat",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TABLE_SCHEM", NullS,"MySQL_Stat",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TABLE_NAME", NullS,"MySQL_Stat",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"NON_UNIQUE", NullS,"MySQL_Stat",NullS,NullS,NullS,NullS,1,1, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_SHORT},
- {"INDEX_QUALIFIER", NullS,"MySQL_Stat",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"INDEX_NAME", NullS,"MySQL_Stat",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TYPE", NullS,"MySQL_Stat",NullS,NullS,NullS,NullS,1,1, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_SHORT},
- {"ORDINAL_POSITION", NullS,"MySQL_Stat",NullS,NullS,NullS,NullS,1,2, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_SHORT},
- {"COLUMN_NAME", NullS,"MySQL_Stat",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"ASC_OR_DESC", NullS,"MySQL_Stat",NullS,NullS,NullS,NullS,1,1, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"CARDINALITY", NullS,"MySQL_Stat",NullS,NullS,NullS,NullS,11,11, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_LONG},
- {"PAGES", NullS,"MySQL_Stat",NullS,NullS,NullS,NullS,9,9, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_LONG},
- {"FILTER_CONDITION", NullS,"MySQL_Stat",NullS,NullS,NullS,NullS,10,10, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
+ MYODBC_FIELD_STRING("TABLE_CAT", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("TABLE_SCHEM", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("TABLE_NAME", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_SHORT("NON_UNIQUE", 0),
+ MYODBC_FIELD_STRING("INDEX_QUALIFIER", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("INDEX_NAME", NAME_LEN, 0),
+ MYODBC_FIELD_SHORT("TYPE", NOT_NULL_FLAG),
+ MYODBC_FIELD_SHORT("ORDINAL_POSITION", 0),
+ MYODBC_FIELD_STRING("COLUMN_NAME", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("ASC_OR_DESC", 1, 0),
+ MYODBC_FIELD_SHORT("CARDINALITY", 0),
+ MYODBC_FIELD_SHORT("PAGES", 0),
+ MYODBC_FIELD_STRING("FILTER_CONDITION", 10, 0), };
const uint SQLSTAT_FIELDS= array_elements(SQLSTAT_fields);
stmt->order= SQLSTAT_order;
stmt->order_count= array_elements(SQLSTAT_order);
stmt->fix_fields= fix_fields_copy;
- stmt->array= (MYSQL_ROW) my_memdup((gptr) SQLSTAT_values,
+ stmt->array= (MYSQL_ROW) my_memdup((char *)SQLSTAT_values,
sizeof(SQLSTAT_values),MYF(0));
if (!stmt->array)
{
empty_set:
sizeof(SQLSTAT_values),
SQLSTAT_fields, SQLSTAT_FIELDS);
}
@@ -1108,13 +1108,13 @@
MYSQL_FIELD SQLTABLES_priv_fields[]=
- {"TABLE_CAT", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TABLE_SCHEM", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TABLE_NAME", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"GRANTOR", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"GRANTEE", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"PRIVILEGE", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"IS_GRANTABLE", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
+ MYODBC_FIELD_STRING("TABLE_CAT", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("TABLE_SCHEM", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("TABLE_NAME", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("GRANTOR", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("GRANTEE", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("PRIVILEGE", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("IS_GRANTABLE", NAME_LEN, 0),
};
const uint SQLTABLES_PRIV_FIELDS= array_elements(SQLTABLES_priv_values);
NULL,"",NULL,NULL,NULL,NULL,NULL,NULL };
-
- {"TABLE_CAT", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TABLE_SCHEM", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TABLE_NAME", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"COLUMN_NAME", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"GRANTOR", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"GRANTEE", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"PRIVILEGE", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"IS_GRANTABLE", NullS,"MySQL_Catalog",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
+ MYODBC_FIELD_STRING("TABLE_CAT", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("TABLE_SCHEM", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("TABLE_NAME", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("COLUMN_NAME", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("GRANTOR", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("GRANTEE", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("PRIVILEGE", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("IS_GRANTABLE", NAME_LEN, 0),
};
@@ -1349,14 +1348,14 @@ MYSQL_FIELD SQLSPECIALCOLUMNS_fields[]= {
- {"SCOPE", NullS,"MySQL_SpecialColumns",NullS,NullS,NullS,NullS,5,5, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_SHORT},
- {"COLUMN_NAME", NullS,"MySQL_SpecialColumns",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"DATA_TYPE", NullS,"MySQL_SpecialColumns",NullS,NullS,NullS,NullS,5,5, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_SHORT},
- {"TYPE_NAME", NullS,"MySQL_SpecialColumns",NullS,NullS,NullS,NullS,20,20, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"COLUMN_SIZE", NullS,"MySQL_SpecialColumns",NullS,NullS,NullS,NullS,7,7, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_LONG},
- {"BUFFER_LENGTH", NullS,"MySQL_SpecialColumns",NullS,NullS,NullS,NullS,7,7, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_LONG},
- {"DECIMAL_DIGITS",NullS,"MySQL_SpecialColumns",NullS,NullS,NullS,NullS,3,3, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_SHORT},
- {"PSEUDO_COLUMN", NullS,"MySQL_SpecialColumns",NullS,NullS,NullS,NullS,3,3, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_SHORT}
+ MYODBC_FIELD_SHORT("SCOPE", 0),
+ MYODBC_FIELD_STRING("COLUMN_NAME", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_SHORT("DATA_TYPE", NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("TYPE_NAME", 20, NOT_NULL_FLAG),
+ MYODBC_FIELD_LONG("COLUMN_SIZE", 0),
+ MYODBC_FIELD_LONG("BUFFER_LENGTH", 0),
+ MYODBC_FIELD_LONG("DECIMAL_DIGITS", 0),
+ MYODBC_FIELD_SHORT("PSEUDO_COLUMN", 0),
};
char *SQLSPECIALCOLUMNS_values[]= {
MYSQL_FIELD SQLPRIM_KEYS_fields[]=
- {"TABLE_CAT", NullS,"MySQL_Primary_keys",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TABLE_SCHEM", NullS,"MySQL_Primary_keys",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"TABLE_NAME", NullS,"MySQL_Primary_keys",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"COLUMN_NAME", NullS,"MySQL_Primary_keys",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"KEY_SEQ", NullS,"MySQL_Primary_keys",NullS,NullS,NullS,NullS,2,2, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_SHORT},
- {"PK_NAME", NullS,"MySQL_Primary_keys",NullS,NullS,NullS,NullS,128,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
+ MYODBC_FIELD_STRING("TABLE_CAT", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("TABLE_SCHEM", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("TABLE_NAME", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("COLUMN_NAME", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_SHORT("KEY_SEQ", NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("PK_NAME", 128, 0),
};
const uint SQLPRIM_KEYS_FIELDS= array_elements(SQLPRIM_KEYS_fields);
- {"PKTABLE_CAT", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"PKTABLE_SCHEM", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"PKTABLE_NAME", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"PKCOLUMN_NAME", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"FKTABLE_CAT", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,NAME_LEN,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"FKTABLE_SCHEM", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"FKTABLE_NAME", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"FKCOLUMN_NAME", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,NAME_LEN,NAME_LEN, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_VAR_STRING},
- {"KEY_SEQ", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,2,2, 0,0,0,0,0,0,0, NOT_NULL_FLAG,0,0,MYSQL_TYPE_SHORT},
- {"UPDATE_RULE", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,2,2, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_SHORT},
- {"DELETE_RULE", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,2,2, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_SHORT},
- {"FK_NAME", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,128,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"PK_NAME", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,128,0, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_VAR_STRING},
- {"DEFERRABILITY", NullS,"MySQL_Foreign_keys",NullS,NullS,NullS,NullS,2,2, 0,0,0,0,0,0,0, 0,0,0,MYSQL_TYPE_SHORT},
+ MYODBC_FIELD_STRING("PKTABLE_CAT", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("PKTABLE_SCHEM", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("PKTABLE_NAME", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("PKCOLUMN_NAME", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("FKTABLE_CAT", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("FKTABLE_SCHEM", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("FKTABLE_NAME", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_STRING("FKCOLUMN_NAME", NAME_LEN, NOT_NULL_FLAG),
+ MYODBC_FIELD_SHORT("KEY_SEQ", NOT_NULL_FLAG),
+ MYODBC_FIELD_SHORT("UPDATE_RULE", 0),
+ MYODBC_FIELD_SHORT("DELETE_RULE", 0),
+ MYODBC_FIELD_STRING("FK_NAME", NAME_LEN, 0),
+ MYODBC_FIELD_STRING("PK_NAME", NAME_LEN, 0),
+ MYODBC_FIELD_SHORT("DEFERRABILITY", 0),
};
const uint SQLFORE_KEYS_FIELDS= array_elements(SQLFORE_KEYS_fields);
} while ( (comment_token = strchr(comment_token,';')) );/* multi table ref */
}
- }
-
+ }
+
/* Copy only the elements that contain fk names */
- stmt->result_array= (MYSQL_ROW) my_memdup((gptr) tempdata,
- sizeof(char*)*SQLFORE_KEYS_FIELDS*row_count,
- MYF(0));
- my_free((gptr)tempdata, MYF(0));
+ stmt->result_array= (MYSQL_ROW)my_memdup((char *)tempdata,
+ sizeof(char *) *
+ SQLFORE_KEYS_FIELDS *
+ row_count,
+ MYF(0));
+ my_free((char *)tempdata, MYF(0));
if (!stmt->result_array)
{
set_mem_error(&stmt->dbc->mysql);
empty_set:
sizeof(SQLFORE_KEYS_values),
SQLFORE_KEYS_fields,
SQLFORE_KEYS_FIELDS);
Modified: branches/guffert/driver/cursor.c
if ( !(*to= (SQLCHAR*) insert_param(stmt->dbc,(char*) *to, ¶m)) )
/* Insert " AND ", where clause with multiple search */
dummy.SqlType= SQL_INTEGER;
dummy.CType= SQL_C_CHAR;
- dummy.buffer= (gptr) " AND ";
+ dummy.buffer= " AND ";
dummy.actual_len= &dummy_len;
if ( !(*to= (SQLCHAR*) insert_param(stmt->dbc, (char*) *to, &dummy)) )
@@ -521,7 +521,7 @@
if ( row_data && *row_data )
{
- param.buffer= (gptr) *row_data;
+ param.buffer= *row_data;
length= strlen(*row_data);
param.actual_len= &length;
} @@ -844,7 +844,7 @@
param.used= 1;
param.SqlType= get_sql_data_type(stmt, field, NULL);
param.CType= bind->fCType;
- param.buffer= (gptr) bind->rgbValue+irow*bind->cbValueMax;
+ param.buffer= bind->rgbValue+irow*bind->cbValueMax;
param.ValueMax= bind->cbValueMax;
/*
Check when SQL_LEN_DATA_AT_EXEC() macro was used instead of data length
@@ -1171,7 +1171,7 @@
param.SqlType= get_sql_data_type(stmt, field, NULL);
param.CType = bind->fCType;
- param.buffer= ((gptr)bind->rgbValue +
+ param.buffer= ((char *)bind->rgbValue +
binding_offset +
count * (element_size ?
element_size :
@@ -1462,7 +1462,7 @@
if (!stmt->cursor.name)
Modified: branches/guffert/driver/driver.h
Modified: branches/guffert/driver/execute.c
/*
If the original query was modified, we reset stmt->query so that the
Modified: branches/guffert/driver/handle.c
/* At this point, only MYSQL_RESET and SQL_DROP left out */
- x_free((gptr) stmt->query);
- x_free((gptr) stmt->orig_query);
+ x_free(stmt->query);
+ x_free(stmt->orig_query);
stmt->query= stmt->orig_query= 0;
stmt->param_count= 0;
@@ -469,8 +469,8 @@ odbc_reset_stmt_options(&stmt->stmt_options);
Modified: branches/guffert/driver/info.c
const uint SQL_GET_TYPE_INFO_FIELDS= array_elements(SQL_GET_TYPE_INFO_fields);
#define MYSQL_DATA_TYPES 53
if (fSqlType == SQL_ALL_TYPES)
+ SQL_GET_TYPE_INFO_values,
sizeof(SQL_GET_TYPE_INFO_values));
stmt->result->row_count= MYSQL_DATA_TYPES;
}
@@ -984,9 +959,9 @@
if (atoi(SQL_GET_TYPE_INFO_values[i][1]) == fSqlType ||
atoi(SQL_GET_TYPE_INFO_values[i][15]) == fSqlType)
{
- memcpy((gptr)&stmt->result_array[stmt->result->row_count++ *
- SQL_GET_TYPE_INFO_FIELDS],
- (gptr)&SQL_GET_TYPE_INFO_values[i][0],
+ memcpy(&stmt->result_array[stmt->result->row_count++ *
+ SQL_GET_TYPE_INFO_FIELDS],
+ &SQL_GET_TYPE_INFO_values[i][0],
sizeof(char *) * SQL_GET_TYPE_INFO_FIELDS);
}
}
Modified: branches/guffert/driver/myutil.h
+#define UTF8_CHARSET_NUMBER 33
int2str((val), (dst), (radix))
+#if MYSQL_VERSION_ID >= 50100
+typedef unsigned char * DYNAMIC_ELEMENT;
+#else
+typedef char * DYNAMIC_ELEMENT;
+#endif
+
+#if MYSQL_VERSION_ID >= 50100
+# define MYODBC_FIELD_STRING(name, len, flags) \
+ {(name), NullS, NullS, NullS, NullS, NullS, NullS, (len), 0, 0, 0, 0, 0, 0, \
+ 0, 0, (flags), 0, UTF8_CHARSET_NUMBER, MYSQL_TYPE_VAR_STRING, NULL}
+# define MYODBC_FIELD_SHORT(name, flags) \
+ {(name), NullS, NullS, NullS, NullS, NullS, NullS, 5, 5, 0, 0, 0, 0, 0, 0, \
+ 0, (flags), 0, 0, MYSQL_TYPE_SHORT, NULL}
+# define MYODBC_FIELD_LONG(name, flags) \
+ {(name), NullS, NullS, NullS, NullS, NullS, NullS, 11, 11, 0, 0, 0, 0, 0, 0, \
+ 0, (flags), 0, 0, MYSQL_TYPE_LONG, NULL}
+#elif MYSQL_VERSION_ID >= 40100
+# define MYODBC_FIELD_STRING(name, len, flags) \
+ {(name), NullS, NullS, NullS, NullS, NullS, NullS, (len), 0, 0, 0, 0, 0, 0, \
+ 0, 0, (flags), 0, UTF8_CHARSET_NUMBER, MYSQL_TYPE_VAR_STRING}
+# define MYODBC_FIELD_SHORT(name, flags) \
+ {(name), NullS, NullS, NullS, NullS, NullS, NullS, 5, 5, 0, 0, 0, 0, 0, 0, \
+ 0, (flags), 0, 0, MYSQL_TYPE_SHORT}
+# define MYODBC_FIELD_LONG(name, flags) \
+ {(name), NullS, NullS, NullS, NullS, NullS, NullS, 11, 11, 0, 0, 0, 0, 0, 0, \
+ 0, (flags), 0, 0, MYSQL_TYPE_LONG}
+#else
+# define MYODBC_FIELD_STRING(name, len, flags) \
+ {(name), NullS, NullS, NullS, NullS, (len), 0, (flags), 0, \
+ MYSQL_TYPE_VAR_STRING}
+# define MYODBC_FIELD_SHORT(name, flags) \
+ {(name), NullS, NullS, NullS, NullS, 5, 5, (flags), 0, MYSQL_TYPE_SHORT}
+# define MYODBC_FIELD_LONG(name, flags) \
+ {(name), NullS, NullS, NullS, NullS, 11, 11, (flags), 0, MYSQL_TYPE_LONG}
+#endif
+
/* Utility function prototypes that share among files */ Modified: branches/guffert/driver/options.c
else
{
@@ -406,7 +406,6 @@
switch (attrib) {
return set_handle_error(SQL_HANDLE_DBC, hdbc, MYERR_S1000,
"Unable to get current catalog", 0);
else
- *char_attr= dbc->database;
+ *char_attr= (SQLCHAR *)dbc->database;
break;
case SQL_ATTR_LOGIN_TIMEOUT:
case SQL_ATTR_ROW_ARRAY_SIZE:
case SQL_ROWSET_SIZE:
- options->rows_in_set= (SQLUINTEGER)ValuePtr;
+ options->rows_in_set= (SQLUINTEGER)(SQLULEN)ValuePtr;
break;
case SQL_ATTR_ROW_NUMBER:
Modified: branches/guffert/driver/prepare.c
Modified: branches/guffert/driver/results.c
pthread_mutex_lock(&stmt->dbc->lock);
- x_free((gptr) stmt->odbc_types);
if (!stmt->fake_result)
mysql_free_result(stmt->result);
else
- x_free((gptr)stmt->result);
+ x_free(stmt->result);
stmt->result= 0;
stmt->fake_result= 0;
stmt->odbc_types= 0;
Modified: branches/guffert/driver/utility.c
if ( length == 6 || length == 12 ) /* YYMMDD or YYMMDDHHMMSS */
{
- bmove_upp(to+2,to,length);
+ memmove(to+2, to, length);
if ( buff[0] <= '6' )
{
buff[0]='2';
@@ -1780,7 +1780,7 @@
my_bool reget_current_catalog(DBC FAR *dbc)
{
if ( odbc_stmt(dbc, "select database()") )
{
return 1;
*/
+ char *to, ulong to_length,
const char *from, ulong length)
{
const char *to_start= to; Modified: branches/guffert/test/my_catalog.c
-- MySQL Code Commits Mailing List For list archives: http://lists.mysql.com/commits To unsubscribe: http://lists.mysql.com/commits?unsub=lists@pantek.comReceived on Fri Aug 31 19:44:33 2007 This archive was generated by hypermail 2.1.8 : Sun Oct 07 2007 - 09:02:20 EDT |
||||||||||
|
|||||||||||