class LogStash::PluginMixins::Jdbc::NormalStatementHandler

Public Instance Methods

perform_query(db, sql_last_value, jdbc_paging_enabled, jdbc_page_size) { |row| ... } click to toggle source

Performs the query, respecting our pagination settings, yielding once per row of data @param db [Sequel::Database] @param sql_last_value [Integet|DateTime|Time] @yieldparam row [Hash{Symbol=>Object}]

# File lib/logstash/plugin_mixins/jdbc/statement_handler.rb, line 32
def perform_query(db, sql_last_value, jdbc_paging_enabled, jdbc_page_size)
  query = build_query(db, sql_last_value)
  if jdbc_paging_enabled
    query.each_page(jdbc_page_size) do |paged_dataset|
      paged_dataset.each do |row|
        yield row
      end
    end
  else
    query.each do |row|
      yield row
    end
  end
end

Private Instance Methods

build_query(db, sql_last_value) click to toggle source
# File lib/logstash/plugin_mixins/jdbc/statement_handler.rb, line 49
def build_query(db, sql_last_value)
  parameters[:sql_last_value] = sql_last_value
  query = db[statement, parameters]
  statement_logger.log_statement_parameters(statement, parameters, query)
  query
end
post_init(plugin) click to toggle source
# File lib/logstash/plugin_mixins/jdbc/statement_handler.rb, line 56
def post_init(plugin)
  @parameter_keys = ["sql_last_value"] + plugin.parameters.keys
  @parameters = plugin.parameters.inject({}) do |hash,(k,v)|
    case v
    when LogStash::Timestamp
      hash[k.to_sym] = v.time
    else
      hash[k.to_sym] = v
    end
    hash
  end
end