# File lib/amalgalite/table.rb, line 63 def primary_key unless @primary_key pk_column_names = Set.new( primary_key_columns.collect { |c| c.name } ) unique_indexes = indexes.values.find_all { |i| i.unique? } pk_result = [] unique_indexes.each do |idx| idx_column_names = Set.new( idx.columns.collect { |c| c.name } ) r = idx_column_names ^ pk_column_names if r.size == 0 then pk_result = idx.columns break end end # no joy, see about just using all the columns that say the are primary # keys if pk_result.empty? then pk_result = self.primary_key_columns end @primary_key = pk_result end return @primary_key end