in dax/internal/client/legacy.go [508:568]
func appendComparisonCondition(in []byte, a string, op types.ComparisonOperator, avl []types.AttributeValue, subs map[string]string, vars map[string]types.AttributeValue, keyCondition bool) ([]byte, map[string]string, map[string]types.AttributeValue, error) {
switch op {
case types.ComparisonOperatorBetween:
return appendBetweenCondition(in, a, op, avl, subs, vars)
case types.ComparisonOperatorBeginsWith:
return appendBeginsWithCondition(in, a, op, avl, subs, vars)
case types.ComparisonOperatorContains:
if err := validateNotKeyCondition(keyCondition, op); err != nil {
return in, subs, vars, err
}
return appendContainsCondition(in, a, op, avl, subs, vars, true)
case types.ComparisonOperatorNotContains:
if err := validateNotKeyCondition(keyCondition, op); err != nil {
return in, subs, vars, err
}
return appendContainsCondition(in, a, op, avl, subs, vars, false)
case types.ComparisonOperatorNull:
if err := validateNotKeyCondition(keyCondition, op); err != nil {
return in, subs, vars, err
}
var err error
in, subs, err = appendNullCondition(in, a, op, avl, subs, true)
return in, subs, vars, err
case types.ComparisonOperatorNotNull:
if err := validateNotKeyCondition(keyCondition, op); err != nil {
return in, subs, vars, err
}
var err error
in, subs, err = appendNullCondition(in, a, op, avl, subs, false)
return in, subs, vars, err
case types.ComparisonOperatorIn:
if err := validateNotKeyCondition(keyCondition, op); err != nil {
return in, subs, vars, err
}
return appendInCondition(in, a, op, avl, subs, vars)
default:
switch op {
case types.ComparisonOperatorEq:
// do nothing
case types.ComparisonOperatorNe:
if err := validateNotKeyCondition(keyCondition, op); err != nil {
return in, subs, vars, err
}
case types.ComparisonOperatorLe:
// do nothing
case types.ComparisonOperatorGe:
// do nothing
case types.ComparisonOperatorLt:
// do nothing
case types.ComparisonOperatorGt:
// do nothing
default:
return in, subs, vars, &smithy.GenericAPIError{
Code: ErrCodeValidationException,
Message: fmt.Sprintf("Unknown comparison operator: %s", op),
Fault: smithy.FaultClient,
}
}
return appendArithmeticComparisonCondition(in, a, op, avl, subs, vars)
}
}