Functionality Added or Changed
Implemented
MySQL_DatabaseMetaData::getCrossReference().
Implemented
MySQL_DatabaseMetaData::getExportedKeys().
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.
Introduced ResultSet::getUInt() and
ResultSet::getUInt64().
Renamed ResultSet::getLong() to
ResultSet::getInt64().
resultset.h includes typdefs for Windows to
be able to use int64_t.
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).
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.
Re-added getTypeInfo() with information about
all types supported by MySQL and the
sql::DataType.
make package_source now packs with bzip2.
Implemented
MySQL_ConnectionMetaData::getProcedureColumns().
Implementation for
MySQL_DatabaseMetaData::getImportedKeys() for
MySQL versions before 5.1.16 using SHOW, and
above using INFORMATION_SCHEMA.
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::getColumnPrivileges().
Implemented
MySQL_Connection::setSessionVariable() for
setting variables like sql_mode.
Fixed
MySQL_DatabaseMetaData::getTablePrivileges().
Test cases were added in the first unit testing framework.
Implemented ResultSet::getBlob() which
returns std::stream.
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).
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).
Experimental support for STLPort. This feature may be removed
again at any time later without prior warning! Type
cmake -L for configuration
instructions.
Addition of test/unit/README with
instructions for writing bug and regression tests.
Major performance improvements due to new buffered
ResultSet implementation.
MySQL_Driver::getPatchVersion introduced.
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().
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.
Bugs Fixed
Fixed handling of numeric columns in
ResultSetMetaData::isCaseSensitive to return
false.
Corrected handling of unsigned server types. Now returning correct values.
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.
