From 0d26a3871f261dad848d0de6bf9ff3f01a1d8c16 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 b925e82f576ec..3480c891ed22e 100644 --- a/sql-statements/sql-statement-show-collation.md +++ b/sql-statements/sql-statement-show-collation.md @@ -13,16 +13,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 | +-------------+---------+------+---------+----------+---------+ @@ -38,7 +46,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 | +--------------------+---------+------+---------+----------+---------+ @@ -57,6 +68,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 ac9d20b4ea471962baee7b4c2e1a72ebb095d3e9 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 3480c891ed22e..da366a7bf9cc0 100644 --- a/sql-statements/sql-statement-show-collation.md +++ b/sql-statements/sql-statement-show-collation.md @@ -68,7 +68,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 648f7746a63b149ad4590aeb9a8606f761958bd1 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 da366a7bf9cc0..60e8a620c7578 100644 --- a/sql-statements/sql-statement-show-collation.md +++ b/sql-statements/sql-statement-show-collation.md @@ -74,7 +74,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 22f55eb01a091f3b8c0a93194115f6639ae79de3 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 60e8a620c7578..075bb742b18ec 100644 --- a/sql-statements/sql-statement-show-collation.md +++ b/sql-statements/sql-statement-show-collation.md @@ -49,7 +49,7 @@ When new collation framework is enabled, `utf8_general_ci` and `utf8mb4_general_ SHOW COLLATION; ``` -`` +``` +--------------------+---------+------+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +--------------------+---------+------+---------+----------+---------+