Parent

SQL::Postgres::Table

Public Class Methods

new(adapter, table_name) click to toggle source
    # File lib/dm-migrations/sql/postgres.rb, line 44
44:       def initialize(adapter, table_name)
45:         @adapter, @name = adapter, table_name
46:         @columns = []
47:         adapter.query_table(table_name).each do |col_struct|
48:           @columns << SQL::Postgres::Column.new(col_struct)
49:         end
50: 
51:         query_column_constraints
52:       end

Public Instance Methods

query_column_constraints() click to toggle source
    # File lib/dm-migrations/sql/postgres.rb, line 54
54:       def query_column_constraints
55:         @adapter.select(
56:           "SELECT * FROM information_schema.table_constraints WHERE table_name='#{@name}' AND table_schema=current_schema()"
57:         ).each do |table_constraint|
58:           @adapter.select(
59:             "SELECT * FROM information_schema.constraint_column_usage WHERE constraint_name='#{table_constraint.constraint_name}' AND table_schema=current_schema()"
60:           ).each do |constrained_column|
61:             @columns.each do |column|
62:               if column.name == constrained_column.column_name
63:                 case table_constraint.constraint_type
64:                 when "UNIQUE"       then column.unique = true
65:                 when "PRIMARY KEY"  then column.primary_key = true
66:                 end
67:               end
68:             end
69:           end
70:         end
71:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.