Sha256: 7e51f2c6fe1ebcb939a3d1c5062a1c44cb15c835e87ba92381a23fc015913bd5

Contents?: true

Size: 1.2 KB

Versions: 8

Compression:

Stored size: 1.2 KB

Contents

require 'flydata/parser_provider'
require 'flydata/fluent-plugins/mysql/ddl_query_handler'

module Mysql
  class AlterTableQueryHandler < DdlQueryHandler
    PATTERN = /^ALTER TABLE/i

    def initialize(context)
      super
    end

    def pattern
      PATTERN
    end

    def process(record)
      emit_record(:alter_table, record) do |opt|
        ret = nil
        begin
          result = ParserProvider.parser(:mysql, :mysql_alter_table).new.parse(record["normalized_query"])
          if result.nil?
            $log.error("Received unsupported alter table query. normalized query:'#{record['normalized_query']}', raw query: '#{record['query']}'")
          else
            ret = result.tree
            breaking_query = ret[:actions].any?{|action| !action.has_key?(:support_level) || action[:support_level] != :nonbreaking}
            opt[:increment_table_rev] = true if breaking_query
          end
        rescue => e
          msg = <<EOS
Received unsupported alter table query. normalized query:'#{record['normalized_query']}', raw query: '#{record['query']}' Caused by error '#{e.to_s}'
  Stacktrace :
#{e.backtrace.join("\n")}
EOS
          $log.error(msg)
        end
        ret
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
flydata-0.3.18 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.3.17 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.3.16 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.3.15 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.3.14 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.3.13 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.3.12 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.3.11 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb