# File lib/tapkit/access/adapters/csv.rb, line 59
                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