From 221d010f3e5429e667725e57c9f025939eef8ed1 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 15 Feb 2018 13:31:22 +0100 Subject: [PATCH] MDEV-14789 Creating federated table on versioned table fails don't allow to discover WITH SYSTEM VERSIONING clause originally by: Aleksey Midenkov --- mysql-test/suite/federated/assisted_discovery.result | 8 ++++++++ mysql-test/suite/federated/assisted_discovery.test | 9 +++++++++ sql/table.cc | 3 +++ 3 files changed, 20 insertions(+) diff --git a/mysql-test/suite/federated/assisted_discovery.result b/mysql-test/suite/federated/assisted_discovery.result index 4818ff7bb02..d44f69effcd 100644 --- a/mysql-test/suite/federated/assisted_discovery.result +++ b/mysql-test/suite/federated/assisted_discovery.result @@ -72,6 +72,14 @@ t1 CREATE TABLE `t1` ( drop table t1; connection slave; drop table t1; +create or replace table t1 (x int) with system versioning; +connection master; +create table t1 engine=federated connection='mysql://root@127.0.0.1:SLAVE_MYPORT/test/t1'; +ERROR HY000: Engine FEDERATED failed to discover table `test`.`t1` with 'CREATE TABLE `t1` ( + `x` int(11) DEFAULT NULL +) WITH SYSTEM VERSIONING CONNECTION='mysql://root@127.0.0.1:SLAVE_MYPORT/test/t1'' +connection slave; +drop table t1; connection master; DROP TABLE IF EXISTS federated.t1; DROP DATABASE IF EXISTS federated; diff --git a/mysql-test/suite/federated/assisted_discovery.test b/mysql-test/suite/federated/assisted_discovery.test index fa83a2a8e19..7099cfedb23 100644 --- a/mysql-test/suite/federated/assisted_discovery.test +++ b/mysql-test/suite/federated/assisted_discovery.test @@ -54,5 +54,14 @@ drop table t1; connection slave; drop table t1; +create or replace table t1 (x int) with system versioning; +connection master; +--replace_result $SLAVE_MYPORT SLAVE_MYPORT +--error ER_SQL_DISCOVER_ERROR +eval create table t1 engine=federated connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t1'; + +connection slave; +drop table t1; + source include/federated_cleanup.inc; diff --git a/sql/table.cc b/sql/table.cc index 36e92e0e303..78fe941e166 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -2728,6 +2728,9 @@ static bool sql_unusable_for_discovery(THD *thd, handlerton *engine, // ... engine if (create_info->db_type && create_info->db_type != engine) return 1; + // ... WITH SYSTEM VERSIONING + if (create_info->versioned()) + return 1; return 0; }