From b1d1ad1486c999419ee5d2bf6a378fb92904e121 Mon Sep 17 00:00:00 2001 From: Alexey Antipovsky Date: Fri, 4 Dec 2020 22:18:17 +0300 Subject: [PATCH] MCOL-2000 Fix `CREATE TABLE` syntax for a generated replacement statements of original statements: * `CREATE TABLE .. LIKE ..` * `ALTER TABLE .. ENGINE=Columnstore` * `CREATE TABLE .. AS ..` --- dbcon/mysql/ha_mcs_ddl.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/dbcon/mysql/ha_mcs_ddl.cpp b/dbcon/mysql/ha_mcs_ddl.cpp index f81112532..2a4c9057b 100644 --- a/dbcon/mysql/ha_mcs_ddl.cpp +++ b/dbcon/mysql/ha_mcs_ddl.cpp @@ -2395,6 +2395,18 @@ int ha_mcs_impl_create_(const char* name, TABLE* table_arg, HA_CREATE_INFO* crea oss << ", "; oss << (*field)->field_name.str << " " << datatype.ptr(); + + if ((*field)->has_charset()) + { + const CHARSET_INFO* field_cs = (*field)->charset(); + if (field_cs && + (!share->table_charset || + field_cs->number != share->table_charset->number)) + { + oss << " CHARACTER SET " << field_cs->csname; + } + } + if (flags & NOT_NULL_FLAG) oss << " NOT NULL"; @@ -2404,12 +2416,6 @@ int ha_mcs_impl_create_(const char* name, TABLE* table_arg, HA_CREATE_INFO* crea oss << " DEFAULT " << def_value.c_ptr(); } - const CHARSET_INFO* field_cs = (*field)->charset(); - if (field_cs && (!share->table_charset || field_cs->number != share->table_charset->number)) - { - oss << " CHARACTER SET " << field_cs->csname; - } - if ((*field)->comment.length) { String comment;