def update_sequences(
rep_prefix, table_name, increment, offset,
left_sequence_values, right_sequence_values, adjustment_buffer)
left_sequence_values.each do |sequence_name, left_current_value|
row = select_one("select last_value, increment_by from \"#{sequence_name}\"")
current_increment = row['increment_by'].to_i
current_value = row['last_value'].to_i
unless current_increment == increment and current_value % increment == offset
max_current_value =
[left_current_value[:value], right_sequence_values[sequence_name][:value]].max +
adjustment_buffer
new_start = max_current_value - (max_current_value % increment) + increment + offset
execute("alter sequence \"\#{sequence_name}\" increment by \#{increment} restart with \#{new_start}\n")
end
end
end