diff --git a/entity_parser.go b/entity_parser.go index 1594e8a2..977311dc 100644 --- a/entity_parser.go +++ b/entity_parser.go @@ -49,7 +49,7 @@ var ( namePattern0 = regexp.MustCompile(`name\s*=\s*(\S*)`) - columnsPattern = regexp.MustCompile(`columns\s*=\s*\(([^\(\)]+)\)`) + columnsPattern = regexp.MustCompile(`columns\s*=\s*\(([^\(\)]+)\)(\S*)`) etlPattern0 = regexp.MustCompile(`etl\s*=\s*(\S*)`) @@ -355,7 +355,7 @@ func parseColumnsTag(tag string) (string, []string, error) { var indexColumns []string var fields []string matches := columnsPattern.FindStringSubmatch(tag) - if len(matches) == 2 { + if len(matches) == 3 { fullColumnsTag = matches[0] fields = strings.Split(matches[1], ",") } diff --git a/entity_parser_key_parser_test.go b/entity_parser_key_parser_test.go index fec35cb1..a46eed9a 100644 --- a/entity_parser_key_parser_test.go +++ b/entity_parser_key_parser_test.go @@ -937,6 +937,28 @@ func TestIndexParse(t *testing.T) { Columns: []string{"ok"}, Error: nil, }, + { + Tag: "name=jj, columns=(ok), key=ok", + ExpectedIndexName: "jj", + PrimaryKey: &PrimaryKey{ + PartitionKeys: []string{"ok"}, + ClusteringKeys: nil, + }, + InputIndexName: "SearchByKey", + Columns: []string{"ok"}, + Error: nil, + }, + { + Tag: "name=jj, key=ok, columns=(ok),", + ExpectedIndexName: "jj", + PrimaryKey: &PrimaryKey{ + PartitionKeys: []string{"ok"}, + ClusteringKeys: nil, + }, + InputIndexName: "SearchByKey", + Columns: []string{"ok"}, + Error: nil, + }, { Tag: "name=jj key=ok columns=(ok, test, hi,)", ExpectedIndexName: "jj",