* executor: adjust 'show create table'
show create table should not print the charset of the column
if it is the same with table charset( same with MySQL)
* update:change the test
* update: add test to improve CodeCov
* style: update the variable
* fix test
* Wait for change parser
* just need to test
* change go.mod
* fix invalid pointer access
* Revert "update:change the test"
This reverts commit 64b381b2e95f151a9756d67ba52b60f694573cf9.
* Revert "fix test"
This reverts commit 98e00954064c9f5a6aa4ae1d4fb529e27cfabf4e.
* Revert "update: add test to improve CodeCov"
This reverts commit a32d6e992ca239e893f0615cea988838f3952dd7.
* passed test(need change test data)
* add judge when show create table
* fix logic wrong
* add test
* change variable name
* revert something because complex
* update go.mod
* update go.mod
<!--
Thank you for contributing to TiDB! Please read TiDB's [CONTRIBUTING](https://github.com/pingcap/tidb/blob/master/CONTRIBUTING.md) document **BEFORE** filing this PR.
-->
### What problem does this PR solve? <!--add issue link with summary if exists-->
https://github.com/pingcap/parser/issues/147https://github.com/pingcap/parser/pull/148
MySQL compatibility: `show create database if not exists` syntax
See: https://dev.mysql.com/doc/refman/5.7/en/show-create-database.html
MySQL
```
MariaDB [(none)]> show create database b2;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| b2 | CREATE DATABASE `b2` /*!40100 DEFAULT CHARACTER SET utf8mb4 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.002 sec)
MariaDB [(none)]> show create database if not exists b2;
+----------+-----------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------------------------------+
| b2 | CREATE DATABASE /*!32312 IF NOT EXISTS*/ `b2` /*!40100 DEFAULT CHARACTER SET utf8mb4 */ |
+----------+-----------------------------------------------------------------------------------------+
1 row in set (0.000 sec)
```
TiDB
```
MySQL [b1]> show create batabase b2;
ERROR 1105 (HY000): line 1 column 20 near " b2" (total length 23)
MySQL [b1]> show create database b2;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| b2 | CREATE DATABASE `b2` /* !40100 DEFAULT CHARACTER SET utf8mb4 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.000 sec)
MySQL [b1]> show create database if not exists b2;
ERROR 1105 (HY000): line 1 column 23 near " not exists b2" (total length 37)
```
### What is changed and how it works?
Insert `/*!32312 IF NOT EXISTS*/` before shema name when statement contains `if not exists`
### Check List <!--REMOVE the items that are not applicable-->
Tests <!-- At least one of them must be included. -->
- Unit test
Code changes
Side effects
Related changes
- Need to cherry-pick to the release branch
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/pingcap/tidb/8926)
<!-- Reviewable:end -->