From 8883f6618b7506a5a188042d19268eaca198a2e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= Date: Mon, 8 Apr 2024 10:03:31 +0200 Subject: [PATCH 1/4] ebnf show collation --- .../sql-statement-show-collation.md | 38 +++++++++++++++++-- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/sql-statements/sql-statement-show-collation.md b/sql-statements/sql-statement-show-collation.md index afcdb02bacfe3..e701bf31a601e 100644 --- a/sql-statements/sql-statement-show-collation.md +++ b/sql-statements/sql-statement-show-collation.md @@ -14,16 +14,24 @@ This statement provides a static list of collations, and is included to provide ## Synopsis -**ShowCollationStmt:** +```ebnf+diagram +ShowCollationStmt ::= + "SHOW" "COLLATION" ShowLikeOrWhere? -![ShowCollationStmt](/media/sqlgram/ShowCollationStmt.png) +ShowLikeOrWhere ::= + "LIKE" SimpleExpr +| "WHERE" Expression +``` ## Examples When new collation framework is disabled, only binary collations are displayed. ```sql -mysql> SHOW COLLATION; +SHOW COLLATION; +``` + +``` +-------------+---------+------+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +-------------+---------+------+---------+----------+---------+ @@ -39,7 +47,10 @@ mysql> SHOW COLLATION; When new collation framework is enabled, `utf8_general_ci` and `utf8mb4_general_ci` are additionally supported. ```sql -mysql> SHOW COLLATION; +SHOW COLLATION; +``` + +`` +--------------------+---------+------+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +--------------------+---------+------+---------+----------+---------+ @@ -58,6 +69,25 @@ mysql> SHOW COLLATION; 11 rows in set (0.001 sec) ``` +To filter on character set you can add a `WHERE` clause. + +```sql +SHOW COLLATION WHERE Charset="utf8mb4"; +``` + +``` ++--------------------+---------+-----+---------+----------+---------+ +| Collation | Charset | Id | Default | Compiled | Sortlen | ++--------------------+---------+-----+---------+----------+---------+ +| utf8mb4_0900_ai_ci | utf8mb4 | 255 | | Yes | 1 | +| utf8mb4_0900_bin | utf8mb4 | 309 | | Yes | 1 | +| utf8mb4_bin | utf8mb4 | 46 | Yes | Yes | 1 | +| utf8mb4_general_ci | utf8mb4 | 45 | | Yes | 1 | +| utf8mb4_unicode_ci | utf8mb4 | 224 | | Yes | 1 | ++--------------------+---------+-----+---------+----------+---------+ +5 rows in set (0.00 sec) +``` + ## MySQL compatibility The usage of the `SHOW COLLATION` statement in TiDB is fully compatible with MySQL. However, charsets in TiDB might have different default collations compared with MySQL. For details, refer to [Compatibility with MySQL](/mysql-compatibility.md). If you find any compatibility differences, [report a bug](https://docs.pingcap.com/tidb/stable/support). From f0f8e91577be9cb05ac6828a0e40252e35d72861 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 8 Apr 2024 17:14:56 +0800 Subject: [PATCH 2/4] Update sql-statements/sql-statement-show-collation.md --- sql-statements/sql-statement-show-collation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-statements/sql-statement-show-collation.md b/sql-statements/sql-statement-show-collation.md index e701bf31a601e..3d9033e53999e 100644 --- a/sql-statements/sql-statement-show-collation.md +++ b/sql-statements/sql-statement-show-collation.md @@ -69,7 +69,7 @@ SHOW COLLATION; 11 rows in set (0.001 sec) ``` -To filter on character set you can add a `WHERE` clause. +To filter on the character set, you can add a `WHERE` clause. ```sql SHOW COLLATION WHERE Charset="utf8mb4"; From b700d461a1fbe5ce4bb3afe3e919686249abde01 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 8 Apr 2024 17:24:52 +0800 Subject: [PATCH 3/4] Update sql-statements/sql-statement-show-collation.md --- sql-statements/sql-statement-show-collation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-statements/sql-statement-show-collation.md b/sql-statements/sql-statement-show-collation.md index 3d9033e53999e..91b6ecc09e5df 100644 --- a/sql-statements/sql-statement-show-collation.md +++ b/sql-statements/sql-statement-show-collation.md @@ -75,7 +75,7 @@ To filter on the character set, you can add a `WHERE` clause. SHOW COLLATION WHERE Charset="utf8mb4"; ``` -``` +```sql +--------------------+---------+-----+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +--------------------+---------+-----+---------+----------+---------+ From 3d90574138e6194b7f37b750125ba87f3f73f295 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= Date: Mon, 8 Apr 2024 12:33:11 +0200 Subject: [PATCH 4/4] Update sql-statements/sql-statement-show-collation.md Co-authored-by: Aolin --- sql-statements/sql-statement-show-collation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-statements/sql-statement-show-collation.md b/sql-statements/sql-statement-show-collation.md index 91b6ecc09e5df..1735b47ee22d1 100644 --- a/sql-statements/sql-statement-show-collation.md +++ b/sql-statements/sql-statement-show-collation.md @@ -50,7 +50,7 @@ When new collation framework is enabled, `utf8_general_ci` and `utf8mb4_general_ SHOW COLLATION; ``` -`` +``` +--------------------+---------+------+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +--------------------+---------+------+---------+----------+---------+