# This source file contains extensions to the abstract adapter. module ActiveRecord #:nodoc: module ConnectionAdapters #:nodoc: # Extensions to the AbstractAdapter. In some cases a default implementation # is provided, in others it is adapter-dependent and the method will # raise a NotImplementedError if the adapter does not implement that method class AbstractAdapter # Truncate the specified table def truncate(table_name) execute("TRUNCATE TABLE #{table_name}") end # Bulk loading interface. Load the data from the specified file into the # given table. Note that options will be adapter-dependent. def bulk_load(file, table_name, options={}) raise ArgumentError, "#{file} does not exist" unless File.exist?(file) raise ArgumentError, "#{table_name} does not exist" unless tables.include?(table_name) do_bulk_load(file, table_name, options) end protected # for subclasses to implement def do_bulk_load(file, table_name, options={}) raise NotImplementedError, "do_bulk_load is an abstract method" end end end end