From ce8b2705316180cce2012353f609aa45c47b2da5 Mon Sep 17 00:00:00 2001 From: Null not nil <67764674+nullnotnil@users.noreply.github.com> Date: Fri, 10 Jul 2020 05:27:47 -0600 Subject: [PATCH 1/5] cherry pick #3192 to release-3.0 Signed-off-by: ti-srebot --- .github/assign-by-files.yml | 121 ++++++++++++++++++++++++++++++++++++ TOC.md | 29 +++++++++ mysql-compatibility.md | 12 ++++ sql-mode.md | 16 ++--- 4 files changed, 170 insertions(+), 8 deletions(-) create mode 100644 .github/assign-by-files.yml diff --git a/.github/assign-by-files.yml b/.github/assign-by-files.yml new file mode 100644 index 0000000000000..936f0fc22bf24 --- /dev/null +++ b/.github/assign-by-files.yml @@ -0,0 +1,121 @@ +--- +# Changing all md files should request a language review in case of format failures. +# TomShawn is the repo administrator. + +# you can use glob pattern + +# You can set multiple reviewers +'.github/**/*.yml': + - yikeke + - ran-huang + +# 'benchmark/**/*.md': +# - jackysp +# - kissmydb +# - TomShawn + +'best-practices/**/*.md': + - kissmydb + - lilin90 + - TomShawn + +'br/**/*.md': + - kissmydb + - WangXiangUSTC + - TomShawn + +'config-templates/**/*.yaml': + - kissmydb + - superlzs0476 + - TomShawn + +'dashboard/**/*.md': + - breeswish + - hundundm + - kissmydb + - TomShawn + +'faq/**/*.md': + - kissmydb + - TomShawn + +# 'functions-and-operators/**/*.md': +# - kissmydb +# - TomShawn + +# 'media/**/*': +# - TomShawn +# - lilin90 + +'releases/**/*.md': + - scsldb + - uglyengineer + - TomShawn + +'resources/**/*': + - yikeke + - lilin90 + +'scripts/**/*': + - yikeke + - lilin90 + +'sql-statements/**/*.md': + - bb7133 + - zimulala + - TomShawn + - nullnotnil + +'mysql-compatibility.md': + - nullnotnil + +'sql-mode.md': + - nullnotnil + +'information-schema/**/*.md': + - nullnotnil + +# 'storage-engine/**/*.md': +# - TomShawn +# - + +# 'sync-diff-inspector/**/*.md': +# - TomShawn +# - + +# 'system-tables/**/*.md': +# - TomShawn +# - + +'ticdc/**/*.md': + - WangXiangUSTC + - 3pointer + - kissmydb + - TomShawn + +'tidb-binlog/**/*.md': + - july2993 + - kissmydb + - TomShawn + +'tidb-lightning/**/*.md': + - WangXiangUSTC + - kissmydb + - TomShawn + +'tiflash/**/*.md': + - ilovesoup + - zanmato1984 + - kissmydb + - yikeke + +'tiup/**/*.md': + - lonng + - lucklove + - kissmydb + - yikeke + +# All other file pattern will match the following: + +'**/*': + - TomShawn diff --git a/TOC.md b/TOC.md index 517227ebfb5ae..09eafb6264292 100644 --- a/TOC.md +++ b/TOC.md @@ -5,8 +5,37 @@ ## Documentation List +<<<<<<< HEAD + Introduction - [TiDB Introduction](/overview.md) +======= ++ About TiDB + + [TiDB Introduction](/overview.md) + + [What's New in TiDB 4.0](/whats-new-in-tidb-4.0.md) + + [Basic Features](/basic-features.md) + + [MySQL Compatibility](/mysql-compatibility.md) + + [TiDB Limitations](/tidb-limitations.md) ++ Quick Start + + [Try Out TiDB](/quick-start-with-tidb.md) + + [Learn TiDB SQL](/basic-sql-operations.md) ++ Deploy + + [Software and Hardware Requirements](/hardware-and-software-requirements.md) + + [Environment Configuration Checklist](/check-before-deployment.md) + + Topology Patterns + + [Minimal Topology](/minimal-deployment-topology.md) + + [TiFlash Topology](/tiflash-deployment-topology.md) + + [TiCDC Topology](/ticdc-deployment-topology.md) + + [TiDB Binlog Topology](/tidb-binlog-deployment-topology.md) + + [Cross-DC Topology](/geo-distributed-deployment-topology.md) + + [Hybrid Topology](/hybrid-deployment-topology.md) + + Install and Start + + Linux OS + + [Use TiUP (Recommended)](/production-deployment-using-tiup.md) + + [Use TiUP Offline (Recommended)](/production-offline-deployment-using-tiup.md) + + [Use TiDB Ansible](/online-deployment-using-ansible.md) + + [Use TiDB Ansible Offline](/offline-deployment-using-ansible.md) + + [Verify Cluster Status](/post-installation-check.md) +>>>>>>> ab766b1... sql-mode: update compatibility (#3192) + Benchmarks - [How to Test TiDB Using Sysbench](/benchmark/benchmark-tidb-using-sysbench.md) - [How to Run TPC-C Test on TiDB](/benchmark/benchmark-tidb-using-tpcc.md) diff --git a/mysql-compatibility.md b/mysql-compatibility.md index fa93682c935ac..610b1df631cdb 100644 --- a/mysql-compatibility.md +++ b/mysql-compatibility.md @@ -9,9 +9,13 @@ aliases: ['/docs/v3.0/mysql-compatibility/','/docs/v3.0/reference/mysql-compatib TiDB supports both the MySQL wire protocol and the majority of its syntax. This means that you can use your existing MySQL connectors and clients, and your existing applications can often be migrated to TiDB without changing any application code. +<<<<<<< HEAD Currently TiDB Server advertises itself as MySQL 5.7 and works with most MySQL database tools such as PHPMyAdmin, Navicat, MySQL Workbench, mysqldump, and Mydumper/myloader. However, TiDB does not support some of MySQL features or behaves differently from MySQL because these features cannot be easily implemented in a distributed system. For some MySQL syntax, TiDB can parse but does not process it. For example, the `ENGINE` table option in the `CREATE TABLE` statement can be parsed but is ignored. +======= +However, some features of MySQL are not supported. This could be because there is now a better way to solve the problem (such as XML functions superceded by JSON), or a lack of current demand versus effort required (such as stored procedures and functions). Some features might also be difficult to implement as a distributed system. +>>>>>>> ab766b1... sql-mode: update compatibility (#3192) > **Note:** > @@ -187,6 +191,7 @@ Architecturally, TiDB does support a similar storage engine abstraction to MySQL ### SQL modes +<<<<<<< HEAD TiDB supports **all of the SQL modes** from MySQL 5.7 with minor exceptions: - The compatibility modes deprecated in MySQL 5.7 and removed in MySQL 8.0 are not supported (such as `ORACLE`, `POSTGRESQL` etc). @@ -214,6 +219,13 @@ tidb> SELECT /*!90000 "I should not run", */ "I should run" FROM dual; +------------------+--------------+ 1 row in set (0.00 sec) ``` +======= +TiDB supports most [SQL modes](/sql-mode.md): + +- The compatibility modes, such as `ORACLE` and `POSTGRESQL` are parsed but ignored. Compatibility modes are deprecated in MySQL 5.7 and removed in MySQL 8.0. +- The `ONLY_FULL_GROUP_BY` mode has minor [semantic differences](/functions-and-operators/aggregate-group-by-functions.md#differences-from-mysql) from MySQL 5.7. +- The `NO_DIR_IN_CREATE` and `NO_ENGINE_SUBSTITUTION` SQL modes in MySQL are accepted for compatibility, but are not applicable to TiDB. +>>>>>>> ab766b1... sql-mode: update compatibility (#3192) ### Default differences diff --git a/sql-mode.md b/sql-mode.md index d8eabe1d14b80..dd8d38320b914 100644 --- a/sql-mode.md +++ b/sql-mode.md @@ -49,12 +49,12 @@ Ensure that you have `SUPER` privilege when setting SQL mode at `GLOBAL` level, | `NO_ENGINE_SUBSTITUTION` | Prevents the automatic replacement of storage engines if the required storage engine is disabled or not compiled. (syntax support only)| | `PAD_CHAR_TO_FULL_LENGTH` | If this mode is enabled, the system does not trim the trailing spaces for `CHAR` types. (full support) | | `REAL_AS_FLOAT` | Treats `REAL` as the synonym of `FLOAT`, not the synonym of `DOUBLE` (full support)| -| `POSTGRESQL` | Equivalent to `PIPES_AS_CONCAT`, `ANSI_QUOTES`, `IGNORE_SPACE`, `NO_KEY_OPTIONS`, `NO_TABLE_OPTIONS`, `NO_FIELD_OPTIONS` (full support)| -| `MSSQL` | Equivalent to `PIPES_AS_CONCAT`, `ANSI_QUOTES`, `IGNORE_SPACE`, `NO_KEY_OPTIONS`, `NO_TABLE_OPTIONS`, `NO_FIELD_OPTIONS` (full support)| -| `DB2` | Equivalent to `PIPES_AS_CONCAT`, `ANSI_QUOTES`, `IGNORE_SPACE`, `NO_KEY_OPTIONS`, `NO_TABLE_OPTIONS`, `NO_FIELD_OPTIONS` (full support)| +| `POSTGRESQL` | Equivalent to `PIPES_AS_CONCAT`, `ANSI_QUOTES`, `IGNORE_SPACE`, `NO_KEY_OPTIONS`, `NO_TABLE_OPTIONS`, `NO_FIELD_OPTIONS` (syntax support only)| +| `MSSQL` | Equivalent to `PIPES_AS_CONCAT`, `ANSI_QUOTES`, `IGNORE_SPACE`, `NO_KEY_OPTIONS`, `NO_TABLE_OPTIONS`, `NO_FIELD_OPTIONS` (syntax support only)| +| `DB2` | Equivalent to `PIPES_AS_CONCAT`, `ANSI_QUOTES`, `IGNORE_SPACE`, `NO_KEY_OPTIONS`, `NO_TABLE_OPTIONS`, `NO_FIELD_OPTIONS` (syntax support only)| | `MAXDB` | Equivalent to `PIPES_AS_CONCAT`, `ANSI_QUOTES`, `IGNORE_SPACE`, `NO_KEY_OPTIONS`, `NO_TABLE_OPTIONS`, `NO_FIELD_OPTIONS`, `NO_AUTO_CREATE_USER` (full support)| -| `MySQL323` | Equivalent to `NO_FIELD_OPTIONS`, `HIGH_NOT_PRECEDENCE` (full support)| -| `MYSQL40` | Equivalent to `NO_FIELD_OPTIONS`, `HIGH_NOT_PRECEDENCE` (full support)| -| `ANSI` | Equivalent to `REAL_AS_FLOAT`, `PIPES_AS_CONCAT`, `ANSI_QUOTES`, `IGNORE_SPACE` (full support)| -| `TRADITIONAL` | Equivalent to `STRICT_TRANS_TABLES`, `STRICT_ALL_TABLES`, `NO_ZERO_IN_DATE`, `NO_ZERO_DATE`, `ERROR_FOR_DIVISION_BY_ZERO`, `NO_AUTO_CREATE_USER` (full support) | -| `ORACLE` | Equivalent to `PIPES_AS_CONCAT`, `ANSI_QUOTES`, `IGNORE_SPACE`, `NO_KEY_OPTIONS`, `NO_TABLE_OPTIONS`, `NO_FIELD_OPTIONS`, `NO_AUTO_CREATE_USER` (full support)| +| `MySQL323` | Equivalent to `NO_FIELD_OPTIONS`, `HIGH_NOT_PRECEDENCE` (syntax support only)| +| `MYSQL40` | Equivalent to `NO_FIELD_OPTIONS`, `HIGH_NOT_PRECEDENCE` (syntax support only)| +| `ANSI` | Equivalent to `REAL_AS_FLOAT`, `PIPES_AS_CONCAT`, `ANSI_QUOTES`, `IGNORE_SPACE` (syntax support only)| +| `TRADITIONAL` | Equivalent to `STRICT_TRANS_TABLES`, `STRICT_ALL_TABLES`, `NO_ZERO_IN_DATE`, `NO_ZERO_DATE`, `ERROR_FOR_DIVISION_BY_ZERO`, `NO_AUTO_CREATE_USER` (syntax support only) | +| `ORACLE` | Equivalent to `PIPES_AS_CONCAT`, `ANSI_QUOTES`, `IGNORE_SPACE`, `NO_KEY_OPTIONS`, `NO_TABLE_OPTIONS`, `NO_FIELD_OPTIONS`, `NO_AUTO_CREATE_USER` (syntax support only)| From f9b74bafe932a39f08345eaeb61bb086b0a8d9fa Mon Sep 17 00:00:00 2001 From: Null not nil <67764674+nullnotnil@users.noreply.github.com> Date: Fri, 10 Jul 2020 05:32:26 -0600 Subject: [PATCH 2/5] Update TOC.md --- TOC.md | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/TOC.md b/TOC.md index 09eafb6264292..517227ebfb5ae 100644 --- a/TOC.md +++ b/TOC.md @@ -5,37 +5,8 @@ ## Documentation List -<<<<<<< HEAD + Introduction - [TiDB Introduction](/overview.md) -======= -+ About TiDB - + [TiDB Introduction](/overview.md) - + [What's New in TiDB 4.0](/whats-new-in-tidb-4.0.md) - + [Basic Features](/basic-features.md) - + [MySQL Compatibility](/mysql-compatibility.md) - + [TiDB Limitations](/tidb-limitations.md) -+ Quick Start - + [Try Out TiDB](/quick-start-with-tidb.md) - + [Learn TiDB SQL](/basic-sql-operations.md) -+ Deploy - + [Software and Hardware Requirements](/hardware-and-software-requirements.md) - + [Environment Configuration Checklist](/check-before-deployment.md) - + Topology Patterns - + [Minimal Topology](/minimal-deployment-topology.md) - + [TiFlash Topology](/tiflash-deployment-topology.md) - + [TiCDC Topology](/ticdc-deployment-topology.md) - + [TiDB Binlog Topology](/tidb-binlog-deployment-topology.md) - + [Cross-DC Topology](/geo-distributed-deployment-topology.md) - + [Hybrid Topology](/hybrid-deployment-topology.md) - + Install and Start - + Linux OS - + [Use TiUP (Recommended)](/production-deployment-using-tiup.md) - + [Use TiUP Offline (Recommended)](/production-offline-deployment-using-tiup.md) - + [Use TiDB Ansible](/online-deployment-using-ansible.md) - + [Use TiDB Ansible Offline](/offline-deployment-using-ansible.md) - + [Verify Cluster Status](/post-installation-check.md) ->>>>>>> ab766b1... sql-mode: update compatibility (#3192) + Benchmarks - [How to Test TiDB Using Sysbench](/benchmark/benchmark-tidb-using-sysbench.md) - [How to Run TPC-C Test on TiDB](/benchmark/benchmark-tidb-using-tpcc.md) From acdb574d1aac3a298b3aa44c25ab7ea087e4cc3b Mon Sep 17 00:00:00 2001 From: Null not nil <67764674+nullnotnil@users.noreply.github.com> Date: Fri, 10 Jul 2020 05:33:07 -0600 Subject: [PATCH 3/5] Update assign-by-files.yml --- .github/assign-by-files.yml | 120 ------------------------------------ 1 file changed, 120 deletions(-) diff --git a/.github/assign-by-files.yml b/.github/assign-by-files.yml index 936f0fc22bf24..8b137891791fe 100644 --- a/.github/assign-by-files.yml +++ b/.github/assign-by-files.yml @@ -1,121 +1 @@ ---- -# Changing all md files should request a language review in case of format failures. -# TomShawn is the repo administrator. -# you can use glob pattern - -# You can set multiple reviewers -'.github/**/*.yml': - - yikeke - - ran-huang - -# 'benchmark/**/*.md': -# - jackysp -# - kissmydb -# - TomShawn - -'best-practices/**/*.md': - - kissmydb - - lilin90 - - TomShawn - -'br/**/*.md': - - kissmydb - - WangXiangUSTC - - TomShawn - -'config-templates/**/*.yaml': - - kissmydb - - superlzs0476 - - TomShawn - -'dashboard/**/*.md': - - breeswish - - hundundm - - kissmydb - - TomShawn - -'faq/**/*.md': - - kissmydb - - TomShawn - -# 'functions-and-operators/**/*.md': -# - kissmydb -# - TomShawn - -# 'media/**/*': -# - TomShawn -# - lilin90 - -'releases/**/*.md': - - scsldb - - uglyengineer - - TomShawn - -'resources/**/*': - - yikeke - - lilin90 - -'scripts/**/*': - - yikeke - - lilin90 - -'sql-statements/**/*.md': - - bb7133 - - zimulala - - TomShawn - - nullnotnil - -'mysql-compatibility.md': - - nullnotnil - -'sql-mode.md': - - nullnotnil - -'information-schema/**/*.md': - - nullnotnil - -# 'storage-engine/**/*.md': -# - TomShawn -# - - -# 'sync-diff-inspector/**/*.md': -# - TomShawn -# - - -# 'system-tables/**/*.md': -# - TomShawn -# - - -'ticdc/**/*.md': - - WangXiangUSTC - - 3pointer - - kissmydb - - TomShawn - -'tidb-binlog/**/*.md': - - july2993 - - kissmydb - - TomShawn - -'tidb-lightning/**/*.md': - - WangXiangUSTC - - kissmydb - - TomShawn - -'tiflash/**/*.md': - - ilovesoup - - zanmato1984 - - kissmydb - - yikeke - -'tiup/**/*.md': - - lonng - - lucklove - - kissmydb - - yikeke - -# All other file pattern will match the following: - -'**/*': - - TomShawn From 4fca0307d26b279ffd2471d89842dc9591139ef8 Mon Sep 17 00:00:00 2001 From: Null not nil <67764674+nullnotnil@users.noreply.github.com> Date: Fri, 10 Jul 2020 05:33:58 -0600 Subject: [PATCH 4/5] Delete assign-by-files.yml --- .github/assign-by-files.yml | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .github/assign-by-files.yml diff --git a/.github/assign-by-files.yml b/.github/assign-by-files.yml deleted file mode 100644 index 8b137891791fe..0000000000000 --- a/.github/assign-by-files.yml +++ /dev/null @@ -1 +0,0 @@ - From e273d3759cf8cd7556cb60fb1dd33087ec061263 Mon Sep 17 00:00:00 2001 From: Null not nil <67764674+nullnotnil@users.noreply.github.com> Date: Fri, 10 Jul 2020 05:35:38 -0600 Subject: [PATCH 5/5] Update mysql-compatibility.md --- mysql-compatibility.md | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/mysql-compatibility.md b/mysql-compatibility.md index 610b1df631cdb..63027667ad5b1 100644 --- a/mysql-compatibility.md +++ b/mysql-compatibility.md @@ -9,13 +9,9 @@ aliases: ['/docs/v3.0/mysql-compatibility/','/docs/v3.0/reference/mysql-compatib TiDB supports both the MySQL wire protocol and the majority of its syntax. This means that you can use your existing MySQL connectors and clients, and your existing applications can often be migrated to TiDB without changing any application code. -<<<<<<< HEAD Currently TiDB Server advertises itself as MySQL 5.7 and works with most MySQL database tools such as PHPMyAdmin, Navicat, MySQL Workbench, mysqldump, and Mydumper/myloader. -However, TiDB does not support some of MySQL features or behaves differently from MySQL because these features cannot be easily implemented in a distributed system. For some MySQL syntax, TiDB can parse but does not process it. For example, the `ENGINE` table option in the `CREATE TABLE` statement can be parsed but is ignored. -======= However, some features of MySQL are not supported. This could be because there is now a better way to solve the problem (such as XML functions superceded by JSON), or a lack of current demand versus effort required (such as stored procedures and functions). Some features might also be difficult to implement as a distributed system. ->>>>>>> ab766b1... sql-mode: update compatibility (#3192) > **Note:** > @@ -191,12 +187,11 @@ Architecturally, TiDB does support a similar storage engine abstraction to MySQL ### SQL modes -<<<<<<< HEAD -TiDB supports **all of the SQL modes** from MySQL 5.7 with minor exceptions: +TiDB supports most [SQL modes](/sql-mode.md): -- The compatibility modes deprecated in MySQL 5.7 and removed in MySQL 8.0 are not supported (such as `ORACLE`, `POSTGRESQL` etc). -- The mode `ONLY_FULL_GROUP_BY` has minor [semantic differences](/functions-and-operators/aggregate-group-by-functions.md#differences-from-mysql) to MySQL 5.7, which we plan to address in the future. -- The SQL modes `NO_DIR_IN_CREATE` and `NO_ENGINE_SUBSTITUTION` are supported for compatibility, but are not applicable to TiDB. +- The compatibility modes, such as `ORACLE` and `POSTGRESQL` are parsed but ignored. Compatibility modes are deprecated in MySQL 5.7 and removed in MySQL 8.0. +- The `ONLY_FULL_GROUP_BY` mode has minor [semantic differences](/functions-and-operators/aggregate-group-by-functions.md#differences-from-mysql) from MySQL 5.7. +- The `NO_DIR_IN_CREATE` and `NO_ENGINE_SUBSTITUTION` SQL modes in MySQL are accepted for compatibility, but are not applicable to TiDB. ### Version-specific comments @@ -219,13 +214,6 @@ tidb> SELECT /*!90000 "I should not run", */ "I should run" FROM dual; +------------------+--------------+ 1 row in set (0.00 sec) ``` -======= -TiDB supports most [SQL modes](/sql-mode.md): - -- The compatibility modes, such as `ORACLE` and `POSTGRESQL` are parsed but ignored. Compatibility modes are deprecated in MySQL 5.7 and removed in MySQL 8.0. -- The `ONLY_FULL_GROUP_BY` mode has minor [semantic differences](/functions-and-operators/aggregate-group-by-functions.md#differences-from-mysql) from MySQL 5.7. -- The `NO_DIR_IN_CREATE` and `NO_ENGINE_SUBSTITUTION` SQL modes in MySQL are accepted for compatibility, but are not applicable to TiDB. ->>>>>>> ab766b1... sql-mode: update compatibility (#3192) ### Default differences