-
Notifications
You must be signed in to change notification settings - Fork 88
Open
Description
I found that IN statements in WHERE clauses were not being expanded correctly. While one one hand this might be seen as an issue in right_aws (and I opened an issue with them), I see that you try to work around it in query_expression_from_array.
However, for the life of me I couldn't figure out why I was getting incorrectly serialized arrays. Copying the exact code from sdb_interface.rb into a patch fixed my problem:
class Aws::SdbInterface
def query_expression_from_array(params) #:nodoc:
return '' if Aws::Utils.blank?(params)
query = params[0].to_s
i = 1
query.gsub(/(\\)?(\?)/) do
if $1 # if escaped '\?' is found - replace it by '?' without backslash
"?"
else # well, if no backslash precedes '?' then replace it by next param from the list
case params[i]
when Array
ret = "(#{params[i].map{|p| escape(p)}.join(",")})"
else
ret = escape(params[i])
end
i +=1
ret
end
end
end
end
This suggests to me that somehow the right_aws method is taking precendence over yours.
Metadata
Metadata
Assignees
Labels
No labels