gitea/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md

7.9 KiB

Version 1.4.1 (2018-11-14)

Bugfixes:

  • Fix TIME format for binary columns ()
  • Fix handling of empty auth plugin names ()
  • Fix caching_sha2_password with empty password ()
  • Fix canceled context broke mysqlConn ()
  • Fix OldAuthSwitchRequest support ()
  • Fix Auth Response packet for cleartext password ()

Version 1.4 (2018-06-03)

Changes:

  • Documentation fixes (, , )
  • Refactoring (, , , , , , )
  • Cache column names ()
  • Sort the DSN parameters in DSNs generated from a config ()
  • Allow native password authentication by default ()
  • Use the default port if it is missing in the DSN ()
  • Removed the strict mode ()
  • Do not query max_allowed_packet by default ()
  • Dropped support Go 1.6 and lower ()
  • Updated ConvertValue() to match the database/sql/driver implementation ()
  • Document the usage of 0000-00-00T00:00:00 as the time.Time zero value ()
  • Improved the compatibility of the authentication system ()

New Features:

  • Multi-Results support ()
  • rejectReadOnly DSN option ()
  • context.Context support (, , , )
  • Transaction isolation level support (, )
  • Read-Only transactions support (, )
  • NewConfig function which initializes a config with default values ()
  • Implemented the ColumnType interfaces (, )
  • Support for custom string types in ConvertValue ()
  • Implemented NamedValueChecker, improving support for uint64 with high bit set (, , )
  • caching_sha2_password authentication plugin support (, , , )
  • Implemented driver.SessionResetter ()
  • sha256_password authentication plugin support ()

Bugfixes:

  • Use the DSN hostname as TLS default ServerName if tls=true (, )
  • Fixed LOAD LOCAL DATA INFILE for empty files ()
  • Removed columns definition cache since it sometimes cached invalid data ()
  • Don't mutate registered TLS configs ()
  • Make RegisterTLSConfig concurrency-safe ()
  • Handle missing auth data in the handshake packet correctly ()
  • Do not retry queries when data was written to avoid data corruption (, )
  • Cache the connection pointer for error handling before invalidating it ()
  • Fixed imports for appengine/cloudsql ()
  • Fix sending STMT_LONG_DATA for 0 byte data ()
  • Set correct capacity for []bytes read from length-encoded strings ()
  • Make RegisterDial concurrency-safe ()

Version 1.3 (2016-12-01)

Changes:

  • Go 1.1 is no longer supported
  • Use decimals fields in MySQL to format time types ()
  • Buffer optimizations ()
  • TLS ServerName defaults to the host ()
  • Refactoring (, , )
  • Adjusted documentation for second generation CloudSQL ()
  • Documented DSN system var quoting rules ()
  • Made statement.Close() calls idempotent to avoid errors in Go 1.6+ ()

New Features:

  • Enable microsecond resolution on TIME, DATETIME and TIMESTAMP ()
  • Support for returning table alias on Columns() (, , )
  • Placeholder interpolation, can be actived with the DSN parameter interpolateParams=true (, , )
  • Support for uint64 parameters with high bit set (, )
  • Cleartext authentication plugin support ()
  • Exported ParseDSN function and the Config struct (, , )
  • Read / Write timeouts ()
  • Support for JSON field type ()
  • Support for multi-statements and multi-results (, )
  • DSN parameter to set the driver-side max_allowed_packet value manually ()
  • Native password authentication plugin support (, )

Bugfixes:

  • Fixed handling of queries without columns and rows ()
  • Fixed a panic when SetKeepAlive() failed ()
  • Handle ERR packets while reading rows ()
  • Fixed reading NULL length-encoded integers in MySQL 5.6+ ()
  • Fixed absolute paths support in LOAD LOCAL DATA INFILE ()
  • Actually zero out bytes in handshake response ()
  • Fixed race condition in registering LOAD DATA INFILE handler ()
  • Fixed tests with MySQL 5.7.9+ ()
  • QueryUnescape TLS config names ()
  • Fixed "broken pipe" error by writing to closed socket ()
  • Fixed LOAD LOCAL DATA INFILE buffering ()
  • Fixed parsing of floats into float64 when placeholders are used ()
  • Fixed DSN tests with Go 1.7+ ()
  • Handle ERR packets while waiting for EOF ()
  • Invalidate connection on error while discarding additional results ()
  • Allow terminating packets of length 0 ()

Version 1.2 (2014-06-03)

Changes:

  • We switched back to a "rolling release". go get installs the current master branch again
  • Version v1 of the driver will not be maintained anymore. Go 1.0 is no longer supported by this driver
  • Exported errors to allow easy checking from application code
  • Enabled TCP Keepalives on TCP connections
  • Optimized INFILE handling (better buffer size calculation, lazy init, ...)
  • The DSN parser also checks for a missing separating slash
  • Faster binary date / datetime to string formatting
  • Also exported the MySQLWarning type
  • mysqlConn.Close returns the first error encountered instead of ignoring all errors
  • writePacket() automatically writes the packet size to the header
  • readPacket() uses an iterative approach instead of the recursive approach to merge splitted packets

New Features:

  • RegisterDial allows the usage of a custom dial function to establish the network connection
  • Setting the connection collation is possible with the collation DSN parameter. This parameter should be preferred over the charset parameter
  • Logging of critical errors is configurable with SetLogger
  • Google CloudSQL support

Bugfixes:

  • Allow more than 32 parameters in prepared statements
  • Various old_password fixes
  • Fixed TestConcurrent test to pass Go's race detection
  • Fixed appendLengthEncodedInteger for large numbers
  • Renamed readLengthEnodedString to readLengthEncodedString and skipLengthEnodedString to skipLengthEncodedString (fixed typo)

Version 1.1 (2013-11-02)

Changes:

  • Go-MySQL-Driver now requires Go 1.1
  • Connections now use the collation utf8_general_ci by default. Adding &charset=UTF8 to the DSN should not be necessary anymore
  • Made closing rows and connections error tolerant. This allows for example deferring rows.Close() without checking for errors
  • []byte(nil) is now treated as a NULL value. Before, it was treated like an empty string / []byte("")
  • DSN parameter values must now be url.QueryEscape'ed. This allows text values to contain special characters, such as '&'.
  • Use the IO buffer also for writing. This results in zero allocations (by the driver) for most queries
  • Optimized the buffer for reading
  • stmt.Query now caches column metadata
  • New Logo
  • Changed the copyright header to include all contributors
  • Improved the LOAD INFILE documentation
  • The driver struct is now exported to make the driver directly accessible
  • Refactored the driver tests
  • Added more benchmarks and moved all to a separate file
  • Other small refactoring

New Features:

  • Added old_passwords support: Required in some cases, but must be enabled by adding allowOldPasswords=true to the DSN since it is insecure
  • Added a clientFoundRows parameter: Return the number of matching rows instead of the number of rows changed on UPDATEs
  • Added TLS/SSL support: Use a TLS/SSL encrypted connection to the server. Custom TLS configs can be registered and used

Bugfixes:

  • Fixed MySQL 4.1 support: MySQL 4.1 sends packets with lengths which differ from the specification
  • Convert to DB timezone when inserting time.Time
  • Splitted packets (more than 16MB) are now merged correctly
  • Fixed false positive io.EOF errors when the data was fully read
  • Avoid panics on reuse of closed connections
  • Fixed empty string producing false nil values
  • Fixed sign byte for positive TIME fields

Version 1.0 (2013-05-14)

Initial Release