MySQL Connector/ODBC Release Notes  /  Changes in MySQL Connector/ODBC Version 5.1  /  Changes in MySQL Connector/ODBC 5.1.7 (2010-08-24)

Changes in MySQL Connector/ODBC 5.1.7 (2010-08-24)

Functionality Added or Changed

  • Connector/ODBC has been changed to support the CLIENT_INTERACTIVE flag. (Bug #48603)

Bugs Fixed

  • SQLColAttribute(SQL_DESC_PRECISION...) function returned incorrect results for type identifiers that have a negative value:

    #define SQL_LONGVARCHAR       (-1) returned 4294967295
    #define SQL_BINARY            (-2) returned 4294967294
    #define SQL_VARBINARY         (-3) returned 4294967293
    #define SQL_LONGVARBINARY     (-4) returned 4294967292
    #define SQL_BIGINT            (-5) returned 4294967291
    #define SQL_TINYINT           (-6) returned 4294967290
    #define SQL_BIT               (-7) returned 4294967289

    They were returned as 32-bit unsigned integer values. This only happened on 64-bit Linux. (Bug #55024)

  • SQLColAttribute for SQL_DESC_OCTET_LENGTH returned length including terminating null byte. It should not have included the null byte. (Bug #54206)

  • The SQLColumns function returned the incorrect transfer octet length into the column BUFFER_LENGTH for DECIMAL type. (Bug #53235)

  • SQLForeignKeys() did not return the correct information. The list of foreign keys in other tables should not have included foreign keys that point to unique constraints in the specified table. (Bug #51422)

  • When executing the SQLProcedureColumns() ODBC function, the driver reported the following error:

    MySQL server does not provide the requested information

    (Bug #50400)

  • In contrast to all other ODBC catalog functions SQLTablePrivileges required the user to have SELECT privilege on MySQL schemata, otherwise the function returned with an error:

    SQL Error. Native Code: 1142, SQLState: HY000, Return Code: -1
    [MySQL][ODBC 5.1 Driver][mysqld-5.0.67-community-nt]SELECT command denied to user
    'repadmin'@'localhost' for table 'tables_priv'
    [Error][SQL Error]Error executing SQLTablePrivileges for object cat: myrep, object Name:
    xxxxxxxxxx

    (Bug #50195)

  • Connector/ODBC manually added a LIMIT clause to the end of certain SQL statements, causing errors for statements that contained code that should be positioned after the LIMIT clause. (Bug #49726)

  • If NO_BACKSLASH_ESCAPES mode was used on a server, escaping binary data led to server query parsing errors. (Bug #49029)

  • Bulk upload operations did not work for queries that used parameters. (Bug #48310)

  • Retrieval of the current catalog at the moment when a connection was not ready, such as when the connection had been broken or when not all pending results had been processed, resulted in the application crashing. (Bug #46910)

  • Describing a view or table caused SQLPrepare to prefetch table data. For large tables this created an intolerable performance hit. (Bug #46411)

  • If an application was invoked by the root user, SQLDriverConnect() was not able to use the username and password in the connection string to connect to the database. (Bug #45378)

  • Calling SQLColAttribute on a date column did not set SQL_DESC_DATETIME_INTERVAL_CODE. SQLColAttribute returned SQL_SUCCESS but the integer passed in was not set to SQL_CODE_DATE. (Bug #44576)

  • Conversions for many types were missing from the file driver/info.c. (Bug #43855)

  • The SQLTables() function required approximately two to four minutes to return the list of 400 tables in a database. The SHOW TABLE STATUS query used by SQLTables() was extremely slow for InnoDB tables with a large number of rows because the query was calculating the approximate number of rows in each table. Further, the results could not be cached due to non-deterministic nature of the result set (the row count was re-calculated every time), impacting performance further. (Bug #43664)

  • Executing SQLForeignKeys to get imported foreign keys for tables took an excessively long time. For example, getting imported foreign keys for 252 tables to determine parent/child dependencies took about 3 minutes and 14 seconds for the 5.1.5 driver, whereas it took 3 seconds for the 3.5x.x driver. (Bug #39562)

  • SQLDescribeCol returned incorrect column definitions for SQLTables result. (Bug #37621)

  • When opening ADO.Recordset from Microsoft Access 2003, a run-time error occurred:

    ErrNo: -2147467259 ErrMessage: Data provider or other service returned an E_FAIL status.

    (Bug #36996)

  • SQLPrimaryKeysW returned mangled strings for table name, column name and primary key name. (Bug #36441)

  • On Windows, the SOCKET parameter to the DSN was used as the named pipe name to connect to. This was not exposed in the Windows setup GUI. (Bug #34477)

  • Connector/ODBC returned a value of zero for a column with a nonzero value. This happened when the column had a data type of BIT, and any numeric type was used in SQLBindCol. (Bug #32821)

  • Option for handling bad dates was not available in the GUI. (Bug #30539)