func appendComparisonCondition()

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)
	}
}