From 204b54d2d9f966f5fec0baef3974eff98ec125ad Mon Sep 17 00:00:00 2001 From: kevg Date: Sat, 4 Mar 2017 23:05:45 +0300 Subject: [PATCH] SQL: create versioned tmp table from query [fixes #144] --- mysql-test/suite/versioning/r/create.result | 2 ++ mysql-test/suite/versioning/t/create.test | 3 +++ sql/handler.cc | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mysql-test/suite/versioning/r/create.result b/mysql-test/suite/versioning/r/create.result index 1fcf0c1e6a8..2614babef72 100644 --- a/mysql-test/suite/versioning/r/create.result +++ b/mysql-test/suite/versioning/r/create.result @@ -223,4 +223,6 @@ create or replace table t1 ( A int ) without system versioning without system versioning; ERROR HY000: Wrong parameters for `t1`: Versioning specified more than once for the same table +create or replace table t1 (a int) with system versioning; +create temporary table tmp with system versioning select * from t1; drop table t1; diff --git a/mysql-test/suite/versioning/t/create.test b/mysql-test/suite/versioning/t/create.test index db07f5b2521..aa873dfdcaf 100644 --- a/mysql-test/suite/versioning/t/create.test +++ b/mysql-test/suite/versioning/t/create.test @@ -204,4 +204,7 @@ create or replace table t1 ( A int ) without system versioning without system versioning; +create or replace table t1 (a int) with system versioning; +create temporary table tmp with system versioning select * from t1; + drop table t1; diff --git a/sql/handler.cc b/sql/handler.cc index ba947fd7a2d..f7620a0543b 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -6724,7 +6724,8 @@ bool Vers_parse_info::check_and_fix_implicit( generated_as_row.start || generated_as_row.end || period_for_system_time.start || period_for_system_time.end; - if (with == 0 && (not_set == 0 || !table_with_system_versioning)) + if (!thd->lex->tmp_table() && with == 0 && + (not_set == 0 || !table_with_system_versioning)) { my_error(ER_VERS_WRONG_PARAMS, MYF(0), table_name, "versioned fields missing");