Skip to content
This repository has been archived by the owner on Jun 14, 2022. It is now read-only.

Releases: skeema/tengo

v0.10.3

31 Aug 22:25
Compare
Choose a tag to compare
  • Connection pool management adjustments
    • Improved connection reuse during concurrent queries for schema introspection
    • Go 1.15's DB.SetConnMaxIdleTime is now used to ensure that idle connections aren't reused beyond the session wait_timeout
    • Max connection reuse lifetime increased to 60s (previously was 30s, or lower depending on wait_timeout)
  • Several module dependencies have been updated to their latest versions

v0.10.2

30 Jul 03:31
Compare
Choose a tag to compare
  • MariaDB 10.6 support, including its IGNORED indexes feature (similar to MySQL 8's INVISIBLE indexes)
  • Work-around for MariaDB information_schema truncating check_constraints.check_clause at 64 bytes in MariaDB releases prior to Feb 2021
  • Two new DockerizedInstance methods for more flexible execution of raw SQL from a string or io.Reader
  • Bug fix when diff'ing non-InnoDB tables: previously the StrictIndexOrder statement modifier was inadvertently always enabled for any non-InnoDB table with a PK

v0.10.1

29 Apr 21:52
Compare
Choose a tag to compare
  • MySQL 8.0.24: Fix diff support for tables with utf8mb3 default charset
  • DockerizedInstance.Start: re-inspect the container up to 5 times if the port mapping hasn't shown up yet
  • Instance.DropTablesInSchema: Fix error return for non-deadlocks; explicitly skip views which are present in information_schema.partitions in MySQL 8
  • BulkDropOptions: new Schema field can be supplied to skip some I_S queries, improving performance
  • NormalizeCreateOptions: no longer removes redundant MySQL 8 charset and collation fields from columns in SHOW CREATE TABLE; this is now handled elsewhere since it isn't InnoDB-specific
  • Dependency updates relating to MySQL driver, Docker, etc

v0.10.0

24 Feb 05:10
Compare
Choose a tag to compare
  • Support check constraints
  • Support invisible columns in MySQL 8.0.23+
  • Connection pool handling refactor
    • Instance.Connect is now deprecated in favor of using either Instance.ConnectionPool or Instance.CachedConnectionPool
    • New method Instance.Valid is like a memoizing version of Instance.CanConnect
    • Connection pools have max connections throttled automatically based on server-side limits
    • Mutex locking mechanics have changed
  • Server-side session variable defaults that are incompatible with introspection are now avoided automatically
  • Use newer go-sql-driver/mysql to set multiple session variables in one round-trip
  • information_schema SELECTs now use SQL_BUFFER_RESULT to reduce locking time
  • DropTablesInSchema now executes DROPs sequentially (no concurrency) in large buffer pool situations pre-8.0.23
  • Performance improvements
  • Bug fix for some default column expression edge cases in MySQL 8
  • Bug fix for int display widths in tables created in pre-8.0.19 releases of MySQL 8 that were later upgraded to 8.0.19+
  • Bug fix for Instance.ForceFlavor setting patch version properly

As this package is still pre-1.0, some minor backwards-incompatible changes have been introduced:

  • Instance mutex field is no longer exported. This was only exported previously as an inadvertent side-effect of being an embedded field.
  • Index.OnlyVisibilityDiffers method removed. This is no longer used and is achievable through simpler means.
  • Instance.StrictModeCompliant method removed. No longer used; overly complex and not sufficiently thorough.
  • Flavor.HasInnoFileFormat method removed. Was only present previously to support Instance.StrictModeCompliant.
  • Flavor.InnoRowFormatReqs method removed. Was only present previously to support Instance.StrictModeCompliant.

v0.9.7

05 Jan 20:33
Compare
Choose a tag to compare
  • UNIQUE indexes: don't consider two of them to be redundant unless they're exactly identical
  • FULLTEXT indexes: when adding multiple at once, split into separate ALTERs

v0.9.6

20 Nov 22:43
Compare
Choose a tag to compare
  • DockerizedInstance: avoid leaking file descriptors upon sourcing a .sql file, or stopping or destroying a container

v0.9.5

21 Jul 23:02
Compare
Choose a tag to compare
  • Add MariaDB 10.5 to list of officially supported flavors
  • New MariaDB 10.5 BINLOG ADMIN privilege now detected by Instance.CanSkipBinlog()
  • Column alterations between the binary(16) type and MariaDB 10.5's new inet6 type are always considered safe
  • Fix handling of MariaDB 10.3+ column compression, and unify struct field with Percona Server column compression

v0.9.4

24 Jun 04:05
Compare
Choose a tag to compare

This release fixes a bug in Instance.CanSkipBinlog for connections with non-super users.

Please note the default git branch has changed to main as of this release, and CI has moved from Travis to GitHub Actions.

v0.9.3

21 Apr 23:40
Compare
Choose a tag to compare
  • Add support for WITH PARSER clause of FULLTEXT indexes

v0.9.2

14 Feb 05:53
Compare
Choose a tag to compare
  • Flavor struct, and several related methods, can now optionally account for patch version number
  • MySQL 8.0.19: fix diff problems with foreign key ordering; properly handle lack of int display widths
  • Add diff support for tables using InnoDB transparent page compression (MySQL 5.7+, Percona Server 5.7+, MariaDB 10.2+)
  • Add diff support for tables using column compression (Percona Server 5.6.33+)