Sha256: c384dc0a6ecfc93ea50e062186496c2e8250e85df34167b2a5b5d1f034c9d939

Contents?: true

Size: 1.33 KB

Versions: 22

Compression:

Stored size: 1.33 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
        $log.info(ret) # log all alter table events even if the table is not subject to sync.  This is for troubleshooting purpose.
        ret
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
flydata-0.5.11 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.5.10 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.5.9 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.5.8 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.5.7 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.5.6 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.5.5 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.5.4 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.5.3 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.5.2 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.5.1 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.5.0 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.4.3 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.4.2 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.4.1 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.4.0 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.3.24 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.3.23 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.3.22 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb
flydata-0.3.21 lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb