There are certain situations where MySQL will return incorrect metadata about one or more columns. More specifically, the server will sometimes report that a column is binary when it is not and vice versa. In these situations, it becomes practically impossible for the connector to be able to correctly identify the correct metadat.
Some examples of situations that may return incorrect metadata are:
Execution of SHOW PROCESSLIST.
Some of the columns will be returned as binary even though
they only hold string data.
When a temp table is used to process a resultset, some columns may be returned with incorrect binary flags.
Some server functions such DATE_FORMAT will
incorrectly return the column as binary.
With the availability of BINARY and
VARBINARY data types, it is important that we
respect the metadata returned by the sever. However, we are aware
that some existing applications may break with this change, so we
are creating a connection string option to enable or disable it.
By default, Connector/Net 5.1 respects the binary flags returned
by the server. You might need to make small changes to your
application to accommodate this change.
In the event that the changes required to your application would
be too large, you can add 'respect binary flags=false'
to your connection string. This causes the connector to use the
prior behavior. In a nutshell, that behavior was that any column
that is marked as string, regardless of binary flags, will be
returned as string. Only columns that are specifically marked as a
BLOB will be returned as
BLOB.

User Comments
Add your own comment.