Sha256: b19143b6d7d68aeea17c135198884444c8c514723f375472cebbc2cf1aea9a1e

Contents?: true

Size: 935 Bytes

Versions: 2

Compression:

Stored size: 935 Bytes

Contents

require 'active_record'
require 'simple_mysql_partitioning/sql'

module SimpleMySQLPartitioning
  class Executor
    def initialize(klass, partition_name)
      @klass = klass
      @table_name = @klass.table_name
      @partition_name = partition_name
    end

    def add(less_than_value)
      add_partition_sql = SQL.add_sql(@table_name, @partition_name, less_than_value)
      @klass.connection.execute(add_partition_sql)
    end

    def reorganize(less_than_value, reorganize_partition_name)
      @klass.connection.execute(
        SQL.reorganize_sql(
          @table_name,
          @partition_name, less_than_value,
          reorganize_partition_name
        )
      )
    end

    def exist?
      @klass.connection.select_all(
        SQL.exist_sql(@table_name, @partition_name)
      ).to_hash.present?
    end

    def drop
      @klass.connection.execute(SQL.parge_sql(@table_name, @partition_name))
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
simple_mysql_partitioning-0.1.1 lib/simple_mysql_partitioning/executor.rb
simple_mysql_partitioning-0.1.0 lib/simple_mysql_partitioning/executor.rb