Class: ActiveRecord::ConnectionAdapters::AbstractAdapter
- Inherits:
-
Object
- Object
- ActiveRecord::ConnectionAdapters::AbstractAdapter
- Defined in:
- lib/adapter_extensions/connection_adapters/abstract_adapter.rb
Overview
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
Direct Known Subclasses
Instance Method Summary collapse
-
#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.
-
#bulk_load(file, table_name, options = {}) ⇒ Object
Bulk loading interface.
-
#support_select_into_table? ⇒ Boolean
SQL select into statement constructs a new table from the results of a select.
-
#truncate(table_name) ⇒ Object
Truncate the specified table.
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.
32 33 34 |
# File 'lib/adapter_extensions/connection_adapters/abstract_adapter.rb', line 32 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.
15 16 17 18 19 |
# File 'lib/adapter_extensions/connection_adapters/abstract_adapter.rb', line 15 def bulk_load(file, table_name, ={}) 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, ) 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 ...'
26 27 28 |
# File 'lib/adapter_extensions/connection_adapters/abstract_adapter.rb', line 26 def support_select_into_table? false end |
#truncate(table_name) ⇒ Object
Truncate the specified table
9 10 11 |
# File 'lib/adapter_extensions/connection_adapters/abstract_adapter.rb', line 9 def truncate(table_name) execute("TRUNCATE TABLE #{table_name}") end |