Class: MassInsert::Builder::Adapters::SQLite3Adapter

Inherits:
Adapter
  • Object
show all
Defined in:
lib/mass_insert/builder/adapters/sqlite3_adapter.rb

Instance Attribute Summary

Attributes inherited from Adapter

#options, #values

Instance Method Summary collapse

Methods inherited from Adapter

#columns, #initialize, #method_missing, #sanitized_columns, #timestamp, #timestamp?, #timestamp_format, #timestamp_hash

Methods included from Helpers::AbstractQuery

#begin_string, #execute, #string_columns, #string_single_row_values, #string_single_value

Constructor Details

This class inherits a constructor from MassInsert::Builder::Adapters::Adapter

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class MassInsert::Builder::Adapters::Adapter

Instance Method Details

#string_rows_valuesObject

The method is overwrited because the record separator to sqlite adapter is different.



20
21
22
# File 'lib/mass_insert/builder/adapters/sqlite3_adapter.rb', line 20

def string_rows_values
  values.map{ |row| string_single_row_values(row) }.join(" UNION SELECT ")
end

#string_valuesObject

The method is overwrited because the queries structure to Sqlite3 adapter are different.



14
15
16
# File 'lib/mass_insert/builder/adapters/sqlite3_adapter.rb', line 14

def string_values
  "SELECT #{string_rows_values};"
end

#values_per_insertionObject

Returns the amount of records to each query. Tries to take the each_slice option value or 500 due it’s a standard in SQLite.



8
9
10
# File 'lib/mass_insert/builder/adapters/sqlite3_adapter.rb', line 8

def values_per_insertion
  each_slice || 500
end