pingcap / parser

A MySQL Compatible SQL Parser
Apache License 2.0
1.41k stars 489 forks source link

parser: support `show placement ...` syntax #1292

Closed lcwangchao closed 3 years ago

lcwangchao commented 3 years ago

What problem does this PR solve?

Support syntax show placement ... see: https://github.com/pingcap/tidb/pull/26221

What is changed and how it works?

Support the below syntax:

SHOW PLACEMENT [LIKE 'pattern' | WHERE expr]
SHOW PLACEMENT FOR [{DATABASE | SCHEMA} schema_name] [TABLE table_name [PARTITION partition_name]];

Same examples:

SHOW PLACEMENT;
+----------------------------+----------------------------------------------------------------------+------------------+
| target                     | placement                                                            | scheduling_state |
+----------------------------+----------------------------------------------------------------------+------------------+
| POLICY system              | PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-east-2" FOLLOWERS=4 | SCHEDULED        |
| POLICY default             | PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-east-2"             | SCHEDULED        |
| DATABASE test              | PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-east-2"             | SCHEDULED        |
| TABLE test.t1              | PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-east-2"             | SCHEDULED        |
| TABLE test.t1 PARTITION p1 | PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-east-2"             | INPROGRESS       |
+----------------------------+----------------------------------------------------------------------+------------------+
5 rows in set (0.00 sec)

SHOW PLACEMENT LIKE 'POLICY%';
+----------------------------+----------------------------------------------------------------------+------------------+
| target                     | placement                                                            | scheduling_state |
+----------------------------+----------------------------------------------------------------------+------------------+
| POLICY system              | PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-east-2" FOLLOWERS=4 | SCHEDULED        |
| POLICY default             | PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-east-2"             | SCHEDULED        |
+----------------------------+----------------------------------------------------------------------+------------------+
2 rows in set (0.00 sec)

SHOW PLACEMENT FOR DATABASE test;
+----------------------------+----------------------------------------------------------------------+------------------+
| target                     | placement                                                            | scheduling_state |
+----------------------------+----------------------------------------------------------------------+------------------+
| DATABASE test              | PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-east-2"             | SCHEDULED        |
| TABLE test.t1              | PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-east-2"             | SCHEDULED        |
| TABLE test.t1 PARTITION p1 | PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-east-2"             | INPROGRESS       |
+----------------------------+----------------------------------------------------------------------+------------------+
3 rows in set (0.00 sec)

Check List

Tests

Related changes

ti-chi-bot commented 3 years ago

[REVIEW NOTIFICATION]

This pull request has been approved by:

To complete the pull request process, please ask the reviewers in the list to review by filling /cc @reviewer in the comment. After your PR has acquired the required number of LGTMs, you can assign this pull request to the committer in the list by filling /assign @committer in the comment to help you merge this pull request.

The full list of commands accepted by this bot can be found here.

Reviewer can indicate their review by submitting an approval review. Reviewer can cancel approval by submitting a request changes review.
CLAassistant commented 3 years ago

CLA assistant check
All committers have signed the CLA.

xhebox commented 3 years ago

/cc @morgo @djshow832