class ArJdbc::PostgreSQL::SchemaCreation

@private copied (and adjusted) from native adapter 4.0/4.1/4.2

Private Instance Methods

add_column_options!(sql, options) click to toggle source
Calls superclass method
# File lib/arjdbc/postgresql/schema_creation.rb, line 32
def add_column_options!(sql, options)
  if options[:array] || options[:column].try(:array)
    sql << '[]'
  end

  column = options.fetch(:column) { return super }
  if column.type == :uuid && options[:default] =~ /\(\)/
    sql << " DEFAULT #{options[:default]}"
  else
    super
  end
end
type_for_column(column) click to toggle source
Calls superclass method
# File lib/arjdbc/postgresql/schema_creation.rb, line 45
def type_for_column(column)
  if column.array
    @conn.lookup_cast_type("#{column.sql_type}[]")
  else
    super
  end
end
visit_AddColumn(o) click to toggle source
# File lib/arjdbc/postgresql/schema_creation.rb, line 8
def visit_AddColumn(o)
  sql_type = type_to_sql(o.type.to_sym, o.limit, o.precision, o.scale)
  sql = "ADD COLUMN #{quote_column_name(o.name)} #{sql_type}"
  add_column_options!(sql, column_options(o))
end
visit_ColumnDefinition(o) click to toggle source
Calls superclass method
# File lib/arjdbc/postgresql/schema_creation.rb, line 14
def visit_ColumnDefinition(o)
  sql = super
  if o.primary_key? && o.type == :uuid
    sql << " PRIMARY KEY "
    add_column_options!(sql, column_options(o))
  end
  sql
end