in dax/internal/client/legacy.go [155:200]
func translateLegacyQueryInput(input *dynamodb.QueryInput) (*dynamodb.QueryInput, error) {
pf, err := hasAttributesToGet(input.AttributesToGet, input.ProjectionExpression)
if err != nil {
return input, err
}
ff, err := hasFilter(input.QueryFilter, input.FilterExpression)
if err != nil {
return input, err
}
kf, err := hasFilter(input.KeyConditions, input.KeyConditionExpression)
if err != nil {
return input, err
}
if !pf && !ff && !kf {
return input, nil
}
output := input
if pf {
output.ProjectionExpression, output.ExpressionAttributeNames, err =
translateAttributesToGet(output.AttributesToGet, output.ExpressionAttributeNames)
if err != nil {
return input, err
}
output.AttributesToGet = nil
}
if ff {
output.FilterExpression, output.ExpressionAttributeNames, output.ExpressionAttributeValues, err =
translateFilter(output.ConditionalOperator, output.QueryFilter, output.ExpressionAttributeNames, output.ExpressionAttributeValues, false)
if err != nil {
return input, err
}
output.ConditionalOperator = ""
output.QueryFilter = nil
}
if kf {
output.KeyConditionExpression, output.ExpressionAttributeNames, output.ExpressionAttributeValues, err =
translateFilter(types.ConditionalOperatorAnd, output.KeyConditions, output.ExpressionAttributeNames, output.ExpressionAttributeValues, true)
if err != nil {
return input, err
}
output.KeyConditions = nil
}
return output, nil
}