From 380a83e1e8de3db25033efefad7ddd16e2713142 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/4] cherry pick #3192 to release-3.1 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 608a791894c27..e0b15a994b731 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 057d1ed968434..4076222441a8b 100644 --- a/mysql-compatibility.md +++ b/mysql-compatibility.md @@ -9,9 +9,13 @@ aliases: ['/docs/v3.1/mysql-compatibility/','/docs/v3.1/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 3d7e005468627..6edaa673978ee 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 5699db4a1db4dfc6d13eb653a3c79fc9f33d8814 Mon Sep 17 00:00:00 2001 From: Null not nil <67764674+nullnotnil@users.noreply.github.com> Date: Fri, 10 Jul 2020 05:36:46 -0600 Subject: [PATCH 2/4] Delete assign-by-files.yml --- .github/assign-by-files.yml | 121 ------------------------------------ 1 file changed, 121 deletions(-) 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 936f0fc22bf24..0000000000000 --- a/.github/assign-by-files.yml +++ /dev/null @@ -1,121 +0,0 @@ ---- -# 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 2807d83c8ad6576a7c1289afb21f4110f3af4a9b Mon Sep 17 00:00:00 2001 From: Null not nil <67764674+nullnotnil@users.noreply.github.com> Date: Fri, 10 Jul 2020 05:37:22 -0600 Subject: [PATCH 3/4] Update TOC.md --- TOC.md | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/TOC.md b/TOC.md index e0b15a994b731..608a791894c27 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 61d5f3d5ef819193eefc0cc8994020d4f4ce04f0 Mon Sep 17 00:00:00 2001 From: Null not nil <67764674+nullnotnil@users.noreply.github.com> Date: Fri, 10 Jul 2020 05:39:08 -0600 Subject: [PATCH 4/4] 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 4076222441a8b..b0df8e2110acd 100644 --- a/mysql-compatibility.md +++ b/mysql-compatibility.md @@ -9,13 +9,9 @@ aliases: ['/docs/v3.1/mysql-compatibility/','/docs/v3.1/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