class TableSaw::Queries::ExecuteInsertStatement

Attributes

row[R]
statement[R]

Public Class Methods

new(statement, row) click to toggle source
# File lib/table_saw/queries/execute_insert_statement.rb, line 8
def initialize(statement, row)
  @statement = statement
  @row = row
end

Public Instance Methods

call() click to toggle source
# File lib/table_saw/queries/execute_insert_statement.rb, line 13
def call
  "EXECUTE #{statement.name}(#{values});"
end

Private Instance Methods

connection() click to toggle source
# File lib/table_saw/queries/execute_insert_statement.rb, line 25
def connection
  TableSaw.schema_cache.connection
end
quote_value(column, value) click to toggle source
# File lib/table_saw/queries/execute_insert_statement.rb, line 29
def quote_value(column, value)
  type = connection.lookup_cast_type_from_column(column)
  connection.quote(type.serialize(type.deserialize(value)))
end
values() click to toggle source
# File lib/table_saw/queries/execute_insert_statement.rb, line 19
def values
  TableSaw.schema_cache.columns(statement.table_name).zip(row)
    .map { |column, value| quote_value(column, value) }
    .join(', ')
end