module Ridgepole::ExecuteExpander::ConnectionAdapterExt
Public Instance Methods
execute(*args)
click to toggle source
Calls superclass method
# File lib/ridgepole/execute_expander.rb, line 16 def execute(*args) sql = args.fetch(0) name = args[1] if Ridgepole::ExecuteExpander.noop if (callback = Ridgepole::ExecuteExpander.callback) sql = append_alter_extra(sql) callback.call(sql, name) end if /\A(SELECT|SHOW)\b/i.match?(sql) begin super(sql, name) rescue StandardError Stub.new end else Stub.new end elsif Ridgepole::ExecuteExpander.use_script if /\A(SELECT|SHOW)\b/i.match?(sql) super(sql, name) else sql = append_alter_extra(sql) Ridgepole::ExecuteExpander.sql_executer.execute(sql) nil end else sql = append_alter_extra(sql) super(sql, name) end end
Private Instance Methods
append_alter_extra(sql)
click to toggle source
# File lib/ridgepole/execute_expander.rb, line 51 def append_alter_extra(sql) if Ridgepole::ExecuteExpander.alter_extra case sql when /\AALTER\b/i sql += ',' + Ridgepole::ExecuteExpander.alter_extra when /\A(CREATE|DROP)\s+((ONLINE|OFFLINE)\s+)?((UNIQUE|FULLTEXT|SPATIAL)\s+)?INDEX\b/i # https://dev.mysql.com/doc/refman/5.6/en/create-index.html # https://dev.mysql.com/doc/refman/5.6/en/drop-index.html sql += ' ' + Ridgepole::ExecuteExpander.alter_extra.tr(',', ' ') end end sql end