def select(select_expression, next_token = nil, consistent_read = nil)
select_expression = query_expression_from_array(select_expression) if select_expression.is_a?(Array)
@last_query_expression = select_expression
options = {}
if next_token.is_a?(Hash)
options = next_token
next_token = options[:next_token]
consistent_read = options[:consistent_read]
end
request_params = {'SelectExpression' => select_expression,
'NextToken' => next_token,
'ConsistentRead' => consistent_read}
link = generate_request("Select", request_params, options)
result = select_response_to_ruby(request_info(link, QSdbSelectParser.new, options))
return result unless block_given?
begin
break unless yield(result) && result[:next_token]
request_params['NextToken'] = result[:next_token]
link = generate_request("Select", request_params)
result = select_response_to_ruby(request_info(link, QSdbSelectParser.new, options))
end while true
rescue Exception
on_exception
end