lib/logstash/inputs/jdbc.rb in logstash-input-jdbc-3.1.0 vs lib/logstash/inputs/jdbc.rb in logstash-input-jdbc-4.0.0

- old
+ new

@@ -158,30 +158,10 @@ config :record_last_run, :validate => :boolean, :default => true # Whether to force the lowercasing of identifier fields config :lowercase_column_names, :validate => :boolean, :default => true - # The character encoding of all columns, leave empty if the columns are already properly UTF-8 - # encoded. Specific columns charsets using :columns_charset can override this setting. - config :charset, :validate => :string - - # The character encoding for specific columns. This option will override the `:charset` option - # for the specified columns. - # - # Example: - # [source,ruby] - # ---------------------------------- - # input { - # jdbc { - # ... - # columns_charset => { "column0" => "ISO-8859-1" } - # ... - # } - # } - # this will only convert column0 that has ISO-8859-1 as an original encoding. - config :columns_charset, :validate => :hash, :default => {} - public def register require "rufus/scheduler" prepare_jdbc_connection @@ -191,12 +171,10 @@ if @tracking_column.nil? raise(LogStash::ConfigurationError, "Must set :tracking_column if :use_column_value is true.") end end - @enable_encoding = !@charset.nil? || !@columns_charset.empty? - # load sql_last_value from file if exists if @clean_run && File.exist?(@last_run_metadata_path) File.delete(@last_run_metadata_path) elsif File.exist?(@last_run_metadata_path) @sql_last_value = YAML.load(File.read(@last_run_metadata_path)) @@ -205,24 +183,10 @@ unless @statement.nil? ^ @statement_filepath.nil? raise(LogStash::ConfigurationError, "Must set either :statement or :statement_filepath. Only one may be set at a time.") end @statement = File.read(@statement_filepath) if @statement_filepath - - if (@jdbc_password_filepath and @jdbc_password) - raise(LogStash::ConfigurationError, "Only one of :jdbc_password, :jdbc_password_filepath may be set at a time.") - end - - @jdbc_password = File.read(@jdbc_password_filepath).strip if @jdbc_password_filepath - - if enable_encoding? - @converters = {} - @columns_charset.each do |column_name, encoding| - @converters[encoding] = LogStash::Util::Charset.new(encoding) - end - @converters[@charset] = LogStash::Util::Charset.new(@charset) if @charset - end end # def register def run(queue) if @schedule @scheduler = Rufus::Scheduler.new(:max_work_threads => 1) @@ -248,14 +212,10 @@ def execute_query(queue) # update default parameters @parameters['sql_last_value'] = @sql_last_value execute_statement(@statement, @parameters) do |row| - if enable_encoding? - ## do the necessary conversions to string elements - row = Hash[row.map { |k, v| [k.to_s, convert(k, v)] }] - end event = LogStash::Event.new(row) decorate(event) queue << event end end @@ -264,26 +224,6 @@ if @record_last_run File.write(@last_run_metadata_path, YAML.dump(@sql_last_value)) end end - private - - def enable_encoding? - @enable_encoding - end - - # make sure the encoding is uniform over fields - def convert(column_name, value) - return value unless value.is_a?(String) - column_charset = @columns_charset[column_name] - if column_charset - converter = @converters[column_charset] - converter.convert(value) - elsif @charset - converter = @converters[@charset] - converter.convert(value) - else - value - end - end end # class LogStash::Inputs::Jdbc