From ea5d82f98b40dda65a8d2d96a3968f4261125db4 Mon Sep 17 00:00:00 2001 From: Liuxiaozhen12 Date: Thu, 24 Jun 2021 16:09:21 +0800 Subject: [PATCH 1/9] Add documentation for TiDB specific SQL functions --- TOC.md | 1 + .../information-functions.md | 1 - functions-and-operators/tidb-functions.md | 194 ++++++++++++++++++ 3 files changed, 195 insertions(+), 1 deletion(-) create mode 100644 functions-and-operators/tidb-functions.md diff --git a/TOC.md b/TOC.md index 73078638c1e5..46994ae018b8 100644 --- a/TOC.md +++ b/TOC.md @@ -395,6 +395,7 @@ + [精度数学](/functions-and-operators/precision-math.md) + [集合运算](/functions-and-operators/set-operators.md) + [下推到 TiKV 的表达式列表](/functions-and-operators/expressions-pushed-down.md) + + [TiDB 特有函数](/functions-and-operators/tidb-functions.md) + [聚簇索引](/clustered-indexes.md) + [约束](/constraints.md) + [生成列](/generated-columns.md) diff --git a/functions-and-operators/information-functions.md b/functions-and-operators/information-functions.md index 3d1ff85e1003..c7839eb17ceb 100644 --- a/functions-and-operators/information-functions.md +++ b/functions-and-operators/information-functions.md @@ -23,7 +23,6 @@ TiDB 支持使用 MySQL 5.7 中提供的大部分[信息函数](https://dev.mysq | [`SYSTEM_USER()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_system-user) | 与 USER() 同义 | | [`USER()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_user) | 返回客户端提供的用户名和主机名 | | [`VERSION()`](https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_version) | 返回当前 MySQL 服务器的版本信息 | -| `TIDB_VERSION()` | 返回当前 TiDB 服务器的版本信息 | ## 不支持的函数 diff --git a/functions-and-operators/tidb-functions.md b/functions-and-operators/tidb-functions.md new file mode 100644 index 000000000000..30a4f73b3eff --- /dev/null +++ b/functions-and-operators/tidb-functions.md @@ -0,0 +1,194 @@ +--- +title: TiDB 特有函数 +summary: 学习使用 TiDB 的特有函数。 +--- + +# TiDB 特有函数 + +本文档介绍 TiDB 特有的函数。 + +## TIDB_BOUNDED_STALENESS + +`TIDB_BOUNDED_STALENESS` 是 TiDB 内部的函数。 + +## TIDB_DECODE_KEY + +`TIDB_DECODE_KEY` 函数可用于将 TiDB 编码的键输入解码为包含 `_tidb_rowid` 和 `table_id` 的 JSON 结构。你可以在一些系统表和日志输出中找到 TiDB 的编码键。 + +### 语法图 + +```ebnf+diagram +TableStmt ::= + "TIDB_DECODE_KEY(" STR ")" +``` + +### 示例 + +{{< copyable "sql" >}} + +```sql +SELECT START_KEY, TIDB_DECODE_KEY(START_KEY) FROM information_schema.tikv_region_status WHERE table_name='t1' AND REGION_ID=2\G +``` + +```sql +*************************** 1. row *************************** + START_KEY: 7480000000000000FF3B5F728000000000FF1DE3F10000000000FA +TIDB_DECODE_KEY(START_KEY): {"_tidb_rowid":1958897,"table_id":"59"} +1 row in set (0.00 sec) +``` + +### MySQL 兼容性 + +`TIDB_DECODE_KEY` 是 TiDB 的特有函数,和 MySQL 不兼容。 + +## TIDB_DECODE_PLAN + +`TIDB_DECODE_PLAN` 函数可以用来解码 TiDB 执行计划。你可以在慢查询日志中找到这些计划。 + +### 语法图 + +```ebnf+diagram +TableStmt ::= + "TIDB_DECODE_PLAN(" STR ")" +``` + +### 示例 + +{{< copyable "sql" >}} + +```sql +SELECT tidb_decode_plan('8QIYMAkzMV83CQEH8E85LjA0CWRhdGE6U2VsZWN0aW9uXzYJOTYwCXRpbWU6NzEzLjHCtXMsIGxvb3BzOjIsIGNvcF90YXNrOiB7bnVtOiAxLCBtYXg6IDU2OC41wgErRHByb2Nfa2V5czogMCwgcnBjXxEpAQwFWBAgNTQ5LglZyGNvcHJfY2FjaGVfaGl0X3JhdGlvOiAwLjAwfQkzLjk5IEtCCU4vQQoxCTFfNgkxXzAJMwm2SGx0KHRlc3QudC5hLCAxMDAwMCkNuQRrdgmiAHsFbBQzMTMuOMIBmQnEDDk2MH0BUgEEGAoyCTQzXzUFVwX1oGFibGU6dCwga2VlcCBvcmRlcjpmYWxzZSwgc3RhdHM6cHNldWRvCTk2ISE2aAAIMTUzXmYA')\G +``` + +```sql +*************************** 1. row *************************** + tidb_decode_plan('8QIYMAkzMV83CQEH8E85LjA0CWRhdGE6U2VsZWN0aW9uXzYJOTYwCXRpbWU6NzEzLjHCtXMsIGxvb3BzOjIsIGNvcF90YXNrOiB7bnVtOiAxLCBtYXg6IDU2OC41wgErRHByb2Nfa2V5czogMCwgcnBjXxEpAQwFWBAgNTQ5LglZyGNvcHJfY2FjaGVfaGl0X3JhdGlvOiAwLjAwfQkzLjk5IEtCCU4vQQoxCTFfNgkxXz: id task estRows operator info actRows execution info memory disk + TableReader_7 root 319.04 data:Selection_6 960 time:713.1µs, loops:2, cop_task: {num: 1, max: 568.5µs, proc_keys: 0, rpc_num: 1, rpc_time: 549.1µs, copr_cache_hit_ratio: 0.00} 3.99 KB N/A + └─Selection_6 cop[tikv] 319.04 lt(test.t.a, 10000) 960 tikv_task:{time:313.8µs, loops:960} N/A N/A + └─TableFullScan_5 cop[tikv] 960 table:t, keep order:false, stats:pseudo 960 tikv_task:{time:153µs, loops:960} N/A N/A +``` + +### MySQL 兼容性 + +`TIDB_DECODE_PLAN` 是 TiDB 的特有函数,和 MySQL 不兼容。 + +## TIDB_IS_DDL_OWNER + +`TIDB_IS_DDL_OWNER` 函数用来检查你连接的 TiDB 实例是否是 DDL Owner。DDL Owner 是代表集群中的所有其他节点执行 DDL 语句的 TiDB 实例。 + +### 语法图 + +```ebnf+diagram +TableStmt ::= + "TIDB_IS_DDL_OWNER())" +``` + +### 示例 + +{{< copyable "sql" >}} + +```sql +SELECT tidb_is_ddl_owner(); +``` + +```sql ++---------------------+ +| tidb_is_ddl_owner() | ++---------------------+ +| 1 | ++---------------------+ +1 row in set (0.00 sec) +``` + +### MySQL 兼容性 + +`TIDB_IS_DDL_OWNER` 是 TiDB 的特有函数,和 MySQL 不兼容。 + +### 另请参阅 + +- [ADMIN SHOW DDL](/sql-statements/sql-statement-admin-show-ddl.md) +- [ADMIN CANCEL DDL](/sql-statements/sql-statement-admin-cancel-ddl.md) + +## TIDB_PARSE_TSO + +`TIDB_PARSE_TSO` 函数可以用来从 TiDB TSO 时间戳中提取物理时间戳。 + +TSO 指 Time Stamp Oracle,是 PD (place Driver) 为每个事务提供的单调递增的时间戳。 + +TSO 是一串包括以下两部分的数字: + +- 一个物理时间戳 +- 一个逻辑计数器 + +### 语法图 + +```ebnf+diagram +TableStmt ::= + "TIDB_PARSE_TSO(" NUM ")" +``` + +### 示例 + +{{< copyable "sql" >}} + +```sql +BEGIN; +SELECT TIDB_PARSE_TSO(@@tidb_current_ts); +ROLLBACK; +``` + +```sql ++-----------------------------------+ +| TIDB_PARSE_TSO(@@tidb_current_ts) | ++-----------------------------------+ +| 2021-05-26 11:33:37.776000 | ++-----------------------------------+ +1 row in set (0.0012 sec) +``` + +这里使用 `TIDB_PARSE_TSO` 从 `tidb_current_ts` 会话变量可用的时间戳编号中提取物理时间戳。因为每个事务都会给出时间戳,所以此函数在事务中运行。 + +### MySQL 兼容性 + +`TIDB_PARSE_TSO` 是 TiDB 的特有函数,和 MySQL 不兼容。 + +### 另请参阅 + +- [`tidb_current_ts`](/system-variables.md#tidb_current_ts) + +## TIDB_VERSION + +`TIDB_VERSION` 函数可以用来获取你连接的 TiDB 服务器的版本和内部版本详细信息。你可以在 GitHub 上提交 issue 时使用此函数。 + +### 语法图 + +```ebnf+diagram +TableStmt ::= + "TIDB_VERSION()" +``` + +### 示例 + +{{< copyable "sql" >}} + +```sql +SELECT TIDB_VERSION()\G +``` + +```sql +*************************** 1. row *************************** +TIDB_VERSION(): Release Version: v5.1.0-alpha-13-gd5e0ed0aa-dirty +Edition: Community +Git Commit Hash: d5e0ed0aaed72d2f2dfe24e9deec31cb6cb5fdf0 +Git Branch: master +UTC Build Time: 2021-05-24 14:39:20 +GoVersion: go1.13 +Race Enabled: false +TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306 +Check Table Before Drop: false +1 row in set (0.00 sec) +``` + +### MySQL 兼容性 + +`TIDB_VERSION` 是 TiDB 的特有函数,和 MySQL 不兼容。如果你需要兼容 MySQL,可以使用 `VERSION` 获取版本信息,但结果不包含详细的构建信息。 \ No newline at end of file From 2414c3f68adbd0796cf7358878b97fa60aee7e49 Mon Sep 17 00:00:00 2001 From: Xiaozhen Liu <82579298+Liuxiaozhen12@users.noreply.github.com> Date: Thu, 1 Jul 2021 10:21:48 +0800 Subject: [PATCH 2/9] Apply suggestions from code review Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> --- TOC.md | 2 +- functions-and-operators/tidb-functions.md | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/TOC.md b/TOC.md index 46994ae018b8..04257516d51c 100644 --- a/TOC.md +++ b/TOC.md @@ -395,7 +395,7 @@ + [精度数学](/functions-and-operators/precision-math.md) + [集合运算](/functions-and-operators/set-operators.md) + [下推到 TiKV 的表达式列表](/functions-and-operators/expressions-pushed-down.md) - + [TiDB 特有函数](/functions-and-operators/tidb-functions.md) + + [TiDB 特有的函数](/functions-and-operators/tidb-functions.md) + [聚簇索引](/clustered-indexes.md) + [约束](/constraints.md) + [生成列](/generated-columns.md) diff --git a/functions-and-operators/tidb-functions.md b/functions-and-operators/tidb-functions.md index 30a4f73b3eff..e9640690a518 100644 --- a/functions-and-operators/tidb-functions.md +++ b/functions-and-operators/tidb-functions.md @@ -1,5 +1,5 @@ --- -title: TiDB 特有函数 +title: TiDB 特有的函数 summary: 学习使用 TiDB 的特有函数。 --- @@ -43,7 +43,7 @@ TIDB_DECODE_KEY(START_KEY): {"_tidb_rowid":1958897,"table_id":"59"} ## TIDB_DECODE_PLAN -`TIDB_DECODE_PLAN` 函数可以用来解码 TiDB 执行计划。你可以在慢查询日志中找到这些计划。 +`TIDB_DECODE_PLAN` 函数可用来解码 TiDB 执行计划。你可以在慢查询日志中找到 TiDB 执行计划。 ### 语法图 @@ -70,11 +70,11 @@ SELECT tidb_decode_plan('8QIYMAkzMV83CQEH8E85LjA0CWRhdGE6U2VsZWN0aW9uXzYJOTYwCXR ### MySQL 兼容性 -`TIDB_DECODE_PLAN` 是 TiDB 的特有函数,和 MySQL 不兼容。 +`TIDB_DECODE_PLAN` 是 TiDB 特有的函数,和 MySQL 不兼容。 ## TIDB_IS_DDL_OWNER -`TIDB_IS_DDL_OWNER` 函数用来检查你连接的 TiDB 实例是否是 DDL Owner。DDL Owner 是代表集群中的所有其他节点执行 DDL 语句的 TiDB 实例。 +`TIDB_IS_DDL_OWNER` 函数用来检查你连接的 TiDB 实例是否是 DDL Owner。DDL Owner 是代表集群中所有其他节点执行 DDL 语句的 TiDB 实例。 ### 语法图 @@ -113,9 +113,9 @@ SELECT tidb_is_ddl_owner(); `TIDB_PARSE_TSO` 函数可以用来从 TiDB TSO 时间戳中提取物理时间戳。 -TSO 指 Time Stamp Oracle,是 PD (place Driver) 为每个事务提供的单调递增的时间戳。 +TSO 指 Time Stamp Oracle,是 PD (Placement Driver) 为每个事务提供的单调递增的时间戳。 -TSO 是一串包括以下两部分的数字: +TSO 是一串数字,包含以下两部分: - 一个物理时间戳 - 一个逻辑计数器 @@ -146,7 +146,7 @@ ROLLBACK; 1 row in set (0.0012 sec) ``` -这里使用 `TIDB_PARSE_TSO` 从 `tidb_current_ts` 会话变量可用的时间戳编号中提取物理时间戳。因为每个事务都会给出时间戳,所以此函数在事务中运行。 +以上示例使用 `TIDB_PARSE_TSO` 函数从 `tidb_current_ts` 会话变量提供的可用时间戳编号中提取物理时间戳。因为每个事务都会分配到时间戳,所以此函数在事务中运行。 ### MySQL 兼容性 @@ -158,7 +158,7 @@ ROLLBACK; ## TIDB_VERSION -`TIDB_VERSION` 函数可以用来获取你连接的 TiDB 服务器的版本和内部版本详细信息。你可以在 GitHub 上提交 issue 时使用此函数。 +`TIDB_VERSION` 函数用于获取当前连接的 TiDB 服务器版本和构建详细信息。你向 GitHub 上提交 issue 时,你可使用此函数获取相关信息。 ### 语法图 @@ -191,4 +191,4 @@ Check Table Before Drop: false ### MySQL 兼容性 -`TIDB_VERSION` 是 TiDB 的特有函数,和 MySQL 不兼容。如果你需要兼容 MySQL,可以使用 `VERSION` 获取版本信息,但结果不包含详细的构建信息。 \ No newline at end of file +`TIDB_VERSION` 是 TiDB 的特有函数,和 MySQL 不兼容。如果要求兼容 MySQL,可以使用 `VERSION` 获取版本信息,但结果不包含详细的构建信息。 From 2172d5e93765b6e1190c9dfd0c67b6373b0845b6 Mon Sep 17 00:00:00 2001 From: Xiaozhen Liu <82579298+Liuxiaozhen12@users.noreply.github.com> Date: Thu, 1 Jul 2021 10:26:41 +0800 Subject: [PATCH 3/9] further changes based on suggestions --- functions-and-operators/tidb-functions.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/functions-and-operators/tidb-functions.md b/functions-and-operators/tidb-functions.md index e9640690a518..25e0e53d11f1 100644 --- a/functions-and-operators/tidb-functions.md +++ b/functions-and-operators/tidb-functions.md @@ -1,9 +1,9 @@ --- title: TiDB 特有的函数 -summary: 学习使用 TiDB 的特有函数。 +summary: 学习使用 TiDB 特有的函数。 --- -# TiDB 特有函数 +# TiDB 特有的函数 本文档介绍 TiDB 特有的函数。 @@ -39,7 +39,7 @@ TIDB_DECODE_KEY(START_KEY): {"_tidb_rowid":1958897,"table_id":"59"} ### MySQL 兼容性 -`TIDB_DECODE_KEY` 是 TiDB 的特有函数,和 MySQL 不兼容。 +`TIDB_DECODE_KEY` 是 TiDB 特有的函数,和 MySQL 不兼容。 ## TIDB_DECODE_PLAN @@ -102,7 +102,7 @@ SELECT tidb_is_ddl_owner(); ### MySQL 兼容性 -`TIDB_IS_DDL_OWNER` 是 TiDB 的特有函数,和 MySQL 不兼容。 +`TIDB_IS_DDL_OWNER` 是 TiDB 特有的函数,和 MySQL 不兼容。 ### 另请参阅 @@ -150,7 +150,7 @@ ROLLBACK; ### MySQL 兼容性 -`TIDB_PARSE_TSO` 是 TiDB 的特有函数,和 MySQL 不兼容。 +`TIDB_PARSE_TSO` 是 TiDB 特有的函数,和 MySQL 不兼容。 ### 另请参阅 @@ -158,7 +158,7 @@ ROLLBACK; ## TIDB_VERSION -`TIDB_VERSION` 函数用于获取当前连接的 TiDB 服务器版本和构建详细信息。你向 GitHub 上提交 issue 时,你可使用此函数获取相关信息。 +`TIDB_VERSION` 函数用于获取当前连接的 TiDB 服务器版本和构建详细信息。向 GitHub 上提交 issue 时,你可使用此函数获取相关信息。 ### 语法图 @@ -191,4 +191,4 @@ Check Table Before Drop: false ### MySQL 兼容性 -`TIDB_VERSION` 是 TiDB 的特有函数,和 MySQL 不兼容。如果要求兼容 MySQL,可以使用 `VERSION` 获取版本信息,但结果不包含详细的构建信息。 +`TIDB_VERSION` 是 TiDB 特有的函数,和 MySQL 不兼容。如果要求兼容 MySQL,可以使用 `VERSION` 获取版本信息,但结果不包含详细的构建信息。 From fbfc29ae4bb2757ac08a5eecc42d0de95819029f Mon Sep 17 00:00:00 2001 From: Xiaozhen Liu <82579298+Liuxiaozhen12@users.noreply.github.com> Date: Thu, 1 Jul 2021 10:30:09 +0800 Subject: [PATCH 4/9] further changes based on suggestions --- functions-and-operators/tidb-functions.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/functions-and-operators/tidb-functions.md b/functions-and-operators/tidb-functions.md index 25e0e53d11f1..f7b260172ccb 100644 --- a/functions-and-operators/tidb-functions.md +++ b/functions-and-operators/tidb-functions.md @@ -43,7 +43,7 @@ TIDB_DECODE_KEY(START_KEY): {"_tidb_rowid":1958897,"table_id":"59"} ## TIDB_DECODE_PLAN -`TIDB_DECODE_PLAN` 函数可用来解码 TiDB 执行计划。你可以在慢查询日志中找到 TiDB 执行计划。 +`TIDB_DECODE_PLAN` 函数可用于解码 TiDB 执行计划。你可以在慢查询日志中找到 TiDB 执行计划。 ### 语法图 @@ -74,7 +74,7 @@ SELECT tidb_decode_plan('8QIYMAkzMV83CQEH8E85LjA0CWRhdGE6U2VsZWN0aW9uXzYJOTYwCXR ## TIDB_IS_DDL_OWNER -`TIDB_IS_DDL_OWNER` 函数用来检查你连接的 TiDB 实例是否是 DDL Owner。DDL Owner 是代表集群中所有其他节点执行 DDL 语句的 TiDB 实例。 +`TIDB_IS_DDL_OWNER` 函数可用于检查你连接的 TiDB 实例是否是 DDL Owner。DDL Owner 是代表集群中所有其他节点执行 DDL 语句的 TiDB 实例。 ### 语法图 @@ -111,7 +111,7 @@ SELECT tidb_is_ddl_owner(); ## TIDB_PARSE_TSO -`TIDB_PARSE_TSO` 函数可以用来从 TiDB TSO 时间戳中提取物理时间戳。 +`TIDB_PARSE_TSO` 函数可用于从 TiDB TSO 时间戳中提取物理时间戳。 TSO 指 Time Stamp Oracle,是 PD (Placement Driver) 为每个事务提供的单调递增的时间戳。 @@ -158,7 +158,7 @@ ROLLBACK; ## TIDB_VERSION -`TIDB_VERSION` 函数用于获取当前连接的 TiDB 服务器版本和构建详细信息。向 GitHub 上提交 issue 时,你可使用此函数获取相关信息。 +`TIDB_VERSION` 函数可用于获取当前连接的 TiDB 服务器版本和构建详细信息。向 GitHub 上提交 issue 时,你可使用此函数获取相关信息。 ### 语法图 From 791006730f1230249c238b36aa22c7609bc99f30 Mon Sep 17 00:00:00 2001 From: Xiaozhen Liu <82579298+Liuxiaozhen12@users.noreply.github.com> Date: Mon, 5 Jul 2021 14:38:10 +0800 Subject: [PATCH 5/9] Apply suggestions from code review Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> --- 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 f7b260172ccb..9cfea4acd136 100644 --- a/functions-and-operators/tidb-functions.md +++ b/functions-and-operators/tidb-functions.md @@ -9,7 +9,7 @@ summary: 学习使用 TiDB 特有的函数。 ## TIDB_BOUNDED_STALENESS -`TIDB_BOUNDED_STALENESS` 是 TiDB 内部的函数。 +`TIDB_BOUNDED_STALENESS` 是 TiDB 的内部函数。 ## TIDB_DECODE_KEY @@ -74,7 +74,7 @@ SELECT tidb_decode_plan('8QIYMAkzMV83CQEH8E85LjA0CWRhdGE6U2VsZWN0aW9uXzYJOTYwCXR ## TIDB_IS_DDL_OWNER -`TIDB_IS_DDL_OWNER` 函数可用于检查你连接的 TiDB 实例是否是 DDL Owner。DDL Owner 是代表集群中所有其他节点执行 DDL 语句的 TiDB 实例。 +`TIDB_IS_DDL_OWNER` 函数可用于检查你连接的 TiDB 实例是否是 DDL Owner。DDL Owner 代表集群中所有其他节点执行 DDL 语句的 TiDB 实例。 ### 语法图 From 6a9657627f48bce813ebfe1b51c5765890be782c Mon Sep 17 00:00:00 2001 From: Liuxiaozhen12 Date: Mon, 5 Jul 2021 14:45:31 +0800 Subject: [PATCH 6/9] further changes based on suggestions --- functions-and-operators/tidb-functions.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/functions-and-operators/tidb-functions.md b/functions-and-operators/tidb-functions.md index f7b260172ccb..7a704a521c23 100644 --- a/functions-and-operators/tidb-functions.md +++ b/functions-and-operators/tidb-functions.md @@ -13,7 +13,7 @@ summary: 学习使用 TiDB 特有的函数。 ## TIDB_DECODE_KEY -`TIDB_DECODE_KEY` 函数可用于将 TiDB 编码的键输入解码为包含 `_tidb_rowid` 和 `table_id` 的 JSON 结构。你可以在一些系统表和日志输出中找到 TiDB 的编码键。 +`TIDB_DECODE_KEY` 函数用于将 TiDB 编码的键输入解码为包含 `_tidb_rowid` 和 `table_id` 的 JSON 结构。你可以在一些系统表和日志输出中找到 TiDB 的编码键。 ### 语法图 @@ -43,7 +43,7 @@ TIDB_DECODE_KEY(START_KEY): {"_tidb_rowid":1958897,"table_id":"59"} ## TIDB_DECODE_PLAN -`TIDB_DECODE_PLAN` 函数可用于解码 TiDB 执行计划。你可以在慢查询日志中找到 TiDB 执行计划。 +`TIDB_DECODE_PLAN` 函数用于解码 TiDB 执行计划。你可以在慢查询日志中找到 TiDB 执行计划。 ### 语法图 @@ -74,7 +74,7 @@ SELECT tidb_decode_plan('8QIYMAkzMV83CQEH8E85LjA0CWRhdGE6U2VsZWN0aW9uXzYJOTYwCXR ## TIDB_IS_DDL_OWNER -`TIDB_IS_DDL_OWNER` 函数可用于检查你连接的 TiDB 实例是否是 DDL Owner。DDL Owner 是代表集群中所有其他节点执行 DDL 语句的 TiDB 实例。 +`TIDB_IS_DDL_OWNER` 函数用于检查你连接的 TiDB 实例是否是 DDL Owner。DDL Owner 是代表集群中所有其他节点执行 DDL 语句的 TiDB 实例。 ### 语法图 @@ -111,7 +111,7 @@ SELECT tidb_is_ddl_owner(); ## TIDB_PARSE_TSO -`TIDB_PARSE_TSO` 函数可用于从 TiDB TSO 时间戳中提取物理时间戳。 +`TIDB_PARSE_TSO` 函数用于从 TiDB TSO 时间戳中提取物理时间戳。 TSO 指 Time Stamp Oracle,是 PD (Placement Driver) 为每个事务提供的单调递增的时间戳。 @@ -158,7 +158,7 @@ ROLLBACK; ## TIDB_VERSION -`TIDB_VERSION` 函数可用于获取当前连接的 TiDB 服务器版本和构建详细信息。向 GitHub 上提交 issue 时,你可使用此函数获取相关信息。 +`TIDB_VERSION` 函数用于获取当前连接的 TiDB 服务器版本和构建详细信息。向 GitHub 上提交 issue 时,你可使用此函数获取相关信息。 ### 语法图 From aa0a3d504c13bbb4224f48d6e75dfdc123d934ee Mon Sep 17 00:00:00 2001 From: Liuxiaozhen12 Date: Mon, 5 Jul 2021 14:52:42 +0800 Subject: [PATCH 7/9] apply suggestions --- functions-and-operators/tidb-functions.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/functions-and-operators/tidb-functions.md b/functions-and-operators/tidb-functions.md index 9cfea4acd136..753022a764cc 100644 --- a/functions-and-operators/tidb-functions.md +++ b/functions-and-operators/tidb-functions.md @@ -13,7 +13,7 @@ summary: 学习使用 TiDB 特有的函数。 ## TIDB_DECODE_KEY -`TIDB_DECODE_KEY` 函数可用于将 TiDB 编码的键输入解码为包含 `_tidb_rowid` 和 `table_id` 的 JSON 结构。你可以在一些系统表和日志输出中找到 TiDB 的编码键。 +`TIDB_DECODE_KEY` 函数用于将 TiDB 编码的键输入解码为包含 `_tidb_rowid` 和 `table_id` 的 JSON 结构。你可以在一些系统表和日志输出中找到 TiDB 的编码键。 ### 语法图 @@ -43,7 +43,7 @@ TIDB_DECODE_KEY(START_KEY): {"_tidb_rowid":1958897,"table_id":"59"} ## TIDB_DECODE_PLAN -`TIDB_DECODE_PLAN` 函数可用于解码 TiDB 执行计划。你可以在慢查询日志中找到 TiDB 执行计划。 +`TIDB_DECODE_PLAN` 函数用于解码 TiDB 执行计划。你可以在慢查询日志中找到 TiDB 执行计划。 ### 语法图 @@ -74,7 +74,7 @@ SELECT tidb_decode_plan('8QIYMAkzMV83CQEH8E85LjA0CWRhdGE6U2VsZWN0aW9uXzYJOTYwCXR ## TIDB_IS_DDL_OWNER -`TIDB_IS_DDL_OWNER` 函数可用于检查你连接的 TiDB 实例是否是 DDL Owner。DDL Owner 代表集群中所有其他节点执行 DDL 语句的 TiDB 实例。 +`TIDB_IS_DDL_OWNER` 函数用于检查你连接的 TiDB 实例是否是 DDL Owner。DDL Owner 代表集群中所有其他节点执行 DDL 语句的 TiDB 实例。 ### 语法图 @@ -111,7 +111,7 @@ SELECT tidb_is_ddl_owner(); ## TIDB_PARSE_TSO -`TIDB_PARSE_TSO` 函数可用于从 TiDB TSO 时间戳中提取物理时间戳。 +`TIDB_PARSE_TSO` 函数用于从 TiDB TSO 时间戳中提取物理时间戳。 TSO 指 Time Stamp Oracle,是 PD (Placement Driver) 为每个事务提供的单调递增的时间戳。 @@ -158,7 +158,7 @@ ROLLBACK; ## TIDB_VERSION -`TIDB_VERSION` 函数可用于获取当前连接的 TiDB 服务器版本和构建详细信息。向 GitHub 上提交 issue 时,你可使用此函数获取相关信息。 +`TIDB_VERSION` 函数用于获取当前连接的 TiDB 服务器版本和构建详细信息。向 GitHub 上提交 issue 时,你可使用此函数获取相关信息。 ### 语法图 From 2f539cead8394fe21726fd83344c140e2cdc6ee3 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 5 Jul 2021 15:35:11 +0800 Subject: [PATCH 8/9] Update functions-and-operators/tidb-functions.md --- functions-and-operators/tidb-functions.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/functions-and-operators/tidb-functions.md b/functions-and-operators/tidb-functions.md index 753022a764cc..7b1bd2c462b9 100644 --- a/functions-and-operators/tidb-functions.md +++ b/functions-and-operators/tidb-functions.md @@ -9,7 +9,9 @@ summary: 学习使用 TiDB 特有的函数。 ## TIDB_BOUNDED_STALENESS -`TIDB_BOUNDED_STALENESS` 是 TiDB 的内部函数。 +`TIDB_BOUNDED_STALENESS` 是 TiDB 的内部函数,用于指定一个时间范围。用法为 `TIDB_BOUNDED_STALENESS(t1, t2)`,其中 t1 和 t2 为时间范围的两端,支持使用日期时间和时间函数。使用该函数。 + +TiDB 会在指定的时间范围内选择一个合适的时间戳,该时间戳能保证所访问的副本上不存在开始于这个时间戳之前且还没有提交的相关事务,即能保证所访问的可用副本上执行读取操作而且不会被阻塞。 ## TIDB_DECODE_KEY From b90702b6f1a31e74d67bef9d6e7b70baaa6c6b10 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 5 Jul 2021 15:36:49 +0800 Subject: [PATCH 9/9] Update functions-and-operators/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 7b1bd2c462b9..39909c27bec6 100644 --- a/functions-and-operators/tidb-functions.md +++ b/functions-and-operators/tidb-functions.md @@ -9,9 +9,9 @@ summary: 学习使用 TiDB 特有的函数。 ## TIDB_BOUNDED_STALENESS -`TIDB_BOUNDED_STALENESS` 是 TiDB 的内部函数,用于指定一个时间范围。用法为 `TIDB_BOUNDED_STALENESS(t1, t2)`,其中 t1 和 t2 为时间范围的两端,支持使用日期时间和时间函数。使用该函数。 +`TIDB_BOUNDED_STALENESS` 是 TiDB 的内部函数,用于指定一个时间范围。用法为 `TIDB_BOUNDED_STALENESS(t1, t2)`,其中 t1 和 t2 为时间范围的两端,支持使用日期时间和时间函数。 -TiDB 会在指定的时间范围内选择一个合适的时间戳,该时间戳能保证所访问的副本上不存在开始于这个时间戳之前且还没有提交的相关事务,即能保证所访问的可用副本上执行读取操作而且不会被阻塞。 +使用该函数,TiDB 会在指定的时间范围内选择一个合适的时间戳,该时间戳能保证所访问的副本上不存在开始于这个时间戳之前且还没有提交的相关事务,即能保证所访问的可用副本上执行读取操作而且不会被阻塞。 ## TIDB_DECODE_KEY