WL#2514: MySQL client library (libmysql) TODO

Affects: Server-7.1   —   Status: Un-Assigned

Since any change to MySQL client library raises the issue of compatibility,
this WL entry is designed to aggregate all proposed improvements to the 
library, so that we can perform them in one step. Some of the items below may 
be finally made redundant by others.

- add option MYSQL_OPT_RECONNECT to mysql_options.
  This option allows setting of mysql->reconnect from the client API

- have an API for getting and setting global options (max_allowed_packet, etc) 
  and connection options (reconnect, etc) with naming scheme that is in
  line with mysql_stmt_attr_{get,set}: e.g. mysql_attr_{get,set},
  mysql_options_{get,set} (better names are welcome). Currently
  global options are partially available through mysql_get_parameters().

- through options API expose connection attributes to the user: user,
  password, host, database, etc. These attributes are already stored
  in the connection structure (MYSQL).

- Make a version of the mysql_reconnect() call public.
  (without check for mysql->reconnect)

- Change structure of MYSQL, mysql_options etc to ensure that the public 
members and structure size used in client programs will never change again.
(This will solve the problems we now have with shared libraries that are not 
compatible over versions)

- update the client side when one changes the current database, a server
 character set,or other global server-side environment affecting the client.
 This should be made by extending the protocol to support 'tagged' information, 
 so that the server updates the client through the tags.