Class: ActiveRecord::ConnectionAdapters::RedshiftAdapter

Inherits:
PostgreSQLAdapter
  • Object
show all
Includes:
ActiveRecord::ConnectionAdapters::Redshift::ColumnDumper, ActiveRecord::ConnectionAdapters::Redshift::ReferentialIntegrity, ActiveRecord::ConnectionAdapters::Redshift::SchemaStatements
Defined in:
lib/active_record/connection_adapters/redshift_adapter.rb

Constant Summary collapse

ADAPTER_NAME =
'Redshift'.freeze
NATIVE_DATABASE_TYPES =
{
  primary_key: 'integer identity primary key',
  string:      { name: 'varchar' },
  text:        { name: 'varchar' },
  integer:     { name: 'integer' },
  float:       { name: 'float' },
  decimal:     { name: 'decimal' },
  datetime:    { name: 'timestamp' },
  time:        { name: 'timestamptz' },
  date:        { name: 'date' },
  bigint:      { name: 'bigint' },
  boolean:     { name: 'boolean' },
}.freeze

Instance Method Summary collapse

Methods included from ActiveRecord::ConnectionAdapters::Redshift::SchemaStatements

#columns, #create_database, #create_table, #determine_primary_key_type_conversion, #fetch_type_metadata, #foreign_keys, #indexes, #new_column, #primary_keys, #table_distkey, #table_options, #table_sortkey

Methods included from ActiveRecord::ConnectionAdapters::Redshift::ReferentialIntegrity

#disable_referential_integrity

Methods included from ActiveRecord::ConnectionAdapters::Redshift::ColumnDumper

#column_spec_for_primary_key, #migration_keys, #prepare_column_options

Instance Method Details

#native_database_typesObject

:nodoc:



91
92
93
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 91

def native_database_types #:nodoc:
  NATIVE_DATABASE_TYPES
end

#postgresql_versionObject



115
116
117
118
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 115

def postgresql_version
  # Will pass all inernal version support checks
  Float::INFINITY
end

#schema_creationObject

:nodoc:



63
64
65
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 63

def schema_creation # :nodoc:
  Redshift::SchemaCreation.new self
end

#supports_advisory_locks?Boolean

Returns:

  • (Boolean)


103
104
105
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 103

def supports_advisory_locks?
  false
end

#supports_expression_index?Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 75

def supports_expression_index?
  false
end

#supports_extensions?Boolean

Returns:

  • (Boolean)


95
96
97
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 95

def supports_extensions?
  false
end

#supports_index_sort_order?Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 67

def supports_index_sort_order?
  false
end

#supports_json?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 83

def supports_json?
  false
end

#supports_materialized_views?Boolean

Returns:

  • (Boolean)


111
112
113
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 111

def supports_materialized_views?
  false
end

#supports_partial_index?Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 71

def supports_partial_index?
  false
end

#supports_ranges?Boolean

Returns:

  • (Boolean)


107
108
109
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 107

def supports_ranges?
  false
end

#supports_savepoints?Boolean

Returns:

  • (Boolean)


87
88
89
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 87

def supports_savepoints?
  false
end

#supports_transaction_isolation?Boolean

Returns:

  • (Boolean)


79
80
81
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 79

def supports_transaction_isolation?
  false
end

#use_insert_returning?Boolean

Returns:

  • (Boolean)


99
100
101
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 99

def use_insert_returning?
  false
end