Changeset: dc9fc070e99b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dc9fc070e99b
Modified Files:
        clients/odbc/driver/SQLColAttribute.c
Branch: Jan2014
Log Message:

The NumericAttributePtr argument of SQLColAttribute is a pointer to SQLLEN.
Some instances of filling in the value used it as a pointer to int.
This fixes bug 3455.


diffs (105 lines):

diff --git a/clients/odbc/driver/SQLColAttribute.c 
b/clients/odbc/driver/SQLColAttribute.c
--- a/clients/odbc/driver/SQLColAttribute.c
+++ b/clients/odbc/driver/SQLColAttribute.c
@@ -88,7 +88,7 @@ SQLColAttribute_(ODBCStmt *stmt,
        switch (FieldIdentifier) {
        case SQL_DESC_AUTO_UNIQUE_VALUE:        /* SQL_COLUMN_AUTO_INCREMENT */
                if (NumericAttributePtr)
-                       *(int *) NumericAttributePtr = 
rec->sql_desc_auto_unique_value;
+                       *(SQLLEN *) NumericAttributePtr = 
rec->sql_desc_auto_unique_value;
                break;
        case SQL_DESC_BASE_COLUMN_NAME:
                copyString(rec->sql_desc_base_column_name,
@@ -106,7 +106,7 @@ SQLColAttribute_(ODBCStmt *stmt,
                break;
        case SQL_DESC_CASE_SENSITIVE:   /* SQL_COLUMN_CASE_SENSITIVE */
                if (NumericAttributePtr)
-                       *(int *) NumericAttributePtr = 
rec->sql_desc_case_sensitive;
+                       *(SQLLEN *) NumericAttributePtr = 
rec->sql_desc_case_sensitive;
                break;
        case SQL_DESC_CATALOG_NAME:     /* SQL_COLUMN_QUALIFIER_NAME */
                copyString(rec->sql_desc_catalog_name,
@@ -117,7 +117,7 @@ SQLColAttribute_(ODBCStmt *stmt,
                break;
        case SQL_DESC_CONCISE_TYPE:     /* SQL_COLUMN_TYPE */
                if (NumericAttributePtr)
-                       *(int *) NumericAttributePtr = 
rec->sql_desc_concise_type;
+                       *(SQLLEN *) NumericAttributePtr = 
rec->sql_desc_concise_type;
                break;
        case SQL_DESC_COUNT:
                if (NumericAttributePtr)
@@ -129,7 +129,7 @@ SQLColAttribute_(ODBCStmt *stmt,
                break;
        case SQL_DESC_FIXED_PREC_SCALE: /* SQL_COLUMN_MONEY */
                if (NumericAttributePtr)
-                       *(int *) NumericAttributePtr = 
rec->sql_desc_fixed_prec_scale;
+                       *(SQLLEN *) NumericAttributePtr = 
rec->sql_desc_fixed_prec_scale;
                break;
        case SQL_DESC_LABEL:    /* SQL_COLUMN_LABEL */
                copyString(rec->sql_desc_label,
@@ -169,11 +169,11 @@ SQLColAttribute_(ODBCStmt *stmt,
                break;
        case SQL_DESC_NULLABLE:
                if (NumericAttributePtr)
-                       *(int *) NumericAttributePtr = rec->sql_desc_nullable;
+                       *(SQLLEN *) NumericAttributePtr = 
rec->sql_desc_nullable;
                break;
        case SQL_DESC_NUM_PREC_RADIX:
                if (NumericAttributePtr)
-                       *(int *) NumericAttributePtr = 
rec->sql_desc_num_prec_radix;
+                       *(SQLLEN *) NumericAttributePtr = 
rec->sql_desc_num_prec_radix;
                break;
        case SQL_DESC_OCTET_LENGTH:
                if (NumericAttributePtr)
@@ -182,12 +182,12 @@ SQLColAttribute_(ODBCStmt *stmt,
        case SQL_COLUMN_PRECISION:
        case SQL_DESC_PRECISION:
                if (NumericAttributePtr)
-                       *(int *) NumericAttributePtr = rec->sql_desc_precision;
+                       *(SQLLEN *) NumericAttributePtr = 
rec->sql_desc_precision;
                break;
        case SQL_COLUMN_SCALE:
        case SQL_DESC_SCALE:
                if (NumericAttributePtr)
-                       *(int *) NumericAttributePtr = rec->sql_desc_scale;
+                       *(SQLLEN *) NumericAttributePtr = rec->sql_desc_scale;
                break;
        case SQL_DESC_SCHEMA_NAME:      /* SQL_COLUMN_OWNER_NAME */
                copyString(rec->sql_desc_schema_name,
@@ -198,7 +198,7 @@ SQLColAttribute_(ODBCStmt *stmt,
                break;
        case SQL_DESC_SEARCHABLE:       /* SQL_COLUMN_SEARCHABLE */
                if (NumericAttributePtr)
-                       *(int *) NumericAttributePtr = rec->sql_desc_searchable;
+                       *(SQLLEN *) NumericAttributePtr = 
rec->sql_desc_searchable;
                break;
        case SQL_DESC_TABLE_NAME:       /* SQL_COLUMN_TABLE_NAME */
                copyString(rec->sql_desc_table_name,
@@ -209,7 +209,7 @@ SQLColAttribute_(ODBCStmt *stmt,
                break;
        case SQL_DESC_TYPE:
                if (NumericAttributePtr)
-                       *(int *) NumericAttributePtr = rec->sql_desc_type;
+                       *(SQLLEN *) NumericAttributePtr = rec->sql_desc_type;
                break;
        case SQL_DESC_TYPE_NAME:        /* SQL_COLUMN_TYPE_NAME */
                copyString(rec->sql_desc_type_name,
@@ -220,15 +220,15 @@ SQLColAttribute_(ODBCStmt *stmt,
                break;
        case SQL_DESC_UNNAMED:
                if (NumericAttributePtr)
-                       *(int *) NumericAttributePtr = rec->sql_desc_unnamed;
+                       *(SQLLEN *) NumericAttributePtr = rec->sql_desc_unnamed;
                break;
        case SQL_DESC_UNSIGNED: /* SQL_COLUMN_UNSIGNED */
                if (NumericAttributePtr)
-                       *(int *) NumericAttributePtr = rec->sql_desc_unsigned;
+                       *(SQLLEN *) NumericAttributePtr = 
rec->sql_desc_unsigned;
                break;
        case SQL_DESC_UPDATABLE:        /* SQL_COLUMN_UPDATABLE */
                if (NumericAttributePtr)
-                       *(int *) NumericAttributePtr = rec->sql_desc_updatable;
+                       *(SQLLEN *) NumericAttributePtr = 
rec->sql_desc_updatable;
                break;
        default:
                /* Invalid descriptor field identifier */
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to