Module: AdapterExtensions::AbstractAdapter

Included in:
ActiveRecord::ConnectionAdapters::AbstractAdapter
Defined in:
lib/adapter_extensions/adapters/abstract_adapter.rb

Instance Method Summary collapse

Instance Method Details

#add_select_into_table(new_table_name, sql_query) ⇒ Object

Add a chunk of SQL to the given query that will create a new table and execute the select into that table.

Raises:

  • (NotImplementedError)


33
34
35
# File 'lib/adapter_extensions/adapters/abstract_adapter.rb', line 33

def add_select_into_table(new_table_name, sql_query)
  raise NotImplementedError, "add_select_into_table is an abstract method"
end

#bulk_load(file, table_name, options = {}) ⇒ Object

Bulk loading interface. Load the data from the specified file into the given table. Note that options will be adapter-dependent.

Raises:

  • (ArgumentError)


16
17
18
19
20
# File 'lib/adapter_extensions/adapters/abstract_adapter.rb', line 16

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

#support_select_into_table?Boolean

SQL select into statement constructs a new table from the results of a select. It is used to select data from a table and create a new table with its result set at the same time. Note that this method name does not necessarily match the implementation. E.g. MySQL's version of this is 'CREATE TABLE ... AS SELECT ...'

Returns:

  • (Boolean)


27
28
29
# File 'lib/adapter_extensions/adapters/abstract_adapter.rb', line 27

def support_select_into_table?
  false
end

#truncate(table_name, options = nil) ⇒ Object

Truncate the specified table - allow to pass an optional string to let the called add extra parameters like RESET IDENTITY for pg



5
6
7
8
9
10
11
12
# File 'lib/adapter_extensions/adapters/abstract_adapter.rb', line 5

def truncate(table_name, options=nil)
  statement = [
    'TRUNCATE TABLE',
    table_name,
    options
  ].compact.join(' ')
  execute(statement)
end