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 UNSIGED
, 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 variables like 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 meta data 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. Now returning correct values.
Fixed handling of numeric columns in
ResultSetMetaData::isCaseSensitive
to return
false
.
User Comments
Add your own comment.