mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-12 20:59:02 +08:00
fix: tag filter query builder (#2125)
This commit is contained in:
parent
213838a021
commit
db2bfbb887
@ -1473,9 +1473,11 @@ func String(length int) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func buildQueryWithTagParams(ctx context.Context, tags []model.TagQuery) (string, []interface{}, *model.ApiError) {
|
func buildQueryWithTagParams(ctx context.Context, tags []model.TagQuery) (string, []interface{}, *model.ApiError) {
|
||||||
subQuery := ""
|
query := ""
|
||||||
var args []interface{}
|
var args []interface{}
|
||||||
for _, item := range tags {
|
for _, item := range tags {
|
||||||
|
var subQuery string
|
||||||
|
var argsSubQuery []interface{}
|
||||||
tagMapType := ""
|
tagMapType := ""
|
||||||
switch item.(type) {
|
switch item.(type) {
|
||||||
case model.TagQueryString:
|
case model.TagQueryString:
|
||||||
@ -1490,38 +1492,40 @@ func buildQueryWithTagParams(ctx context.Context, tags []model.TagQuery) (string
|
|||||||
}
|
}
|
||||||
switch item.GetOperator() {
|
switch item.GetOperator() {
|
||||||
case model.EqualOperator:
|
case model.EqualOperator:
|
||||||
subQuery, args = addArithmeticOperator(item, tagMapType, "=")
|
subQuery, argsSubQuery = addArithmeticOperator(item, tagMapType, "=")
|
||||||
case model.NotEqualOperator:
|
case model.NotEqualOperator:
|
||||||
subQuery, args = addArithmeticOperator(item, tagMapType, "!=")
|
subQuery, argsSubQuery = addArithmeticOperator(item, tagMapType, "!=")
|
||||||
case model.LessThanOperator:
|
case model.LessThanOperator:
|
||||||
subQuery, args = addArithmeticOperator(item, tagMapType, "<")
|
subQuery, argsSubQuery = addArithmeticOperator(item, tagMapType, "<")
|
||||||
case model.GreaterThanOperator:
|
case model.GreaterThanOperator:
|
||||||
subQuery, args = addArithmeticOperator(item, tagMapType, ">")
|
subQuery, argsSubQuery = addArithmeticOperator(item, tagMapType, ">")
|
||||||
case model.InOperator:
|
case model.InOperator:
|
||||||
subQuery, args = addInOperator(item, tagMapType, false)
|
subQuery, argsSubQuery = addInOperator(item, tagMapType, false)
|
||||||
case model.NotInOperator:
|
case model.NotInOperator:
|
||||||
subQuery, args = addInOperator(item, tagMapType, true)
|
subQuery, argsSubQuery = addInOperator(item, tagMapType, true)
|
||||||
case model.LessThanEqualOperator:
|
case model.LessThanEqualOperator:
|
||||||
subQuery, args = addArithmeticOperator(item, tagMapType, "<=")
|
subQuery, argsSubQuery = addArithmeticOperator(item, tagMapType, "<=")
|
||||||
case model.GreaterThanEqualOperator:
|
case model.GreaterThanEqualOperator:
|
||||||
subQuery, args = addArithmeticOperator(item, tagMapType, ">=")
|
subQuery, argsSubQuery = addArithmeticOperator(item, tagMapType, ">=")
|
||||||
case model.ContainsOperator:
|
case model.ContainsOperator:
|
||||||
subQuery, args = addContainsOperator(item, tagMapType, false)
|
subQuery, argsSubQuery = addContainsOperator(item, tagMapType, false)
|
||||||
case model.NotContainsOperator:
|
case model.NotContainsOperator:
|
||||||
subQuery, args = addContainsOperator(item, tagMapType, true)
|
subQuery, argsSubQuery = addContainsOperator(item, tagMapType, true)
|
||||||
case model.StartsWithOperator:
|
case model.StartsWithOperator:
|
||||||
subQuery, args = addStartsWithOperator(item, tagMapType, false)
|
subQuery, argsSubQuery = addStartsWithOperator(item, tagMapType, false)
|
||||||
case model.NotStartsWithOperator:
|
case model.NotStartsWithOperator:
|
||||||
subQuery, args = addStartsWithOperator(item, tagMapType, true)
|
subQuery, argsSubQuery = addStartsWithOperator(item, tagMapType, true)
|
||||||
case model.ExistsOperator:
|
case model.ExistsOperator:
|
||||||
subQuery, args = addExistsOperator(item, tagMapType, false)
|
subQuery, argsSubQuery = addExistsOperator(item, tagMapType, false)
|
||||||
case model.NotExistsOperator:
|
case model.NotExistsOperator:
|
||||||
subQuery, args = addExistsOperator(item, tagMapType, true)
|
subQuery, argsSubQuery = addExistsOperator(item, tagMapType, true)
|
||||||
default:
|
default:
|
||||||
return "", nil, &model.ApiError{Typ: model.ErrorExec, Err: fmt.Errorf("Tag Operator %s not supported", item.GetOperator())}
|
return "", nil, &model.ApiError{Typ: model.ErrorExec, Err: fmt.Errorf("Tag Operator %s not supported", item.GetOperator())}
|
||||||
}
|
}
|
||||||
|
query += subQuery
|
||||||
|
args = append(args, argsSubQuery...)
|
||||||
}
|
}
|
||||||
return subQuery, args, nil
|
return query, args, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func addInOperator(item model.TagQuery, tagMapType string, not bool) (string, []interface{}) {
|
func addInOperator(item model.TagQuery, tagMapType string, not bool) (string, []interface{}) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user