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.
It is possible that a tableMap event is passed from the MySQL protocol, that changes the id of a table. e.g.:
Current tablemap:
112: tableA
113: tableB
It's possible to get a tableMap event "113: tableA". Currently zongji doesn't handle this, because it sees we already have "113". With my proposed change, we check for changes in tableName or number of columns.
To fix the root cause, I'm wondering why we need to do a
_fetchTableInfo
anyway. What information do we retrieve in_fetchTableInfo
that's not already included in the tableMap message?If we don't need to do the
_fetchTableInfo
, we don't need to pause the connection, and we can just always use the latest tableMap event, as recommended by the replication protocol. Let me know if you have more info about this