Documentation Home
MySQL Connector/C++ Release Notes
Related Documentation Download these Release Notes
PDF (US Ltr) - 406.4Kb
PDF (A4) - 406.3Kb

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

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

Functionality Added or Changed

  • 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.

  • 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().

  • MySQL_Driver::getPatchVersion introduced.

  • Major performance improvements due to new buffered ResultSet implementation.

  • 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.

  • 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).

  • 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).

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

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

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

  • Implemented MySQL_DatabaseMetaData::getColumnPrivileges().

  • 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.

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

  • Implemented MySQL_ConnectionMetaData::getProcedureColumns().

  • make package_source now packs with bzip2.

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

  • 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.

  • 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).

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

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

  • 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.

  • Implemented MySQL_DatabaseMetaData::getExportedKeys().

  • Implemented MySQL_DatabaseMetaData::getCrossReference().

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.

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

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