Consolidate fetching of MySQL server info #1229
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR consolidates the many queries and functions that fetch MySQL server runtime configuration into a single struct and function:
mysql.ServerInfo
andmysql.GetServerInfo(...) (*ServerInfo, error)
respectively. This reduces the server-info-related MySQL queries from6
->2
Now server information for both the applier and inspector are stored in the migration context as single structs
Notes:
@@global.port
and@@global.extra_port
areNULL
agosql.NullInt64
was used when cleaning upbase.ValidateConnection(...)
Port
frommysql.InstanceKey
to becomeint64
as there is nogosql.NullInt
base.ValidateConnection(...)
on the applier'sthis.singletonDB
database handle as it is the same host as the already-validatedthis.db
handleApplier initiated on %+v, version %+v
log-lines now include the@@global.version_comment
(in brackets) for more infobase.ValidateConnection(...)
now that it takes inserverInfo *mysql.ServerInfo
vs a harder-to-testdb *sql.DB
migrationContext.RequiresBinlogFormatChange(...)
to inspector because it's never called outside of inspector.validateAndReadTimeZone()
func from applierscript/cibuild
returns with no formatting errors, build errors or unit test errors.