def add_index(*col_names)
raise "Do not execute this method in client/server mode!" if \
@db.client?
col_names.each do |c|
raise "Invalid column name: #{c}" unless \
@field_names.include?(c)
raise "recno column cannot be indexed!" if c == :recno
raise "Column already indexed: #{c}" unless \
@field_indexes[@field_names.index(c)].nil?
end
last_index_no_used = 0
@field_indexes.each do |i|
next if i.nil?
index_no = i[-1..-1].to_i
last_index_no_used = index_no if index_no > last_index_no_used
end
@db.engine.add_index(self, col_names, last_index_no_used+1)
@db.engine.remove_recno_index(@name)
@db.engine.remove_indexes(@name)
update_header_vars
create_indexes
create_table_class unless @db.server?
end