798
chasmMapper *chasm.VisibilitySearchAttributesMapper,
799
archetypeID chasm.ArchetypeID,
801
>
saTypeMap, err := s.searchAttributesProvider.GetSearchAttributes(s.index, false)
802
>
if err != nil {
803
return nil, serviceerror.NewUnavailablef("unable to read search attribute types: %v", err)
804
}
805
>
nameInterceptor := NewNameInterceptor(namespace, saTypeMap, s.searchAttributesMapperProvider, chasmMapper, archetypeID)
visibility_store.go
806
>
queryConverter := NewQueryConverterLegacy(
807
>
nameInterceptor,
808
>
NewValuesInterceptor(namespace, saTypeMap, chasmMapper, s.metricsHandler, s.logger),
809
>
saTypeMap,
810
>
chasmMapper,
811
>
)
812
>
queryParams, err := queryConverter.ConvertWhereOrderBy(requestQueryStr)
813
>
if err != nil {
814
>
// Convert ConverterError to InvalidArgument and pass through all other errors (which should be only mapper errors).
815
>
var converterErr *query.ConverterError
816
>
if errors.As(err, &converterErr) {
817
>
return nil, converterErr.ToInvalidArgument()
818
>
}
819
return nil, err
820
}
821
822
// Create a new bool query because a request query might have only "should" (="or") queries.
823
>
namespaceFilterQuery := elastic.NewBoolQuery().Filter(elastic.NewTermQuery(sadefs.NamespaceID, namespaceID.String()))
visibility_store.go
824
>
825
>
// If the query did not explicitly filter on TemporalNamespaceDivision somehow, then add a
826
>
// "must not exist" (i.e. "is null") query for it.
827
>
if !nameInterceptor.seenNamespaceDivision {
828
>
if archetypeID != chasm.UnspecifiedArchetypeID {
829
namespaceFilterQuery.Filter(elastic.NewTermQuery(sadefs.TemporalNamespaceDivision, strconv.Itoa(int(archetypeID))))
831
>
namespaceFilterQuery.MustNot(elastic.NewExistsQuery(sadefs.TemporalNamespaceDivision))
832
>
}
833
}
834
836
>
namespaceFilterQuery.Filter(queryParams.Query)
837
>
}
838
840
>
return queryParams, nil
841
}
842