From 94b90273eb0e1245b9e3d68f4f68d2a1faf3c4ea Mon Sep 17 00:00:00 2001 From: Kolbe Kegel Date: Mon, 18 Mar 2019 11:12:38 -0700 Subject: [PATCH] Ignore FULLTEXT KEYs in CREATE TABLE statements. --- ddl/ddl.go | 3 +++ ddl/ddl_api.go | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/ddl/ddl.go b/ddl/ddl.go index 422a953d1cb2a..26604ba6f3253 100644 --- a/ddl/ddl.go +++ b/ddl/ddl.go @@ -215,6 +215,8 @@ var ( ErrAlterOperationNotSupported = terror.ClassDDL.New(codeNotSupportedAlterOperation, mysql.MySQLErrName[mysql.ErrAlterOperationNotSupportedReason]) // ErrWrongObject returns for wrong object. ErrWrongObject = terror.ClassDDL.New(codeErrWrongObject, mysql.MySQLErrName[mysql.ErrWrongObject]) + // ErrTableCantHandleFt returns FULLTEXT keys are not supported by table type + ErrTableCantHandleFt = terror.ClassDDL.New(codeErrTableCantHandleFt, mysql.MySQLErrName[mysql.ErrTableCantHandleFt]) ) // DDL is responsible for updating schema in data store and maintaining in-memory InfoSchema cache. @@ -695,6 +697,7 @@ const ( codePrimaryCantHaveNull = terror.ErrCode(mysql.ErrPrimaryCantHaveNull) codeWrongExprInPartitionFunc = terror.ErrCode(mysql.ErrWrongExprInPartitionFunc) codeWarnDataTruncated = terror.ErrCode(mysql.WarnDataTruncated) + codeErrTableCantHandleFt = terror.ErrCode(mysql.ErrTableCantHandleFt) codeCoalesceOnlyOnHashPartition = terror.ErrCode(mysql.ErrCoalesceOnlyOnHashPartition) codeUnknownPartition = terror.ErrCode(mysql.ErrUnknownPartition) codeErrGeneratedColumnRefAutoInc = terror.ErrCode(mysql.ErrGeneratedColumnRefAutoInc) diff --git a/ddl/ddl_api.go b/ddl/ddl_api.go index 1fd6d59db8bf7..e70e691f30e67 100644 --- a/ddl/ddl_api.go +++ b/ddl/ddl_api.go @@ -947,6 +947,11 @@ func buildTableInfo(ctx sessionctx.Context, d *ddl, tableName model.CIStr, cols } } } + if constr.Tp == ast.ConstraintFulltext { + sc := ctx.GetSessionVars().StmtCtx + sc.AppendWarning(ErrTableCantHandleFt) + continue + } // build index info. idxInfo, err := buildIndexInfo(tbInfo, model.NewCIStr(constr.Name), constr.Keys, model.StatePublic) if err != nil {