forked from mysql/mysql-connector-cpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
596 lines (446 loc) · 25.5 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
/*
Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
The MySQL Connector/C++ is licensed under the terms of the GPLv2
<http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>, like most
MySQL Connectors. There are special exceptions to the terms and
conditions of the GPLv2 as it is applied to this software, see the
FLOSS License Exception
<http://www.mysql.com/about/legal/licensing/foss-exception.html>.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
GA 1.1.7 -
- Add JSON support
- Allow building without server flags (Bug#21391025)
- Correct relative() not seeking after changing position.(Bug#21152054)
GA 1.1.6 -
- C/C++ won't build against Boost-devel-1.41.0-25.EL6.I686 (Bug#20125824)
- Make install fail for out of source build (Bug#19447498)
- Segmentation fault in retrieval of value using getter methods when
defaultstatementresulttype=forward_only and row position is after last row.
(Bug#20085944)
- C/C++ should provide libmysqlclient and boost version macros with which
it is build. (Bug#75250)
- C++11 support and replace deprecated auto_ptr. (Bug#75251)
- wasNull() method call before fetching the data results in assert failure
(Bug#19938873)
- Memory leak if result set of prepared statement used (Bug#18135088/wl#7925)
- ResultSet::getString does not return fractional seconds from DATETIME(N)
columns (Bug#68523)
- make install/fast fails if static library is not built (Bug#52281)
- MySQL_ResultSet::getString() returns bad value for BIT data (Bug#66235)
GA 1.1.5 -
- DatabaseMetaData::getProcedures() returns syntax error for connection option
metadatauseinfoschema=false (Bug#19505421)
- DatabaseMetaData::getColumns() returns empty resultset when
metadataUseInfoSchema is true and for no schema. (Bug#19147897)
- ResultSetMetaData::getColumnName() returns display name instead of actual
column name. (Bug#19244736)
- ResultSetMetaData::getTables() not returning result for VIEW when
metadatauseinfoschema=false. (Bug#19505348)
- Version macros missing from installed headers file. (Bug#19553971)
- Getting multiple resultset from procedure using prepared statement gives
error (Bug#19147677).
- Connection losses are not detected while fetching resultset using next()
(Bug#18886278/69031).
- Remove boost variant from API (wl#7030)
- Make close() method or destructor of Connection object to always close
the connection with server (wl#7028)
- Added max_statement_timeout and other connect options (MYSQL_DEFAULT_AUTH,
MYSQL_PLUGIN_DIR, MYSQL_SET_CHARSET_DIR, MYSQL_READ_DEFAULT_FILE,
MYSQL_READ_DEFAULT_GROUP, MYSQL_OPT_CONNECT_ATTR_DELETE,
MYSQL_OPT_CONNECT_ATTR_RESET, MYSQL_OPT_LOCAL_INFILE) (Bug#19479950)
- Added missing sort order for DatabaseMetaData::getImportedKeys() and
DatabaseMetaData::getIndexInfo() for no_i_s case. (Bug#19505248)
- There is no reconnection function in Connector/C++ (Bug#14207722)
- WB sends unnecessary COM_PING operations. (Bug#17186530)
- Double free or corruption error due to global extern string variable localhost
referenced at more then one places (Bug#19910311)
- Assertion failure in getClientOption when the provided option is not set
(Bug#19938922)
- Memory leak while adding parameter OPT_CONNECT_ATTR_ADD to options list
(Bug#19938970)
- CMake picking up libmysqlclient from system path (Bug#19940663)
GA 1.1.4 -
- Both static and dynamic driver libraries are now linked statically against
libmysql library
- Cannot Connect error when using legacy authentication. (Bug#16970753/69492)
- Connector/C++ doesn't implement MYSQL_OPT_SSL_VERIFY_SERVER_CERT,
MYSQL_OPT_SSL_CRL, MYSQL_OPT_SSL_CRLPATH. Introduced connection options
"sslVerify"(boolean), "sslCRL" and "sslCRLPath"(string). (Bug#18461451)
- Methods returning driver version information are now parametrized, and those
parameters take their values from cmake config (Bug#14680878/66975)
- Added MYSQL_OPT_CONNECT_ATTR_ADD connection option accepting std::map
argument and calls mysql_options4(). (Bug#18803313)
- MySQL_ResultSetMetaData::getColumnTypeName() returns UNKNOWN for LONG_BLOB
fields. (Bug#18803414/72700)
- Missing collation info in the column metadata methods for a result.
(Bug#18803345/72698)
- Added connection option "rsaKey" to specify RSA public key path name
(wl#7972).
- Built against libmysql 5.6.
GA 1.1.3 - 2013-03-22
- Added boolean connection option OPT_ENABLE_CLEARTEXT_PLUGIN allowing to
enable cleartext libmysql plugin. That plugin is required for some
authentication methods, e.g. PAM. (Bug#16520952)
- getBestRowIdentifier() now considers unique not nullable indexes in case
when primary key does not exist. (Bug#16277170)
- False value of the metadataUseInfoSchema connection option had no effect
in database metadata object.
GA 1.1.2 - 2013-01-16
- Expired password support. Connection options
OPT_CAN_HANDLE_EXPIRED_PASSWORDS(bool, application can deal with expired
passwords), and preInit(string, commands to run prior to driver
initialization commands) have been introduced. (Bug#15936764/67325)
- postInit connection string has been introduced. Similar to preInit, but
commands are run after driver's initialization.
- Statement::executeUpdate can now execute multiple statements.
CLIENT_MULTI_STATEMENTS connection option still has to be selected.
getUpdateCount will return data for the last executed statement.
- ABI change - MySQL_Connection class object size changed. If you don't use
that class directly you shouldn't be affected by that.
- Built against libmysql 5.6.10
GA 1.1.1 - 2012-08-06
- DatabaseMetaData::getSQLKeywords() updated to match MySQL 5.5. Note
that C/C++, just like C/JDBC, returns the same list for every
MySQL database version. (Ulf)
- Added MySQL_Connection::getLastStatementInfo() which returns back the
value of the mysql_info() function of libmysql / Connector/C. (Andrey)
- Added new method ResultSetMetaData::isNumeric() and implemented it in
all classes that subclass from it. (Andrey)
- Fixed the bug causing compilation errors in Microsoft Visual Studio 2010 if
stdint.h was included. See http://bugs.mysql.com/bug.php?id=60307
- Fixed bug making statement that did not raise any warning to return
warnings from previously executed statement.
- Fixed stores(Lower|Mixed)Case(Quoted)Identifiers methods.
- Built against libmysql 5.5.27 enabling support of authentification plugins
and IPv6.
GA 1.1.0 - 2010-09-13
- Added Driver::threadInit() and Driver::threadEnd() methods. Every thread
of a threaded client must call Driver::threadInit() at the very start
of the thread before it does anything else with Connector/C++ and every
thread must call Driver::threadEnd() when it finishes. You can find an
example demonstrating the use in examples/pthreads.cpp. It is strongly
discouraged to share connections between threads. It is theoretically
possible, if you set certain undocumented mutexes, but it is not
supported at all. Use one connection per thread. Do not have two
threads using the same connection at the same time. Please
check the C API notes on threading on the MySQL manual. Connector/C++
wraps the C API. (Lawrin, Andrey, Ulf)
- Fixed ResultSetMetaData::getColumnType() to return sql::DataType::VARCHAR
even for multi-type character sets. (Fix from Andrey)
- Fixed ResultSetMetaData::getColumnDisplaySize() to return number
of characters instead of number of bytes. However, there are cases
when the MySQL server returns wrong or insufficient meta data, see also
http://bugs.mysql.com/bug.php?id=6399 . Application developers can rely
on getColumnDisplaySize() returning at least the number of required
characters. Application developers shall not expect the exact number
for a given result set. The driver cannot get any closer but
returning the maximum number for a given result set (Fix from Andrey)
- Changed FindMySQL.cm so it looks for mysqlclient in the ENV{MySQL_DIR}\lib,
as that is where it's located in (some) Connector/C distros. (Lawrin)
- Fixed bug in CmakeLists.txt - it didn't really use ENV{BOOST_ROOT}, boost wasn't
searched in the directory set in that environment variable. (Lawrin)
- Fixed http://bugs.mysql.com/bug.php?id=51562 : error messages did not get
reported properly if error occured after query execution and before fetching
data within the underlying C API call mysql_use|store_result. (Andrey)
- BIT fields are now correctly decoded (Workbench bug #36239). (Andrey)
- Connection::getClientOption(const sql::SQLString & optionName, void * optionValue)
now accepts the optionName values "metadataUseInfoSchema",
"defaultStatementResultType", "defaultPreparedStatementResultType",
"characterSetResults". In the previous version only "metadataUseInfoSchema"
was allowed. The same is true for Connection::setClientOption().
- Fixed Bug #45048 "prepared statements corrupt the heap". ResultBind is back in
the prepared statement, but shared with the result set. (Andrey)
- get_driver_instance() is only available in dynamic library builds, static builds
won't have this symbol. This is done, because someone might decided to load the
dll with LoadLibrary/dlopen and needs an entry point to start using the library
(some kind of a Driver Manager). For those, who don't use cmake for building
you need to define mysqlcppconn_EXPORTS if you are loading dynamically and want
to use that entry point. (Andrey)
- ABI change - added support for optional run-time dynamic loading of the MySQL Client Library.
This is useful if you want to re-distribute a certain client library with
the connector and make sure that it gets used. It also allows you to
use a different client library for every connection. As it is an advanced
feature it is not enabled by default. By default the MySQL Client Library
will be linked at compile time just as in every version before.
- Fixed bug in ResultSetMetaData for normal statements and prepared ones, getScale
and getPrecision did return wrong results. (Andrey)
- Fixed http://bugs.mysql.com/bug.php?id=45846 . Excluding dynamically generated
and platform specific header files source packages generated using cpack (Ulf).
- Connection map property OPT_RECONNECT is now of type boolean (was long long).
- We now check LDFLAGS, CXXFLAGS and CPPFLAGS from the environment for every binary
we generate. (Ulf, Kent)
- Fixed http://bugs.mysql.com/bug.php?id=45843: cmake error if configuring an out
of source build [when not calling cmake in the root directory]. (Ulf)
- Fixed http://bugs.mysql.com/bug.php?id=44931: missing includes when using GCC 4.4.
Note that GCC 4.4 is not yet in use for any official MySQL builds. (Ulf, Lawrin)
- Fixed a performance issue of Prepared Statements. Reading large result sets has
been slow - think O(n^2). Patch by Frank Schoenheit from the OpenOffice.org
Base team. (Ulf)
- Exchanged most use cases of std::auto_ptr with boost::scoped_ptr. Migrated from
own solution to boost::scoped_array. In addition, migrated from another own
solution to boost::shared_ptr/weak_ptr for guarding access around result sets.
(Andrey)
- API incompatible change: ConnectPropertyVal is no more a struct by a typedef
that uses boost::variant. This will break your build but is pretty easy to fix.
If you had code like
---
{
sql::ConnectPropertyVal tmp;
tmp.str.val=passwd.c_str();
tmp.str.len=passwd.length();
connection_properties["password"] = tmp;
}
---
Your new code you will like this:
---
connection_properties["password"] = sql::ConnectPropertyVal(passwd);
---
Which is simpler. (Andrey)
- Fixed a bug in PS, which in combination of preparing a stored procedures without
any parameters was leading to exception, which was a problem, and was leading
to another problem which manifested itself with double free. All similar code
snippets in the Connector were fixed. (Andrey)
- The driver makes use of some Boost components (http://www.boost.org).
You need to have Boost 1.34.0 or newer installed on your system in
order to compile the driver from source. Binary distributions have no
additional dependencies over 1.0.5.
- API change: parameter to setNextQuery in SQLWarning got const qualifier.
SQLWarning itself is now an interface with protected destructor.
GA 1.0.5 - 2009-04-20
- Changed the interface of sql::ConnectionMetaData, sql::ResultSetMetaData
and sql::ParameterMetaData to have a protected destructor. In this way the
client code doesn't need, and won't be able, to destruct the metadata
objects returned by the connector. The connector will handle their
destruction. This enables statements like :
connection->getMetaData->getSchema();
without the result of leaking memory because we lost the pointer returned
by getMetaData(). (Lawrin, Andrey)
- Large overhaul of the code to improve the memory management to not leak in
exceptional situations. Big improvement compared to Beta1. (Andrey)
- Fixed the interface of sql::Driver and sql::Connection so they accept the
options map by alias instead of by value. (Andrey)
- Changed the return type of sql::SQLException::getSQLState() from
std::string to const char * to be consistent with std::exception::what().
(Andrey)
- Implemented getResultSetType() and setResultSetType() for Statement. Used
are TYPE_FORWARD_ONLY, which means unbuffered result set and
TYPE_SCROLL_INSENSITIVE, which means buffered result set. (Andrey)
- Implemented getResultSetType() for PreparedStatement. The setter is not
implemented because currently PreparedStatement can't do refetching and
storing the result means the bind buffers will be correct. (Andrey)
- Added "defaultStatementResultType" to MySQL_Connection::setClientOption() as
an option. Also the method now returns `sql::Connection *`. (Andrey)
- Added Result::getType() and implemented it in the three result set classes.
(Andrey)
- Enabled tracing functionality when building with VC8 and up (VS2005 and up).
(Andrey)
- Added better support for named pipes, on Windows. Use pipe:// and add the
path to the pipe. Shared memory connections are currently not supported.
(Andrey)
- Fixed a bug in MySQL_Connection::setSessionVariable() which led to exception
being thrown. (Andrey)
Beta 1.0.4 - 2009-03-31
- Prepared support for upcoming Connector/C. (Georg)
- Added Windows installer. (Georg)
- Bumping up CMake minimum version requirement from 2.4.2 to 2.6.2.
We need the latest version for Windows. (Lawrin)
- Added "metadataUseInfoSchema" to connection propery map which allows you
to control the use of the INFORMATION_SCHEMA for meta data. (Andrey)
- Fixed a bug in all implementations of ResultSet::relative() which was giving
wrong return value although positioning was working correctly. (Andrey)
- Fixed a leak in MySQL_PreparedResultSet when the result was containing a BLOB
column. (Andrey)
- Implemented MySQL_ConnectionMetaData::supportsConvert(from, to). (Andrey)
- Introduced sql::DataType::YEAR to complement MySQL's YEAR type. (Andrey)
- Introduced PreparedStatement::getMetaData(). (Andrey)
- Introduced ResultSetMetaData::isZerofill(), which is not in the JDBC
specification. (Andrey)
- Fixed all implementations of ResultSet::isNull() to check whether the current
position is on a real row, not isBeforeFirst() nor isAfterLast(), like all
getXXX methods do. (Andrey)
- Implementation for MySQL_DatabaseMetaData::getProcedures() when
INFORMATION_SCHEMA is asked not to be used. (Andrey)
- Removed MySQL_DatabaseMetaData::getProcedureColumns() from the interface.
Until now it was returning always an empty result set. Full implementation
will be added at a later stage. (Andrey)
- Changed a bunch of methods of DatabaseMetaData()::getXXX, which returned `int`
to return `unsigned int` because it makes more sense. (Andrey)
Alpha 1.0.3 - 2009-03-03
- Added new tests at test/unit/classes. Those tests are mostly about
code coverage. Most of the actual functionality of the driver is tested
by the tests found at test/CJUnitPort. (Ulf)
- New data types added to the list returned by DatabaseMetaData::getTypeInfo();
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(). (Andrey)
- MySQL_Driver::getPatchVersion introducted. (Andrey)
- Major performance improvements due to new buffered resultset implementation
by Andrey. (Ulf)
- Addition of test/unit/README with instructions for writing bug/regression
tests. (Ulf)
- Experimental support for STLPort. This feature may be removed again at any
time later without prior warning! Check cmake -L for configuration
instructions. (Andrey)
- Fixed a bug in MySQL_PreparedResultSet::getString(). Returned string had real
data but the length was random. Now, the string is initialized with correct
length and thus is binary safe. (Andrey)
- Added properties-enabled (map of key->value) methods for connecting, which
add many connect options. (Andrey)
-- Driver::connect( map )
-- Connection::Connection( map )
- New BLOB implementation. Got rid of sql::Blob 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 one 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 own stream. Similar will be true for getBlob()
where we can just copy data, if buffered result set, or stream, if we implement
it. (Andrey)
- Implemented ResultSet::getBlob() which returns std::stream. (Andrey)
- Fixed MySQL_DatabaseMetaData::getTablePrivileges() to work correctly. Test cases
added in the first unit testing framework. (Andrey)
- Implemented MySQL_Connection::setSessionVariable() for setting variables like
sql_mode. (Andrey)
- Implemented MySQL_DatabaseMetaData::getColumnPrivileges(). (Andrey)
- cppconn/datatype.h changed and used again. Reimplemented the type subsystem to
be more usable - more types for binary and non-binary strings. (Andrey)
- Implementation for MySQL_DatabaseMetaData::getImportedKeys() for
MySQL versions before 5.1.16 using SHOW, and above using INFORMATION_SCHEMA.
(Andrey)
- Implemented MySQL_ConnectionMetaData::getProcedureColumns(). (Andrey)
- make package_source packs now with bzip2. (Andrey)
- Re-added getTypeInfo() with information about all types supported by MySQL and
the sql::DataType. (Andrey)
- Exchanged the implementation of MySQL_ConstructedResultSet to use more efficient
non O(n) but O(1) access method. This should improve the speed with which
the metadata result sets are used. Also, there is less copy during the
construction of the result set, which means that all result sets returned from
the metadata functions will be faster. (Andrey)
- Introduced, internally, sql::mysql::MyVal which has implicit constructors used
in mysql_metadata.cpp to create result sets with more native data instead of
always string (varchar). (Andrey)
- Renamed ResultSet::getLong() to ResultSet::getInt64(). resultset.h includes
typdefs for Windows to be able to use int64_t. (Andrey)
- Introduced ResultSet::getUInt() and ResultSet::getUInt64(). (Andrey)
- Corrected handling of unsigned server types. Now returning correct values.
(Andrey)
- Fixed handling of numeric columns in ResultSetMetaData::isCaseSensitive to
return false. (Andrey)
- Better implementation for ResultSetMetaData::isReadOnly. Values generated
from views are read-only. Seems that these generated values don't have `db`
in MYSQL_FIELD set, while all normal columns do have. (Andrey)
- Implemented MySQL_DatabaseMetaData::getExportedKeys(). (Andrey)
- Implemented MySQL_DatabaseMetaData::getCrossReference(). (Andrey)
Alpha 1.0.2 - 2008-12-19
- Adding test/unit as a basis for general unit tests based on the new
test framework, see test/unit/example for basic usage examples (Ulf)
- Fixed MySQL_PreparedStatement::setBlob() to really work. In the tests
there is a simple example of a class implementing sql::Blob. (Andrey)
- Addition of a new unit test framework for JDBC compliance and
regression testing. (Lawrin)
- Implemented MySQL_ResultSetMetaData::getPrecision() and
MySQL_Prepared_ResultSetMetaData::getPrecision(),
updating example. (Andrey)
- Fixing bug in FLOAT handling. (Andrey)
- Fixing bug in getString():
getString() is binary safe now (Andrey),
new example. (Ulf)
- Fixing bugs in MySQL_PreparedStatements:
setBigInt() and setDatetime() have decremented the internal column
index before forwarding the request. This resulted in double-decrement
and wrong internal column index. Typical error message:
setString() ... invalid "parameterIndex" (Ulf)
- Adding PHP script examples/cpp_trace_analyzer.php to filter the
output of the debug trace. Please see the inline comments for documentation.
This script is unsupported! We do no promise to maintain it. (Ulf)
- Fixed bugs in MySQL_DatabaseMetaData :
All supportsCatalogXXXXX methods were returning `true` and
all supportSchemaXXXX methods false, which is not as it should be.
Now it is reversed, to be consistent with the rest. (Andrey)
- Implemented MySQL_PreparedStatement::clearParameters(). (Andrey)
- Fixed a bug in MySQL_ConnectionMetaData::getColumns() which was
performing a cartesian product of the columns in the table times
the columns matching columnNamePattern. example/connection_meta_schemaobj.cpp
extended to cover the function. (Andrey)
- Fixed lame bug in MySQL_ConnectionMetaData::getIndexInfo() which
did not work because the schema name wasn't included in the query sent
to the server. (Andrey)
- Implemented MySQL_PreparedStatement::setNull(). (Andrey)
- Reverted implementation of MySQL_DatabaseMetaData::getTypeInfo().
Now unimplemented. In addition, removed cppconn/datatype.h for now
till we havea proper implementation of the types.
- DATE, DATETIME and TIME are now being handled when calling
MySQL_PreparedResultSet::
-- getString()
-- getDouble()
-- getInt()
-- getLong()
-- getBoolean()
- Fixed MySQL_PreparedStatementResultSet::getDouble() to return proper
value when the underlying type is MYSQL_TYPE_FLOAT. (Andrey)
- Changed ResultSetMetaData::
-- getColumnDisplaySize()
-- getPrecision()
-- getScale()
to return unsigned int instead of signed int. (Andrey)
- Implemented getScale(), getPrecision() and getColumnDisplaySize() for
MySQL_ResultSetMetaData and MySQL_Prepared_ResultSetMetaData. (Andrey)
Alpha 1.0.1 - 2008-12-01
- New directory layout
- MySQL Workbench 5.1 using Connector/C++ for its database connectivity.
- Addition of Connector/J tests converted
- Changing sql::DbcException to implement the interface of JDBC's SQLException.
And renamed it to sql::SQLException.
- Renamed sql::DbcInvalidArgument to sql::InvalidArgumentException
- Renamed sql::DbcMethodNotImplemented to sql::MethodNotImplementedException
- All tests changed to create TAP compliant output
- Introduction of experimental CPack support, see make help
- Metadata: switching to column names "TABLE_CAT" (was: TABLE_CATALOG) and
"TABLE_SCHEM" (was: TABLE_SCHEMA) for JDBC compliance
- ConnectionMetaData::getImportedKeys():
PKTABLE_CATALOG -> PKTABLE_CAT, PKTABLE_SCHEMA -> PKTABLE_SCHEM,
FKTABLE_CATALOG -> FKTABLE_CAT, FKTABLE_SCHEMA -> FKTABLE_SCHEM
- ConnectionMetaData::getPrimaryKeys():
COLUMN -> COLUMN_NAME, SEQUENCE -> KEY_SEQ, INDEX_NAME -> PK_NAME
- ConnectionMetaData::getProcedures:
PROCEDURE_SCHEMA -> PROCEDURE_SCHEM
- ConnectionMetaData::getTables:
TABLE_COMMENT -> REMARKS
- All examples can be given optional connection parameters on the command
line, for example
`examples/connect tcp://host:port user pass database`
or
`examples/connect unix:///path/to/mysql.sock user pass database`
- Adding experimental GCov support, cmake -DMYSQLCPPCONN_GCOV_ENABLE:BOOL=1
- ConnectionMetaData::getCatalogTerm() returns n/a, there is no counterpart
to catalog in Connector/C++
- Addition of ConnectionMetaData::getSchemas() and Connection::setSchema().
None of them is in the JDBC standard
- Driver Manager removed
- `(n)make install` works. You can change the default installation path.
Read carefully the messages after executing cmake. Installed are the static
and the dynamic version of the library, libmysqlcppconn as well as the
generic interface cppconn + 3 MySQL specific headers
-- mysql_driver.h (if you want to get your connections from the driver
instead of instantiating a MySQL_Connection object. This makes your code
pretty portable against the common interface)
-- mysql_connection.h - If you intend to link directly to the MySQL_Connection
class and use its specifics not found in sql::Connection
However, you can make your application fully abstract by not using the two
headers above but the generic headers.
- sql::mysql::MySQL_SQLException is gone. There is no distinction between
server and client (= Connector) caused errors based on the type of the
exception. However, you can still check the error code to figure out the
reason.
Preview 1.0.0 - 2008-08-05
- First public release