diff --git a/server/ast/column_table_def.go b/server/ast/column_table_def.go index 219d4f9320..7653d9bc08 100644 --- a/server/ast/column_table_def.go +++ b/server/ast/column_table_def.go @@ -94,6 +94,12 @@ func nodeColumnTableDef(ctx *Context, node *tree.ColumnTableDef) (*vitess.Column if err != nil { return nil, err } + + // GMS requires the AST to wrap function expressions in parens + if _, ok := generated.(*vitess.FuncExpr); ok { + generated = &vitess.ParenExpr{Expr: generated} + } + //TODO: need to add support for VIRTUAL in the parser generatedStored = true } diff --git a/testing/go/create_table_test.go b/testing/go/create_table_test.go index 96ec12c8d9..36647d8037 100755 --- a/testing/go/create_table_test.go +++ b/testing/go/create_table_test.go @@ -178,7 +178,6 @@ func TestCreateTable(t *testing.T) { }, { Name: "create table with function in generated column", - Skip: true, // ERROR: column default function expressions must be enclosed in parentheses SetUpScript: []string{ "create table t1 (a varchar(10) primary key, b varchar(10), c varchar(20) generated always as (concat(a,b)) stored);", },