MySQL Connector/C++ Release Notes  /  Changes in MySQL Connector/C++ 1.0  /  Changes in MySQL Connector/C++ 1.0.3 (2009-03-02)

Changes in MySQL Connector/C++ 1.0.3 (2009-03-02)

Functionality Added or Changed

  • Re-added getTypeInfo() with information about all types supported by MySQL and the sql::DataType.

  • make package_source now packs with bzip2.

  • Implemented ResultSet::getBlob() which returns std::stream.

  • Fixed MySQL_DatabaseMetaData::getTablePrivileges(). Test cases were added in the first unit testing framework.

  • Added new tests in test/unit/classes. Those tests are mostly about code coverage. Most of the actual functionality of the driver is tested by the tests found in test/CJUnitPort.

  • Addition of test/unit/README with instructions for writing bug and regression tests.

  • Experimental support for STLPort. This feature may be removed again at any time later without prior warning! Type cmake -L for configuration instructions.

  • Renamed ResultSet::getLong() to ResultSet::getInt64(). resultset.h includes typdefs for Windows to be able to use int64_t.

  • Added properties enabled methods for connecting, which add many connect options. This uses a dictionary (map) of key value pairs. Methods added are Driver::connect(map), and Connection::Connection(map).

  • Implemented MySQL_DatabaseMetaData::getColumnPrivileges().

  • Implementation for MySQL_DatabaseMetaData::getImportedKeys() for MySQL versions before 5.1.16 using SHOW, and above using INFORMATION_SCHEMA.

  • Implemented MySQL_DatabaseMetaData::getCrossReference().

  • Major performance improvements due to new buffered ResultSet implementation.

  • Implemented MySQL_Connection::setSessionVariable() for setting system variables such as sql_mode.

  • Introduced, internally, sql::mysql::MyVal which has implicit constructors. Used in mysql_metadata.cpp to create result sets with native data instead of always string (varchar).

  • Introduced ResultSet::getUInt() and ResultSet::getUInt64().

  • New data types added to the list returned by DatabaseMetaData::getTypeInfo() are FLOAT UNSIGNED, DECIMAL UNSIGNED, DOUBLE UNSIGNED. Those tests may not be in the JDBC specification. However, due to the change you should be able to look up every type and type name returned by, for example, ResultSetMetaData::getColumnTypeName().

  • Implemented MySQL_ConnectionMetaData::getProcedureColumns().

  • New BLOB implementation. sql::Blob was removed in favor of std::istream. C++'s IOStream library is very powerful, similar to PHP's streams. It makes no sense to reinvent the wheel. For example, you can pass a std::istringstream object to setBlob() if the data is in memory, or just open a file std::fstream and let it stream to the DB, or write its own stream. This is also true for getBlob() where you can just copy data (if a buffered result set), or stream data (if implemented).

  • Changed the implementation of MySQL_ConstructedResultSet to use the more efficient O(1) access method. This should improve the speed with which the metadata result sets are used. Also, there is less copying during the construction of the result set, which means that all result sets returned from the metadata functions will be faster.

  • MySQL_Driver::getPatchVersion introduced.

  • Improved the implementation for ResultSetMetaData::isReadOnly(). Values generated from views are read only. These generated values don't have db in MYSQL_FIELD set, while all normal columns do have.

  • cppconn/datatype.h has changed and is now used again. Reimplemented the type subsystem to be more usable - more types for binary and nonbinary strings.

  • Implemented MySQL_DatabaseMetaData::getExportedKeys().

Bugs Fixed

  • Bug fixed in MySQL_PreparedResultSet::getString(). Returned string that had real data but the length was random. Now, the string is initialized with the correct length and thus is binary safe.

  • Fixed handling of numeric columns in ResultSetMetaData::isCaseSensitive to return false.

  • Corrected handling of unsigned server types to return correct values.

Download these Release Notes
PDF (US Ltr) - 75.0Kb
PDF (A4) - 74.2Kb
EPUB - 26.2Kb