Class: ActiveRecord::ConnectionAdapters::RdbAdapter

Inherits:
AbstractAdapter
  • Object
show all
Includes:
ActiveRecord::ConnectionAdapters::Rdb::DatabaseLimits, ActiveRecord::ConnectionAdapters::Rdb::DatabaseStatements, ActiveRecord::ConnectionAdapters::Rdb::Quoting, ActiveRecord::ConnectionAdapters::Rdb::SchemaStatements
Defined in:
lib/active_record/connection_adapters/rdb_adapter.rb

Overview

:nodoc:

Constant Summary collapse

ADAPTER_NAME =
'rdb'.freeze
@@default_transaction_isolation =
:read_committed

Constants included from ActiveRecord::ConnectionAdapters::Rdb::Quoting

ActiveRecord::ConnectionAdapters::Rdb::Quoting::QUOTED_FALSE, ActiveRecord::ConnectionAdapters::Rdb::Quoting::QUOTED_POSITION, ActiveRecord::ConnectionAdapters::Rdb::Quoting::QUOTED_TRUE, ActiveRecord::ConnectionAdapters::Rdb::Quoting::QUOTED_VALUE

Instance Method Summary collapse

Methods included from ActiveRecord::ConnectionAdapters::Rdb::SchemaStatements

#add_column, after, #change_column, #change_column_default, #change_column_null, #columns, #create_schema_dumper, #create_sequence, #create_table, #drop_sequence, #drop_table, #drop_trigger, #index_exists?, #index_name, #index_name_exists?, #indexes, #native_database_types, #primary_key, #remove_column, #remove_column_for_alter, #remove_index, #remove_index!, #rename_column, #sequence_exists?, #tables, #trigger_exists?, #type_to_sql, #views

Methods included from ActiveRecord::ConnectionAdapters::Rdb::Quoting

#lookup_cast_type_from_column, #quote_column_name, #quote_string, #quote_table_name_for_assignment, #quoted_date, #quoted_false, #quoted_true, #type_cast_from_column, #type_casted_binds, #unquoted_false, #unquoted_true

Methods included from ActiveRecord::ConnectionAdapters::Rdb::DatabaseStatements

#begin_db_transaction, #begin_isolated_db_transaction, #commit_db_transaction, #default_sequence_name, #exec_query, #execute, #explain, #insert_fixtures_set, #last_inserted_id, #next_sequence_value, #reset_sequence!, #rollback_db_transaction, #transaction_isolation_levels

Methods included from ActiveRecord::ConnectionAdapters::Rdb::DatabaseLimits

#column_name_length, #in_clause_length, #index_name_length, #indexes_per_table, #sql_query_length, #table_alias_length, #table_name_length

Constructor Details

#initialize(connection, logger = nil, config = {}) ⇒ RdbAdapter

Returns a new instance of RdbAdapter.



32
33
34
35
36
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 32

def initialize(connection, logger = nil, config = {})
  super(connection, logger, config)
  # Our Responsibility
  @config = config
end

Instance Method Details

#active?Boolean

Returns:

  • (Boolean)


90
91
92
93
94
95
96
97
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 90

def active?
  return false unless @connection.open?

  @connection.query('SELECT 1 FROM RDB$DATABASE')
  true
rescue StandardError
  false
end

#adapter_nameObject



46
47
48
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 46

def adapter_name
  ADAPTER_NAME
end

#arel_visitorObject



38
39
40
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 38

def arel_visitor
  Arel::Visitors::Rdb.new self
end

#create_savepoint(name = current_savepoint_name) ⇒ Object



121
122
123
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 121

def create_savepoint(name = current_savepoint_name)
  execute("SAVEPOINT #{name}")
end

#disconnect!Object



104
105
106
107
108
109
110
111
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 104

def disconnect!
  super
  begin
    @connection.close
  rescue StandardError
    nil
  end
end

#ids_in_list_limitObject



82
83
84
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 82

def ids_in_list_limit
  1499
end

#prefetch_primary_key?(_table_name = nil) ⇒ Boolean

Returns:

  • (Boolean)


78
79
80
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 78

def prefetch_primary_key?(_table_name = nil)
  true
end

#reconnect!Object



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

def reconnect!
  disconnect!
  @connection = ::Fb::Database.connect(@config)
end

#release_savepoint(name = current_savepoint_name) ⇒ Object



129
130
131
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 129

def release_savepoint(name = current_savepoint_name)
  execute("RELEASE SAVEPOINT #{name}")
end

#requires_reloading?Boolean

Returns:

  • (Boolean)


117
118
119
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 117

def requires_reloading?
  false
end

#reset!Object



113
114
115
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 113

def reset!
  reconnect!
end

#rollback_to_savepoint(name = current_savepoint_name) ⇒ Object



125
126
127
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 125

def rollback_to_savepoint(name = current_savepoint_name)
  execute("ROLLBACK TO SAVEPOINT #{name}")
end

#schema_creationObject



50
51
52
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 50

def schema_creation
  Rdb::SchemaCreation.new self
end

#supports_count_distinct?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 62

def supports_count_distinct?
  true
end

#supports_ddl_transactions?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 66

def supports_ddl_transactions?
  true
end

#supports_migrations?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 54

def supports_migrations?
  true
end

#supports_multi_insert?Boolean

Returns:

  • (Boolean)


86
87
88
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 86

def supports_multi_insert?
  false
end

#supports_primary_key?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 58

def supports_primary_key?
  true
end

#supports_savepoints?Boolean

Returns:

  • (Boolean)


74
75
76
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 74

def supports_savepoints?
  true
end

#supports_transaction_isolation?Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 70

def supports_transaction_isolation?
  true
end

#valid_type?(type) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/active_record/connection_adapters/rdb_adapter.rb', line 42

def valid_type?(type)
  !native_database_types[type].nil? || !native_database_types[type.type].nil?
end