Sha256: c7e4646197e59e2c04f83369d019f84dbd71cd3cdbca523525cd4b5a77c75a4b
Contents?: true
Size: 1.26 KB
Versions: 1
Compression:
Stored size: 1.26 KB
Contents
module SimpleMySQLPartitioning class SQL class << self def exists_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 #{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 #{less_than(max_value)} );" end def parge_sql(table_name, partition_name) "ALTER TABLE #{table_name} DROP PARTITION #{partition_name};" end private def less_than(value) value == 'MAXVALUE' ? value : "('#{value}')" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
simple_mysql_partitioning-0.2.1 | lib/simple_mysql_partitioning/sql.rb |