Sha256: 259e39c24ddf6028a16ba726ff276d6e0af0a3004e135f7f0e755d3a6afc7003

Contents?: true

Size: 1.14 KB

Versions: 3

Compression:

Stored size: 1.14 KB

Contents

module SimpleMySQLPartitioning
  class SQL
    class << self
      def exist_sql(table_name, partition_name)
        "SELECT
            table_schema,
            table_name,
            partition_name,
            partition_ordinal_position,
            table_rows
          FROM information_schema.partitions
          WHERE table_name='#{table_name}'
            AND partition_name='#{partition_name}'
          LIMIT 1;"
      end

      def add_sql(table_name, partition_name, value)
        "ALTER TABLE #{table_name}
            ADD PARTITION ( PARTITION #{partition_name}
            VALUES LESS THAN ('#{value}'));"
      end

      def reorganize_sql(table_name, partition_name, value, reorganize_partition_name, max_value = 'MAXVALUE')
        "ALTER TABLE #{table_name}
            REORGANIZE PARTITION #{reorganize_partition_name} INTO (
            PARTITION #{partition_name} VALUES LESS THAN ('#{value}'),
            PARTITION #{reorganize_partition_name} VALUES LESS THAN #{max_value});"
      end

      def parge_sql(table_name, partition_name)
        "ALTER TABLE #{table_name} DROP PARTITION #{partition_name};"
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
simple_mysql_partitioning-0.1.2 lib/simple_mysql_partitioning/sql.rb
simple_mysql_partitioning-0.1.1 lib/simple_mysql_partitioning/sql.rb
simple_mysql_partitioning-0.1.0 lib/simple_mysql_partitioning/sql.rb