MySQL Connector/Java 8.0.7-dmr was released recently

New development milestone release of popular MySQL tool adds new features and fixes a lot of bugs 
17 July 2017   1679

World's most popular open source database..

Good news for all MySQL users, new Java\SQL connector development milestone release for the 8.0.x series available.

MySQL Connectors and other MySQL client tools and applications now synchronize the first digit of their version number with the (highest) MySQL server version they support. This change makes it easy and intuitive to decide which client version to use for which server version.

List of functionality changed or added: 

  • X DevAPI: There are changes to some methods related to the Result interface:

    • getLastDocumentId() and getLastDocumentIds() have been replaced with getDocumentId() and getDocumentIds(), which are put under a new AddResultinterface that extends Result.

    • A new getAutoIncrementValue() method is added to the new InsertResult interface that extends Result.

  • X DevAPI: It is no longer permitted to pass an empty search condition, such as the NULL value or an empty string, to the Collection.Modify() andCollection.Remove() methods.

  • X DevAPI: Connections using the X Protocol are now secure by default. Also, the xdevapi.ssl-enable connection option has been replaced by the xdevapi.ssl-modeoption, which has DISABLEDREQUIRED (default), VERIFY_CA, and VERIFY_IDENTITY as its permitted values; 

  • X DevAPI: Consolidated the BaseSessionNodeSession, and XSession interfaces into a single com.mysql.cj.api.xdevapi.Session interface. The following related changes were also made:

    • Renamed XSessionFactory to SessionFactory.

    • Consolidated the AbstractSessionNodeSessionImpl, and XSessionImpl classes into the com.mysql.cj.xdevapi.SessionImpl class.

    • Removed the Session.bindToDefaultShard() method and the VirtualNodeSession interface.

    • The mysqlx.getNodeSession() method has been renamed to mysqlx.getSession() and it now returns a Session object.

    • The DatabaseObject.getSession() method now returns a Session object (instead of the old Session interface).

  • To avoid using JDBC statements inside core Connector/J classes, the following changes have been implemented:

    • Created a new com.mysql.cj.api.Query interface, which is implemented by StatementImpl.

    • Replaced the com.mysql.cj.api.jdbc.interceptors.StatementInterceptor interface with the com.mysql.cj.api.interceptors.QueryInterceptorinterface.

    • Added a new method, PacketPayload preProcess(PacketPayload queryPacket), to QueryInterceptor.

    • Renamed the connection property statementInterceptors to queryInterceptors

  • Added Japanese collation for the utf8mb4 character set.

Bugs Fixed

  • X DevAPI: createView() failed with a NullPointerException when there were null inputs to it. This fix adds checks for nulls, and makes Connector/J throw the proper errors for them.

  • X DevAPI: createaTable() failed with a NullPointerException when there were null inputs to it. This fix adds checks for nulls, and makes Connector/J throw the proper errors for them.

  • X DevAPI: The connection properties enabledSSLCipherSuitesclientCertificateKeyStoreUrlclientCertificateKeyStoreType, andclientCertificateKeyStorePassword were ignored for connections using the X Protocol.

  • X DevAPI: Calling getNodeSession() with an URL string containing SSL parameters caused a CJCommunicationsException. This has been fixed by creating a byte buffer to handle SSL handshake data. (Notice that getNodeSession() has since been consolidated into getSession().)

  • X DevAPI: Concurrent asynchronous operations resulted in hangs, null pointer exceptions, or other unexpected exceptions. This has been fixed by correcting a number of problems with the SerializingBufferWriter and by limiting the number of buffers sent with a gathering write.

  • X DevAPI: When a thread failed to make a connection to the server using the X Protocol, the client application hung. A new connection property, xdevapi.asyncResponseTimeout (default value is 300s), now provides a duration beyond which the attempt to connect timeouts, and a proper error is then thrown. 

  • Connector/J failed a number of regression tests in the testsuite related to geographic information system (GIS) functions because of changes to GIS support by the MySQL server. The fix corrects the tests.

  • Attempts to connect to a server started with collation utf8mb4_de_pb_0900_ai_ci resulted in null pointer exceptions.

  • Configuration templates named by the connection property useConfigs were not recognized by Connector/J.

  • NullPointerException was returned when getDate()getTime(), or getTimestamp() was called with a null Calendar. This fix makes Connector/J throw anSQLException in the case.

  • An ArrayIndexOutOfBoundsException was thrown when a server-side prepared statement was used and there was a NULL in a BLOBTEXT, or JSON type column in the ResultSet.

Additional information can be found here and you can download the update at official website

What should we wait in MySQL 8.0?

Overview of upcoming "general" release of one of the most popular database
29 September 2017   2169

MySQL, one of the most popular databases in the world, has recently released the MySQL 8.0 RC.

What's new in MySQL 8.0? 

So, main improvements and new features are:

  • First-class support for Unicode 9.0, straight out of the box.
    MySQL 8.0 no longer uses latin1 as the default encoding, to discourage new users from choosing a troublesome legacy option. The recommended default character set for MySQL 8.0 is now utf8mb4, which is intended to be faster than the now-deprecated utf8mb3 character set and also to support more flexible collations and case sensitivity.
  • Window functions and recursive SQL syntax, for queries that previously weren’t possible or would have been difficult to write.
    MySQL 8.0 adds window functions via the standard OVER SQL keyword, in much the same way it is implemented in competing products like PostgreSQL.
  • Expanded support for native JSON data and document-store functionality.
    MySQL 8.0 expands JSON support with better performance, functions to allow extracting ranges from a JSON query (such as a “top N”-type request), and new aggregation functions that let MySQL-native structured data and semistructured JSON data be merged in a query.

It's worth noting that MySQL is jumping several versions in its numbering (from 5.5), due to the fact that 6.0 being nixed and 7.0 being reserved for the clustering version of MySQL.

MySQL 8.0 release date

As we know, MySQL’s release policy is “a new [general] release every 18-24 months.” Last major release (MySQL 5.7) was at October 21, 2015, so we should wait for 8.0 version around October 2017.

Other features in MySQL 8.0

Other interesting changes planned for MySQL 8.0 are:

  • More options for how to handle locked rows, via the SKIP LOCKED and NOWAIT keywords. SKIP LOCKED allows locked rows to be skipped during an operation; NOWAIT throws an error immediately on encountering a locked row.
  • MySQL can automatically scale to the total amount of memory available, to make the best possible use of virtual machine deployments.
  • Indexes can be manually excluded from the query optimizer via the “invisible index” feature. Indexes marked as invisible are kept up to date with changes to tables, but aren’t used to optimize queries. One suggested use for this is to nondestructively determine if a particular index needs to be kept or no