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