class Upsert::MergeFunction::Mysql2_Client
@private
Public Instance Methods
execute(row)
click to toggle source
# File lib/upsert/merge_function/Mysql2_Client.rb, line 14 def execute(row) first_try = true begin connection.execute sql(row) rescue Mysql2::Error => e if e.message =~ /PROCEDURE.*does not exist/i if first_try Upsert.logger.info %{[upsert] Function #{name.inspect} went missing, trying to recreate} first_try = false create! retry else Upsert.logger.info %{[upsert] Failed to create function #{name.inspect} for some reason} raise e end else raise e end end end
sql(row)
click to toggle source
# File lib/upsert/merge_function/Mysql2_Client.rb, line 9 def sql(row) quoted_params = (row.selector.values + row.setter.values).map { |v| connection.quote_value v } %{CALL #{name}(#{quoted_params.join(', ')})} end