class Nandi::TimeoutPolicies::AccessExclusive

Attributes

migration[R]

Public Class Methods

new(migration) click to toggle source
# File lib/nandi/timeout_policies/access_exclusive.rb, line 15
def initialize(migration)
  @migration = migration
end
validate(migration) click to toggle source
# File lib/nandi/timeout_policies/access_exclusive.rb, line 11
def self.validate(migration)
  new(migration).validate
end

Public Instance Methods

validate() click to toggle source
# File lib/nandi/timeout_policies/access_exclusive.rb, line 19
def validate
  collect_errors(validate_statement_timeout, validate_lock_timeout)
end

Private Instance Methods

lock_timeout_maximum() click to toggle source
# File lib/nandi/timeout_policies/access_exclusive.rb, line 49
def lock_timeout_maximum
  Nandi.config.access_exclusive_lock_timeout_limit
end
statement_timeout_maximum() click to toggle source
# File lib/nandi/timeout_policies/access_exclusive.rb, line 45
def statement_timeout_maximum
  Nandi.config.access_exclusive_statement_timeout_limit
end
validate_lock_timeout() click to toggle source
# File lib/nandi/timeout_policies/access_exclusive.rb, line 36
def validate_lock_timeout
  assert(
    !migration.disable_lock_timeout? &&
    migration.lock_timeout <= lock_timeout_maximum,
    "lock timeout must be at most #{lock_timeout_maximum}ms" \
    " as it takes an ACCESS EXCLUSIVE lock",
  )
end
validate_statement_timeout() click to toggle source
# File lib/nandi/timeout_policies/access_exclusive.rb, line 27
def validate_statement_timeout
  assert(
    !migration.disable_statement_timeout? &&
    migration.statement_timeout <= statement_timeout_maximum,
    "statement timeout must be at most #{statement_timeout_maximum}ms" \
    " as it takes an ACCESS EXCLUSIVE lock",
  )
end