in dax/internal/client/legacy.go [466:524]
func appendComparisonCondition(in []byte, a string, op string, avl []*dynamodb.AttributeValue, subs map[string]*string, vars map[string]*dynamodb.AttributeValue, keyCondition bool) ([]byte, map[string]*string, map[string]*dynamodb.AttributeValue, error) {
switch op {
case dynamodb.ComparisonOperatorBetween:
return appendBetweenCondition(in, a, op, avl, subs, vars)
case dynamodb.ComparisonOperatorBeginsWith:
return appendBeginsWithCondition(in, a, op, avl, subs, vars)
case dynamodb.ComparisonOperatorContains:
if err := validateNotKeyCondition(keyCondition, op); err != nil {
return in, subs, vars, err
}
return appendContainsCondition(in, a, op, avl, subs, vars, true)
case dynamodb.ComparisonOperatorNotContains:
if err := validateNotKeyCondition(keyCondition, op); err != nil {
return in, subs, vars, err
}
return appendContainsCondition(in, a, op, avl, subs, vars, false)
case dynamodb.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 dynamodb.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 dynamodb.ComparisonOperatorIn:
if err := validateNotKeyCondition(keyCondition, op); err != nil {
return in, subs, vars, err
}
return appendInCondition(in, a, op, avl, subs, vars)
default:
var eop string
switch op {
case dynamodb.ComparisonOperatorEq:
eop = "="
case dynamodb.ComparisonOperatorNe:
if err := validateNotKeyCondition(keyCondition, op); err != nil {
return in, subs, vars, err
}
eop = "<>"
case dynamodb.ComparisonOperatorLe:
eop = "<="
case dynamodb.ComparisonOperatorGe:
eop = ">="
case dynamodb.ComparisonOperatorLt:
eop = "<"
case dynamodb.ComparisonOperatorGt:
eop = ">"
default:
return in, subs, vars, awserr.New(ErrCodeValidationException, fmt.Sprintf("Unknown comparison operator: %s", op), nil)
}
return appendArithmeticComparisonCondition(in, a, eop, avl, subs, vars)
}
}