Since Connector/C is not able to retrieve
error strings for server error codes, the following
error codes were replaced:
- ER_NET_PACKET_TOO_LARFE by CR_NET_PACKET_TOO_LARGE
- ER_OUT_OF_RESOURCES by CR_OUT_OF_MEMORY
- ER_NET_WRITE_ERROR by CR_ERR_NET_WRITE (new constant)
- ER_NET_UNCOMPRESS_ERROR by CR_ERR_NET_UNCOMPRESS (new constant)
ZSTD compression is now supported for connections
to a MySQL Server 8.0.
Compression algorithms are supported via compression
plugins, which can be found in plugins/compress.
Setting max_allowed_packet in every ma_net_init() call may lead to
race conditions (Thanks to Alexander Sapin for reporting this issue).
Global variables max_allowed_packet_size and
net_buffer_size can be set via mysql_optionsv. If globally and not
per connection this should happen immeidately after library initialization.
Fixed possible memory leak in ma_net_real_write: When using compressed
protocol the buffer allocated for compression must be freed in case ma_pvio_write
fails. Kudos to Animesh Soni for reporing this bug.
Network roundtrip is avoided, but no other optimization done in this
commit. Like, possible to accumulate send 2 command packets in single
send(), and it is trivial to do, but ommited here on reasons of clarity
- changed plugin API to avoid crashes: Oracle/MariaDB changed
structure several times without updating interface version.
- ABI fixes: moved additional net items to net->extension (connection
handler and com_multi buffer)