From 95de42b6dc558ce25739004a197b5e935e8420cf Mon Sep 17 00:00:00 2001 From: Joyinqin Date: Thu, 8 Jul 2021 14:36:44 +0800 Subject: [PATCH 1/4] Update tidb-functions.md --- functions-and-operators/tidb-functions.md | 65 +++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/functions-and-operators/tidb-functions.md b/functions-and-operators/tidb-functions.md index 39909c27bec6..4cc098e8fc5d 100644 --- a/functions-and-operators/tidb-functions.md +++ b/functions-and-operators/tidb-functions.md @@ -26,6 +26,8 @@ TableStmt ::= ### 示例 +如下示例中,表 `t1` 有一个隐藏的 `rowid`,是由 TiDB 生成的。语句中使用了 `TIDB_DECODE_KEY` 函数。结果显示,隐藏的 `rowid` 被解码后并输出,这是非聚簇主键的典型结果。 + {{< copyable "sql" >}} ```sql @@ -39,6 +41,69 @@ TIDB_DECODE_KEY(START_KEY): {"_tidb_rowid":1958897,"table_id":"59"} 1 row in set (0.00 sec) ``` +如下示例中,表 `t2` 有一个复合聚簇主键。由 JSON 输出可知,可以看到 `handle` 一项中包含了主键一部分的两个列的名称和对应值。 + +{{< copyable "sql" >}} + +```sql +show create table t2\G +``` + +```sql +*************************** 1. row *************************** + Table: t2 +Create Table: CREATE TABLE `t2` ( + `id` binary(36) NOT NULL, + `a` tinyint(3) unsigned NOT NULL, + `v` varchar(512) DEFAULT NULL, + PRIMARY KEY (`a`,`id`) /*T![clustered_index] CLUSTERED */ +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin +1 row in set (0.001 sec) +``` + +{{< copyable "sql" >}} + +```sql +select * from information_schema.tikv_region_status where table_name='t2' limit 1\G +``` + +```sql +*************************** 1. row *************************** + REGION_ID: 48 + START_KEY: 7480000000000000FF3E5F720400000000FF0000000601633430FF3338646232FF2D64FF3531632D3131FF65FF622D386337352DFFFF3830653635303138FFFF61396265000000FF00FB000000000000F9 + END_KEY: + TABLE_ID: 62 + DB_NAME: test + TABLE_NAME: t2 + IS_INDEX: 0 + INDEX_ID: NULL + INDEX_NAME: NULL + EPOCH_CONF_VER: 1 + EPOCH_VERSION: 38 + WRITTEN_BYTES: 0 + READ_BYTES: 0 + APPROXIMATE_SIZE: 136 + APPROXIMATE_KEYS: 479905 + REPLICATIONSTATUS_STATE: NULL +REPLICATIONSTATUS_STATEID: NULL +1 row in set (0.005 sec) +``` + +{{< copyable "sql" >}} + +```sql +select tidb_decode_key('7480000000000000FF3E5F720400000000FF0000000601633430FF3338646232FF2D64FF3531632D3131FF65FF622D386337352DFFFF3830653635303138FFFF61396265000000FF00FB000000000000F9'); +``` + +```sql ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| tidb_decode_key('7480000000000000FF3E5F720400000000FF0000000601633430FF3338646232FF2D64FF3531632D3131FF65FF622D386337352DFFFF3830653635303138FFFF61396265000000FF00FB000000000000F9') | ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| {"handle":{"a":"6","id":"c4038db2-d51c-11eb-8c75-80e65018a9be"},"table_id":62} | ++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +1 row in set (0.001 sec) +``` + ### MySQL 兼容性 `TIDB_DECODE_KEY` 是 TiDB 特有的函数,和 MySQL 不兼容。 From 4731b3c9ea350123f8e5470de9fbe38e2719512b Mon Sep 17 00:00:00 2001 From: Joyinqin Date: Thu, 8 Jul 2021 14:58:02 +0800 Subject: [PATCH 2/4] Update tidb-functions.md --- functions-and-operators/tidb-functions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/functions-and-operators/tidb-functions.md b/functions-and-operators/tidb-functions.md index 4cc098e8fc5d..38b99c1a9dbd 100644 --- a/functions-and-operators/tidb-functions.md +++ b/functions-and-operators/tidb-functions.md @@ -26,7 +26,7 @@ TableStmt ::= ### 示例 -如下示例中,表 `t1` 有一个隐藏的 `rowid`,是由 TiDB 生成的。语句中使用了 `TIDB_DECODE_KEY` 函数。结果显示,隐藏的 `rowid` 被解码后并输出,这是非聚簇主键的典型结果。 +如下示例中,表 `t1` 有一个隐藏的由 TiDB 生成的 `rowid`,并且语句中使用了 `TIDB_DECODE_KEY` 函数。结果显示,隐藏的 `rowid` 被解码后并输出,这是非聚簇主键的典型结果。 {{< copyable "sql" >}} @@ -41,7 +41,7 @@ TIDB_DECODE_KEY(START_KEY): {"_tidb_rowid":1958897,"table_id":"59"} 1 row in set (0.00 sec) ``` -如下示例中,表 `t2` 有一个复合聚簇主键。由 JSON 输出可知,可以看到 `handle` 一项中包含了主键一部分的两个列的名称和对应值。 +如下示例中,表 `t2` 有一个复合聚簇主键。由 JSON 输出可知,可以看到 `handle` 项中包含了主键部分的信息:两个列的名称和对应值。 {{< copyable "sql" >}} From 944a978f9fdffe75f79fd515913b4d90badd33f3 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 9 Jul 2021 16:02:08 +0800 Subject: [PATCH 3/4] Update functions-and-operators/tidb-functions.md --- functions-and-operators/tidb-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions-and-operators/tidb-functions.md b/functions-and-operators/tidb-functions.md index 38b99c1a9dbd..4a1e76d3f6a1 100644 --- a/functions-and-operators/tidb-functions.md +++ b/functions-and-operators/tidb-functions.md @@ -26,7 +26,7 @@ TableStmt ::= ### 示例 -如下示例中,表 `t1` 有一个隐藏的由 TiDB 生成的 `rowid`,并且语句中使用了 `TIDB_DECODE_KEY` 函数。结果显示,隐藏的 `rowid` 被解码后并输出,这是非聚簇主键的典型结果。 +以下示例中,表 `t1` 有一个隐藏的 `rowid`,该 `rowid` 由 TiDB 生成。语句中使用了 `TIDB_DECODE_KEY` 函数。结果显示,隐藏的 `rowid` 被解码后并输出,这是典型的非聚簇主键结果。 {{< copyable "sql" >}} From 66a0e586955bfb34d1c91e99994db2dd36915f40 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Fri, 9 Jul 2021 16:02:20 +0800 Subject: [PATCH 4/4] Update functions-and-operators/tidb-functions.md --- functions-and-operators/tidb-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions-and-operators/tidb-functions.md b/functions-and-operators/tidb-functions.md index 4a1e76d3f6a1..9f8a27a47769 100644 --- a/functions-and-operators/tidb-functions.md +++ b/functions-and-operators/tidb-functions.md @@ -41,7 +41,7 @@ TIDB_DECODE_KEY(START_KEY): {"_tidb_rowid":1958897,"table_id":"59"} 1 row in set (0.00 sec) ``` -如下示例中,表 `t2` 有一个复合聚簇主键。由 JSON 输出可知,可以看到 `handle` 项中包含了主键部分的信息:两个列的名称和对应值。 +以下示例中,表 `t2` 有一个复合聚簇主键。由 JSON 输出可知,输出结果的 `handle` 项中包含了主键部分两列的信息,即两列的名称和对应的值。 {{< copyable "sql" >}}