class ActiveRecord::ConnectionAdapters::AuroraServerlessAdapter

Public Class Methods

name() click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2.rb, line 12
def self.name
  'Mysql2Adapter'
end

Public Instance Methods

mysql2_connection(config) click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2.rb, line 16
def mysql2_connection(config)
  aurora_serverless_connection(config)
end
supports_advisory_locks?() click to toggle source

Abstract Mysql Adapter

# File lib/active_record/connection_adapters/aurora_serverless/mysql2.rb, line 22
def supports_advisory_locks?
  false
end

Private Instance Methods

combine_multi_statements(total_sql) click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2.rb, line 80
def combine_multi_statements(total_sql)
  total_sql
end
connect() click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2.rb, line 29
def connect
  @connection = ConnectionHandling.aurora_serverless_connection_from_config(@config)
  configure_connection
end
execute_batch(sql, name = nil) click to toggle source

Database Statements

# File lib/active_record/connection_adapters/aurora_serverless/mysql2.rb, line 68
def execute_batch(sql, name = nil)
  execute(sql, name)
end
max_allowed_packet() click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2.rb, line 84
def max_allowed_packet
  65536
end
multi_statements_enabled?(flags) click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2.rb, line 72
def multi_statements_enabled?(flags)
  false
end
translate_exception(exception, message:, sql:, binds:) click to toggle source

Abstract Mysql Adapter

# File lib/active_record/connection_adapters/aurora_serverless/mysql2.rb, line 36
def translate_exception(exception, message:, sql:, binds:)
  msg = exception.message
  case msg
  when /Duplicate entry/
    RecordNotUnique.new(msg, sql: sql, binds: binds)
  when /foreign key constraint fails/
    InvalidForeignKey.new(msg, sql: sql, binds: binds)
  when /Cannot add foreign key constraint/,
       /referenced column .* in foreign key constraint .* are incompatible/
    mismatched_foreign_key(msg, sql: sql, binds: binds)
  when /Data too long for column/
    ValueTooLong.new(msg, sql: sql, binds: binds)
  when /Out of range value for column/
    RangeError.new(msg, sql: sql, binds: binds)
  when /Column .* cannot be null/,
       /Field .* doesn't have a default value/
    NotNullViolation.new(msg, sql: sql, binds: binds)
  when /Deadlock found when trying to get lock/
    Deadlocked.new(msg, sql: sql, binds: binds)
  when /Lock wait timeout exceeded/
    LockWaitTimeout.new(msg, sql: sql, binds: binds)
  when /max_statement_time exceeded/, /Sort aborted/
    StatementTimeout.new(msg, sql: sql, binds: binds)
  when /Query execution was interrupted/
    QueryCanceled.new(msg, sql: sql, binds: binds)
  else
    ActiveRecord::StatementInvalid.new(msg, sql: sql, binds: binds)
  end
end
with_multi_statements() { || ... } click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2.rb, line 76
def with_multi_statements
  yield
end