You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
5.1 KiB

  1. ## HEAD
  2. Changes:
  3. - Go 1.1 is no longer supported
  4. - Use decimals fields in MySQL to format time types (#249)
  5. - Buffer optimizations (#269)
  6. - TLS ServerName defaults to the host (#283)
  7. - Refactoring (#400, #410, #437)
  8. - Adjusted documentation for second generation CloudSQL (#485)
  9. New Features:
  10. - Enable microsecond resolution on TIME, DATETIME and TIMESTAMP (#249)
  11. - Support for returning table alias on Columns() (#289, #359, #382)
  12. - Placeholder interpolation, can be actived with the DSN parameter `interpolateParams=true` (#309, #318, #490)
  13. - Support for uint64 parameters with high bit set (#332, #345)
  14. - Cleartext authentication plugin support (#327)
  15. - Exported ParseDSN function and the Config struct (#403, #419, #429)
  16. - Read / Write timeouts (#401)
  17. - Support for JSON field type (#414)
  18. - Support for multi-statements and multi-results (#411, #431)
  19. - DSN parameter to set the driver-side max_allowed_packet value manually (#489)
  20. Bugfixes:
  21. - Fixed handling of queries without columns and rows (#255)
  22. - Fixed a panic when SetKeepAlive() failed (#298)
  23. - Handle ERR packets while reading rows (#321)
  24. - Fixed reading NULL length-encoded integers in MySQL 5.6+ (#349)
  25. - Fixed absolute paths support in LOAD LOCAL DATA INFILE (#356)
  26. - Actually zero out bytes in handshake response (#378)
  27. - Fixed race condition in registering LOAD DATA INFILE handler (#383)
  28. - Fixed tests with MySQL 5.7.9+ (#380)
  29. - QueryUnescape TLS config names (#397)
  30. - Fixed "broken pipe" error by writing to closed socket (#390)
  31. - Fixed LOAD LOCAL DATA INFILE buffering (#424)
  32. - Fixed parsing of floats into float64 when placeholders are used (#434)
  33. - Fixed DSN tests with Go 1.7+ (#459)
  34. - Handle ERR packets while waiting for EOF (#473)
  35. ## Version 1.2 (2014-06-03)
  36. Changes:
  37. - We switched back to a "rolling release". `go get` installs the current master branch again
  38. - Version v1 of the driver will not be maintained anymore. Go 1.0 is no longer supported by this driver
  39. - Exported errors to allow easy checking from application code
  40. - Enabled TCP Keepalives on TCP connections
  41. - Optimized INFILE handling (better buffer size calculation, lazy init, ...)
  42. - The DSN parser also checks for a missing separating slash
  43. - Faster binary date / datetime to string formatting
  44. - Also exported the MySQLWarning type
  45. - mysqlConn.Close returns the first error encountered instead of ignoring all errors
  46. - writePacket() automatically writes the packet size to the header
  47. - readPacket() uses an iterative approach instead of the recursive approach to merge splitted packets
  48. New Features:
  49. - `RegisterDial` allows the usage of a custom dial function to establish the network connection
  50. - Setting the connection collation is possible with the `collation` DSN parameter. This parameter should be preferred over the `charset` parameter
  51. - Logging of critical errors is configurable with `SetLogger`
  52. - Google CloudSQL support
  53. Bugfixes:
  54. - Allow more than 32 parameters in prepared statements
  55. - Various old_password fixes
  56. - Fixed TestConcurrent test to pass Go's race detection
  57. - Fixed appendLengthEncodedInteger for large numbers
  58. - Renamed readLengthEnodedString to readLengthEncodedString and skipLengthEnodedString to skipLengthEncodedString (fixed typo)
  59. ## Version 1.1 (2013-11-02)
  60. Changes:
  61. - Go-MySQL-Driver now requires Go 1.1
  62. - Connections now use the collation `utf8_general_ci` by default. Adding `&charset=UTF8` to the DSN should not be necessary anymore
  63. - Made closing rows and connections error tolerant. This allows for example deferring rows.Close() without checking for errors
  64. - `[]byte(nil)` is now treated as a NULL value. Before, it was treated like an empty string / `[]byte("")`
  65. - DSN parameter values must now be url.QueryEscape'ed. This allows text values to contain special characters, such as '&'.
  66. - Use the IO buffer also for writing. This results in zero allocations (by the driver) for most queries
  67. - Optimized the buffer for reading
  68. - stmt.Query now caches column metadata
  69. - New Logo
  70. - Changed the copyright header to include all contributors
  71. - Improved the LOAD INFILE documentation
  72. - The driver struct is now exported to make the driver directly accessible
  73. - Refactored the driver tests
  74. - Added more benchmarks and moved all to a separate file
  75. - Other small refactoring
  76. New Features:
  77. - Added *old_passwords* support: Required in some cases, but must be enabled by adding `allowOldPasswords=true` to the DSN since it is insecure
  78. - Added a `clientFoundRows` parameter: Return the number of matching rows instead of the number of rows changed on UPDATEs
  79. - Added TLS/SSL support: Use a TLS/SSL encrypted connection to the server. Custom TLS configs can be registered and used
  80. Bugfixes:
  81. - Fixed MySQL 4.1 support: MySQL 4.1 sends packets with lengths which differ from the specification
  82. - Convert to DB timezone when inserting `time.Time`
  83. - Splitted packets (more than 16MB) are now merged correctly
  84. - Fixed false positive `io.EOF` errors when the data was fully read
  85. - Avoid panics on reuse of closed connections
  86. - Fixed empty string producing false nil values
  87. - Fixed sign byte for positive TIME fields
  88. ## Version 1.0 (2013-05-14)
  89. Initial Release