Sha256: f800c300a3b5ae92ca6cf3e2072fe2fa77c7320d66825f613688703283407dc5

Contents?: true

Size: 1 KB

Versions: 2

Compression:

Stored size: 1 KB

Contents

require 'active_record'
require 'simple_mysql_partitioning/sql'
require 'simple_mysql_partitioning/base_partitioning'

module SimpleMySQLPartitioning
  class Range < BasePartitioning
    def create(pairs_name_with_value)
      sql = SQL.create_sql(
        table_name,
        klass.partition_config[:column],
        pairs_name_with_value, true
      )

      klass.connection.execute(sql)
    end

    def add(pairs_name_with_value)
      pairs_name_with_value.map do |pair|
        add_partition_sql = SQL.add_sql(table_name, pair.first, pair.last)
        klass.connection.execute(add_partition_sql)
      end
    end

    def reorganize(pairs_name_with_value, reorganize_partition_name, reorganize_partition_value = 'MAXVALUE')
      pairs_name_with_value.map do |pair|
        klass.connection.execute(
          SQL.reorganize_sql(
            table_name,
            pair.first, pair.last,
            reorganize_partition_name,
            reorganize_partition_value
          )
        )
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
simple_mysql_partitioning-1.0.0 lib/simple_mysql_partitioning/range.rb
simple_mysql_partitioning-0.3.0 lib/simple_mysql_partitioning/range.rb