Class: Ridgepole::MySQL::Partition::RangePartitionChecker

Inherits:
Object
  • Object
show all
Defined in:
lib/ridgepole/mysql/partition/range_partition_checker.rb

Instance Method Summary collapse

Constructor Details

#initialize(table_name, range_parser) ⇒ RangePartitionChecker

Returns a new instance of RangePartitionChecker.



5
6
7
8
# File 'lib/ridgepole/mysql/partition/range_partition_checker.rb', line 5

def initialize(table_name, range_parser)
  @table_name = table_name
  @applying_partition_names = range_parser.partition_names
end

Instance Method Details

#can_apply?(connection) ⇒ Boolean

Require information_schema read access

Returns:

  • (Boolean)


11
12
13
14
15
16
17
18
19
# File 'lib/ridgepole/mysql/partition/range_partition_checker.rb', line 11

def can_apply?(connection)
  raw_connection = connection.raw_connection

  db_name = raw_connection.query_options[:database]
  query_string = query(db_name)

  embbed_partition = raw_connection.query(query_string).each.flatten
  embbed_partition != @applying_partition_names
end