def evaluate( expression )
@entity = expression.entity
open
bindings = []
row = {}
expression.bind_variables.each do |binding|
value = binding[expression.class::VALUE_KEY]
attr = binding[expression.class::ATTRIBUTE_KEY]
formatted = expression.format_value(value, attr)
bindings << formatted
row[attr.column_name.to_i] = formatted
end
expression.row = row
statement = expression.statement.dup
index = 0
statement.gsub!('?') do |char|
index += 1
bindings[index-1]
end
if application then
if application.log_options[:sql] then
application.log_options[:out].puts expression.statement
end
end
@pk_cache.clear
@result = @csvdb.evaluate expression
end