Module: Ridgepole::ExecuteExpander::ConnectionAdapterExt

Defined in:
lib/ridgepole/execute_expander.rb

Instance Method Summary collapse

Instance Method Details

#execute(sql, name = nil) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/ridgepole/execute_expander.rb', line 14

def execute(sql, name = nil)
  if Ridgepole::ExecuteExpander.noop
    if (callback = Ridgepole::ExecuteExpander.callback)
      sql = append_alter_extra(sql)
      callback.call(sql, name)
    end

    if sql =~ /\A(SELECT|SHOW)\b/i
      begin
        super(sql, name)
      rescue StandardError
        Stub.new
      end
    else
      Stub.new
    end
  elsif Ridgepole::ExecuteExpander.use_script
    if sql =~ /\A(SELECT|SHOW)\b/i
      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