From 7d0ff2029012cb91876cf79373a1fc4fdc714603 Mon Sep 17 00:00:00 2001 From: SeaRise Date: Sat, 6 Jan 2024 01:58:51 +0800 Subject: [PATCH 1/2] This is an automated cherry-pick of #8671 Signed-off-by: ti-chi-bot --- dbms/src/Flash/Coprocessor/RemoteRequest.cpp | 7 +- .../{expr => issues}/issue_1796.test | 0 .../{expr => issues}/issue_3333.test | 0 .../{expr => issues}/issue_3373.test | 0 .../{expr => issues}/issue_3447.test | 0 .../{expr => issues}/issue_7695.test | 0 .../{expr => issues}/issue_8113.test | 0 tests/fullstack-test/issues/issue_8482.test | 44 ++++++++++++ tests/fullstack-test/issues/issue_8601.test | 72 +++++++++++++++++++ 9 files changed, 121 insertions(+), 2 deletions(-) rename tests/fullstack-test/{expr => issues}/issue_1796.test (100%) rename tests/fullstack-test/{expr => issues}/issue_3333.test (100%) rename tests/fullstack-test/{expr => issues}/issue_3373.test (100%) rename tests/fullstack-test/{expr => issues}/issue_3447.test (100%) rename tests/fullstack-test/{expr => issues}/issue_7695.test (100%) rename tests/fullstack-test/{expr => issues}/issue_8113.test (100%) create mode 100644 tests/fullstack-test/issues/issue_8482.test create mode 100644 tests/fullstack-test/issues/issue_8601.test diff --git a/dbms/src/Flash/Coprocessor/RemoteRequest.cpp b/dbms/src/Flash/Coprocessor/RemoteRequest.cpp index d318b271cce..9c0b52b4c6f 100644 --- a/dbms/src/Flash/Coprocessor/RemoteRequest.cpp +++ b/dbms/src/Flash/Coprocessor/RemoteRequest.cpp @@ -67,8 +67,11 @@ RemoteRequest RemoteRequest::build( } else { - const auto & col_info = table_info.getColumnInfo(col_id); - schema.emplace_back(std::make_pair(col_info.name, col_info)); + // https://github.com/pingcap/tiflash/issues/8601 + // If the precision of the `TIME`(which is MyDuration in TiFlash) type is modified, + // TiFlash storage layer may not trigger `sync_schema` and update table info. + // Therefore, the column info in the TiDB request will be used in this case. + schema.emplace_back(std::make_pair(table_info.getColumnInfo(col_id).name, col)); } dag_req.add_output_offsets(i); } diff --git a/tests/fullstack-test/expr/issue_1796.test b/tests/fullstack-test/issues/issue_1796.test similarity index 100% rename from tests/fullstack-test/expr/issue_1796.test rename to tests/fullstack-test/issues/issue_1796.test diff --git a/tests/fullstack-test/expr/issue_3333.test b/tests/fullstack-test/issues/issue_3333.test similarity index 100% rename from tests/fullstack-test/expr/issue_3333.test rename to tests/fullstack-test/issues/issue_3333.test diff --git a/tests/fullstack-test/expr/issue_3373.test b/tests/fullstack-test/issues/issue_3373.test similarity index 100% rename from tests/fullstack-test/expr/issue_3373.test rename to tests/fullstack-test/issues/issue_3373.test diff --git a/tests/fullstack-test/expr/issue_3447.test b/tests/fullstack-test/issues/issue_3447.test similarity index 100% rename from tests/fullstack-test/expr/issue_3447.test rename to tests/fullstack-test/issues/issue_3447.test diff --git a/tests/fullstack-test/expr/issue_7695.test b/tests/fullstack-test/issues/issue_7695.test similarity index 100% rename from tests/fullstack-test/expr/issue_7695.test rename to tests/fullstack-test/issues/issue_7695.test diff --git a/tests/fullstack-test/expr/issue_8113.test b/tests/fullstack-test/issues/issue_8113.test similarity index 100% rename from tests/fullstack-test/expr/issue_8113.test rename to tests/fullstack-test/issues/issue_8113.test diff --git a/tests/fullstack-test/issues/issue_8482.test b/tests/fullstack-test/issues/issue_8482.test new file mode 100644 index 00000000000..360f9c0e1ec --- /dev/null +++ b/tests/fullstack-test/issues/issue_8482.test @@ -0,0 +1,44 @@ +# Copyright 2023 PingCAP, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +mysql> drop table if exists test.t; +mysql> create table test.t(b json); +mysql> alter table test.t set tiflash replica 1; +mysql> insert into test.t values (true); + +func> wait_table test t + +mysql> set tidb_allow_mpp=1;set tidb_enforce_mpp=1; set tidb_isolation_read_engines='tiflash'; select b = true from test.t; ++----------+ +| b = true | ++----------+ +| 0 | ++----------+ + +mysql> set tidb_allow_mpp=1;set tidb_enforce_mpp=1; set tidb_isolation_read_engines='tiflash'; select b = 1 from test.t; ++-------+ +| b = 1 | ++-------+ +| 1 | ++-------+ + +mysql> set tidb_allow_mpp=1;set tidb_enforce_mpp=1; set tidb_isolation_read_engines='tiflash'; select b = true, b = 1 from test.t; ++----------+-------+ +| b = true | b = 1 | ++----------+-------+ +| 0 | 1 | ++----------+-------+ + +# Clean up. +mysql> drop table if exists test.t; diff --git a/tests/fullstack-test/issues/issue_8601.test b/tests/fullstack-test/issues/issue_8601.test new file mode 100644 index 00000000000..78a31eb5095 --- /dev/null +++ b/tests/fullstack-test/issues/issue_8601.test @@ -0,0 +1,72 @@ +# Copyright 2024 PingCAP, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Preparation. +=> DBGInvoke __init_fail_point() +=> DBGInvoke __enable_schema_sync_service('false') + +mysql> drop table if exists test.t; +mysql> create table if not exists test.t(a time(4)); + +mysql> insert into test.t values('700:10:10.123456'); +mysql> insert into test.t values('-700:10:10.123456'); +mysql> alter table test.t set tiflash replica 1; +func> wait_table test t + +## time(4) to time(6) +mysql> alter table test.t modify column a time(6); + +mysql> use test; set tidb_enforce_mpp=1; set tidb_isolation_read_engines='tiflash'; select a from test.t; ++-------------------+ +| a | ++-------------------+ +| 700:10:10.123500 | +| -700:10:10.123500 | ++-------------------+ + +=> DBGInvoke __enable_fail_point(force_remote_read_for_batch_cop) +mysql> use test; set tidb_enforce_mpp=1; set tidb_isolation_read_engines='tiflash'; select a from test.t; ++-------------------+ +| a | ++-------------------+ +| 700:10:10.123500 | +| -700:10:10.123500 | ++-------------------+ +=> DBGInvoke __disable_fail_point(force_remote_read_for_batch_cop) + +## time(6) to time(2) +mysql> alter table test.t modify column a time(2); + +mysql> use test; set tidb_enforce_mpp=1; set tidb_isolation_read_engines='tiflash'; select a from test.t; ++---------------+ +| a | ++---------------+ +| 700:10:10.12 | +| -700:10:10.12 | ++---------------+ + +=> DBGInvoke __enable_fail_point(force_remote_read_for_batch_cop) +mysql> use test; set tidb_enforce_mpp=1; set tidb_isolation_read_engines='tiflash'; select a from test.t; ++---------------+ +| a | ++---------------+ +| 700:10:10.12 | +| -700:10:10.12 | ++---------------+ +=> DBGInvoke __disable_fail_point(force_remote_read_for_batch_cop) + +# Clean up. +mysql> drop table if exists test.t + +=> DBGInvoke __enable_schema_sync_service('true') From 5012d2ae5cf67b65a82ce8a38c3a01a12ca389fe Mon Sep 17 00:00:00 2001 From: SeaRise Date: Sun, 7 Jan 2024 15:03:04 +0800 Subject: [PATCH 2/2] Delete tests/fullstack-test/issues/issue_8482.test --- tests/fullstack-test/issues/issue_8482.test | 44 --------------------- 1 file changed, 44 deletions(-) delete mode 100644 tests/fullstack-test/issues/issue_8482.test diff --git a/tests/fullstack-test/issues/issue_8482.test b/tests/fullstack-test/issues/issue_8482.test deleted file mode 100644 index 360f9c0e1ec..00000000000 --- a/tests/fullstack-test/issues/issue_8482.test +++ /dev/null @@ -1,44 +0,0 @@ -# Copyright 2023 PingCAP, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -mysql> drop table if exists test.t; -mysql> create table test.t(b json); -mysql> alter table test.t set tiflash replica 1; -mysql> insert into test.t values (true); - -func> wait_table test t - -mysql> set tidb_allow_mpp=1;set tidb_enforce_mpp=1; set tidb_isolation_read_engines='tiflash'; select b = true from test.t; -+----------+ -| b = true | -+----------+ -| 0 | -+----------+ - -mysql> set tidb_allow_mpp=1;set tidb_enforce_mpp=1; set tidb_isolation_read_engines='tiflash'; select b = 1 from test.t; -+-------+ -| b = 1 | -+-------+ -| 1 | -+-------+ - -mysql> set tidb_allow_mpp=1;set tidb_enforce_mpp=1; set tidb_isolation_read_engines='tiflash'; select b = true, b = 1 from test.t; -+----------+-------+ -| b = true | b = 1 | -+----------+-------+ -| 0 | 1 | -+----------+-------+ - -# Clean up. -mysql> drop table if exists test.t;