lib/cassanity/executors/cql_rb.rb in cassanity-0.6.0.beta4 vs lib/cassanity/executors/cql_rb.rb in cassanity-0.6.0.beta5
- old
+ new
@@ -146,10 +146,11 @@
raise Cassanity::UnknownCommand
end
arguments = args[:arguments]
+ send_use_command = false
if arguments
# TODO: As a temporary measure, we remove this deprecated option
# while we have time to update each gem (e.g., adapter-cassanity)
# that sets it. Consistency should be specified at the connection
# level for now.
@@ -163,22 +164,25 @@
end
if (column_family_name = arguments[:column_family_name])
payload[:column_family_name] = column_family_name
end
- # Select keyspace before query runs
+ # Select the correct keyspace before executing the CQL query
if command != :keyspace_create && (keyspace_name = arguments[:keyspace_name])
- @driver.use(keyspace_name)
+ send_use_command = true
end
end
begin
cql, *variables = generator.call(arguments)
payload[:cql] = cql
payload[:cql_variables] = variables
statement = Cassanity::Statement.new(cql)
- result = @retry_strategy.execute(payload) { @driver.execute(statement.interpolate(variables)) }
+ result = @retry_strategy.execute(payload) do
+ @driver.use(keyspace_name) if send_use_command
+ @driver.execute(statement.interpolate(variables))
+ end
transformer = @result_transformers.fetch(command, Mirror)
transformed_result = transformer.call(result, args[:transformer_arguments])
payload[:result] = transformed_result
rescue StandardError => e