Sha256: 050d299152c2b8bc65ec488c3f4f54f8d5c0d836f92559683c920bab97a1ef56

Contents?: true

Size: 1.87 KB

Versions: 4

Compression:

Stored size: 1.87 KB

Contents

# encoding: utf-8
require_relative "basic_database"

module LogStash module Filters module Jdbc
  class ReadOnlyDatabase < BasicDatabase

    def count(statement)
      result = 0
      debug_log_messages = ["Lookup query count is zero"]
      begin
        # its the responsibility of the caller to manage the connections see Loader
        if connected?
          result = @db[statement].count
        else
          debug_log_messages << "and there is no connection to the remote db at this time"
        end
      rescue ::Sequel::Error => err
        # a fatal issue
        msg = "Exception occurred when executing loader Jdbc query count"
        logger.error(msg, :exception => err.message, :backtrace => err.backtrace.take(8))
        raise wrap_error(LookupJdbcException, err, msg)
      end
      logger.debug(debug_log_messages.join(' ')) if result.zero?
      result
    end

    def query(statement)
      result = empty_record_set
      debug_log_messages = ["Lookup query results are empty"]
      begin
        # its the responsibility of the caller to manage the connections see Loader
        if connected?
          result = @db[statement].all
        else
          debug_log_messages << "and there is no connection to the remote db at this time"
        end
      rescue ::Sequel::Error => err
        # a fatal issue
        msg = "Exception occurred when executing loader Jdbc query"
        logger.error(msg, :exception => err.message, :backtrace => err.backtrace.take(8))
        raise wrap_error(LookupJdbcException, err, msg)
      end
      logger.debug(debug_log_messages.join(' ')) if result.empty?
      result
    end

    def post_create(connection_string, driver_class, driver_library, user, password)
      verify_connection(connection_string, driver_class, driver_library, user, password)
    end

    private

    def post_initialize()
      super
    end
  end
end end end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
logstash-integration-jdbc-5.5.3 lib/logstash/filters/jdbc/read_only_database.rb
logstash-integration-jdbc-5.5.2 lib/logstash/filters/jdbc/read_only_database.rb
logstash-integration-jdbc-5.5.1 lib/logstash/filters/jdbc/read_only_database.rb
logstash-integration-jdbc-5.5.0 lib/logstash/filters/jdbc/read_only_database.rb