Skip to content

Commit 416abfb

Browse files
authored
Update type of keyword list search attributes (#3865)
1 parent 7e83ca2 commit 416abfb

File tree

7 files changed

+18
-9
lines changed

7 files changed

+18
-9
lines changed

common/persistence/visibility/store/elasticsearch/client/client_v7.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ func buildMappingBody(mapping map[string]enumspb.IndexedValueType) map[string]in
376376
switch fieldType {
377377
case enumspb.INDEXED_VALUE_TYPE_TEXT:
378378
typeMap = map[string]interface{}{"type": "text"}
379-
case enumspb.INDEXED_VALUE_TYPE_KEYWORD:
379+
case enumspb.INDEXED_VALUE_TYPE_KEYWORD, enumspb.INDEXED_VALUE_TYPE_KEYWORD_LIST:
380380
typeMap = map[string]interface{}{"type": "keyword"}
381381
case enumspb.INDEXED_VALUE_TYPE_INT:
382382
typeMap = map[string]interface{}{"type": "long"}

common/persistence/visibility/store/elasticsearch/visibility_store.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -1032,7 +1032,10 @@ func finishParseJSONValue(val interface{}, t enumspb.IndexedValueType) (interfac
10321032
}
10331033

10341034
switch t {
1035-
case enumspb.INDEXED_VALUE_TYPE_TEXT, enumspb.INDEXED_VALUE_TYPE_KEYWORD, enumspb.INDEXED_VALUE_TYPE_DATETIME:
1035+
case enumspb.INDEXED_VALUE_TYPE_TEXT,
1036+
enumspb.INDEXED_VALUE_TYPE_KEYWORD,
1037+
enumspb.INDEXED_VALUE_TYPE_KEYWORD_LIST,
1038+
enumspb.INDEXED_VALUE_TYPE_DATETIME:
10361039
stringVal, isString := val.(string)
10371040
if !isString {
10381041
return nil, fmt.Errorf("%w: expected string got %T", errUnexpectedJSONFieldType, val)

common/searchattribute/defs.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ var (
8585

8686
// predefined are internal search attributes which are passed and stored in SearchAttributes object together with custom search attributes.
8787
predefined = map[string]enumspb.IndexedValueType{
88-
TemporalChangeVersion: enumspb.INDEXED_VALUE_TYPE_KEYWORD,
89-
BinaryChecksums: enumspb.INDEXED_VALUE_TYPE_KEYWORD,
88+
TemporalChangeVersion: enumspb.INDEXED_VALUE_TYPE_KEYWORD_LIST,
89+
BinaryChecksums: enumspb.INDEXED_VALUE_TYPE_KEYWORD_LIST,
9090
BatcherNamespace: enumspb.INDEXED_VALUE_TYPE_KEYWORD,
9191
BatcherUser: enumspb.INDEXED_VALUE_TYPE_KEYWORD,
9292
TemporalScheduledStartTime: enumspb.INDEXED_VALUE_TYPE_DATETIME,

common/searchattribute/encode_value.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ func DecodeValue(value *commonpb.Payload, t enumspb.IndexedValueType) (interface
6565
// If search attribute value is `nil`, it means that search attribute needs to be removed from the document.
6666

6767
switch t {
68-
case enumspb.INDEXED_VALUE_TYPE_TEXT, enumspb.INDEXED_VALUE_TYPE_KEYWORD:
68+
case enumspb.INDEXED_VALUE_TYPE_TEXT,
69+
enumspb.INDEXED_VALUE_TYPE_KEYWORD,
70+
enumspb.INDEXED_VALUE_TYPE_KEYWORD_LIST:
6971
var val *string
7072
if err := payload.Decode(value, &val); err != nil {
7173
var listVal []string

common/searchattribute/name_type_map_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func Test_GetType(t *testing.T) {
7777
assert.Equal(enumspb.INDEXED_VALUE_TYPE_KEYWORD, ivt)
7878
ivt, err = typeMap.GetType("TemporalChangeVersion")
7979
assert.NoError(err)
80-
assert.Equal(enumspb.INDEXED_VALUE_TYPE_KEYWORD, ivt)
80+
assert.Equal(enumspb.INDEXED_VALUE_TYPE_KEYWORD_LIST, ivt)
8181
ivt, err = typeMap.GetType("NamespaceId")
8282
assert.Error(err)
8383
assert.Equal(enumspb.INDEXED_VALUE_TYPE_UNSPECIFIED, ivt)

common/searchattribute/stringify.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,9 @@ func parseValueTyped(valStr string, t enumspb.IndexedValueType) (interface{}, er
159159
var err error
160160

161161
switch t {
162-
case enumspb.INDEXED_VALUE_TYPE_TEXT, enumspb.INDEXED_VALUE_TYPE_KEYWORD:
162+
case enumspb.INDEXED_VALUE_TYPE_TEXT,
163+
enumspb.INDEXED_VALUE_TYPE_KEYWORD,
164+
enumspb.INDEXED_VALUE_TYPE_KEYWORD_LIST:
163165
val = valStr
164166
case enumspb.INDEXED_VALUE_TYPE_INT:
165167
val, err = strconv.ParseInt(valStr, 10, 64)
@@ -207,7 +209,9 @@ func isJsonArray(str string) bool {
207209

208210
func parseJsonArray(str string, t enumspb.IndexedValueType) (interface{}, error) {
209211
switch t {
210-
case enumspb.INDEXED_VALUE_TYPE_TEXT, enumspb.INDEXED_VALUE_TYPE_KEYWORD:
212+
case enumspb.INDEXED_VALUE_TYPE_TEXT,
213+
enumspb.INDEXED_VALUE_TYPE_KEYWORD,
214+
enumspb.INDEXED_VALUE_TYPE_KEYWORD_LIST:
211215
var result []string
212216
err := json.Unmarshal([]byte(str), &result)
213217
return result, err

service/history/workflow/mutable_state_impl.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1846,7 +1846,7 @@ func (ms *MutableStateImpl) addBinaryCheckSumIfNotExists(
18461846
exeInfo.AutoResetPoints = &workflowpb.ResetPoints{
18471847
Points: currResetPoints,
18481848
}
1849-
checksumsPayload, err := searchattribute.EncodeValue(recentBinaryChecksums, enumspb.INDEXED_VALUE_TYPE_KEYWORD)
1849+
checksumsPayload, err := searchattribute.EncodeValue(recentBinaryChecksums, enumspb.INDEXED_VALUE_TYPE_KEYWORD_LIST)
18501850
if err != nil {
18511851
return err
18521852
}

0 commit comments

Comments
 (0)