Thank you for working on TiDB! Please read TiDB's [CONTRIBUTING](https://github.com/pingcap/tidb/blob/master/CONTRIBUTING.md) document **BEFORE** filing this PR. ## What have you changed? (mandatory) Please explain **IN DETAIL** what the changes are in this PR and why they are needed: - Summarize your change (mandatory) - How does this PR work? Need a brief introduction for the changed logic (optional) - Describe clearly one logical change and avoid lazy messages (optional) - Describe any limitations of the current code (optional) Please **NOTE** that: - Do not assume the code is self-evident - Do not assume reviewers understand the original issue ## What are the type of the changes (mandatory)? The currently defined types are listed below, please pick one of the types for this PR by removing the others: - New feature (non-breaking change which adds functionality) - Improvement (non-breaking change which is an improvement to an existing feature) - Bug fix (non-breaking change which fixes an issue) - Breaking change (fix or feature that would cause existing functionality to not work as expected) ## How has this PR been tested (mandatory)? Please describe the tests that you ran to verify your changes. Have you finished unit tests, integration tests, or manual tests? ## Does this PR affect documentation (docs/docs-cn) update? (optional) If there is document change, please file a PR in ([docs](https://github.com/pingcap/docs) and [docs-cn](https://github.com/pingcap/docs-cn)) and add the PR number here. ## Refer to a related PR or issue link (optional) ## Benchmark result if necessary (optional) ## Add a few positive/negative examples (optional)