Class: Droonga::Catalog::Schema::ColumnCreateSorter

Inherits:
Object
  • Object
show all
Includes:
TSort
Defined in:
lib/droonga/catalog/schema.rb

Instance Method Summary collapse

Constructor Details

#initialize(tables) ⇒ ColumnCreateSorter



232
233
234
# File 'lib/droonga/catalog/schema.rb', line 232

def initialize(tables)
  @tables = tables
end

Instance Method Details

#all_columnsObject



236
237
238
# File 'lib/droonga/catalog/schema.rb', line 236

def all_columns
  @tables.values.collect {|table| table.columns.values}.flatten
end

#tsort_each_child(column, &block) ⇒ Object



244
245
246
247
248
249
250
251
252
253
# File 'lib/droonga/catalog/schema.rb', line 244

def tsort_each_child(column, &block)
  dependent_column_names = column.index_options.sources || []
  dependent_column_names -= ["_key"] # _key always exists after the table created
  reference_table = @tables[column.value_type_groonga]
  # TODO when _key specified, check to ensure reference_table is not Array
  dependent_columns = dependent_column_names.collect do |column_name|
    reference_table.columns[column_name]
  end
  dependent_columns.each(&block)
end

#tsort_each_node(&block) ⇒ Object



240
241
242
# File 'lib/droonga/catalog/schema.rb', line 240

def tsort_each_node(&block)
  all_columns.each(&block)
end