Commit Graph

19 Commits

Author SHA1 Message Date
560e8cfe57 *: sleep 0 when retry whole transaction (#9454) 2019-03-02 13:16:28 +08:00
40fa006cac *: collect coprocessor runtime stats for explain analyze (#9057) 2019-02-19 16:22:00 +08:00
9bdba3a5d1 plan: handle DNF expressions in Selectivity (#9282) 2019-02-13 10:53:12 +08:00
365264cd21 ddl: add restore deleted table (#7937) 2019-01-16 15:37:33 +08:00
e0b30fe9ba planner,executor: support show create database if not exists syntax (#8926)
<!--
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/147
https://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 -->
2019-01-04 13:31:05 +08:00
322795439d *: record cop scan rows in explain analyze (#8423) 2018-11-28 15:43:59 +08:00
f3a9745e2c executor: support for "admin show next_row_id" (#8242) 2018-11-09 22:08:42 +08:00
34c3d4ccc6 planner,executor,parser: support the prepared plan cache for insert/delete/update statements (#8107) 2018-11-05 14:24:48 +08:00
32b1dbd8d5 *: rename "github.com/pkg/errors" to "github.com/pingcap/errors" (#8136)
We import "github.com/pkg/errors" in the code, and actually put
the "github.com/pingcap/errors" there in the vendor path.
That's a dirty hack, and prevent the introduce of Go module.
2018-11-01 16:09:07 +08:00
59c4db71a0 plan: try point get when plan cache is enabled (#8108) 2018-11-01 00:57:39 +08:00
89dda9d9a8 *: move parser to a separate repository (#8036) 2018-10-25 11:12:10 +08:00
1434fa9b89 admin: refine admin check decoder (#7862) 2018-10-23 17:55:58 +08:00
25118db843 *: move ast.NewValueExpr to standalone parser_driver package (#7952)
Make the ast package get rid of the dependency of types.Datum
2018-10-19 19:37:55 +08:00
458c0d1c27 executor: refine explain analyze (#7888) 2018-10-16 20:02:43 +08:00
d21f294393 *: make explain support explain anaylze (#7827) 2018-10-12 20:01:19 +08:00
dbdd806c0e *: add session variable "tidb_enable_cascades_planner" (#7879) 2018-10-12 13:21:51 +08:00
ee0d4d6c64 executor: print arguments in execute statement in log files (#7684) 2018-10-09 15:24:25 +08:00
081920da93 planner,executor: support admin show slow command (#7785) 2018-09-26 19:28:53 +08:00
e79bd946ed *: change package name from plan to planner (#7760) 2018-09-25 11:16:39 +08:00