Class: ActiveRecord::ConnectionAdapters::ArFirebirdAdapter
Constant Summary
collapse
- ADAPTER_NAME =
"ArFirebird".freeze
- DEFAULT_ENCODING =
"Windows-1252".freeze
- NATIVE_DATABASE_TYPES =
{
primary_key: 'integer not null primary key',
string: { name: 'varchar', limit: 255 },
text: { name: 'blob sub_type text' },
integer: { name: 'integer' },
float: { name: 'float' },
decimal: { name: 'decimal' },
datetime: { name: 'timestamp' },
timestamp: { name: 'timestamp' },
date: { name: 'date' },
binary: { name: 'blob' },
boolean: { name: ActiveRecord::ConnectionAdapters::ArFirebirdAdapter.boolean_domain[:name] }
}
Class Attribute Summary collapse
Instance Method Summary
collapse
#lookup_cast_type_from_column, #quote_column_name, #quoted_date, #quoted_false, #quoted_true, #unquoted_false, #unquoted_true
#add_column, #change_column, #foreign_keys, #indexes, #remove_index, #tables, #views
#begin_db_transaction, #commit_db_transaction, #create_sequence, #create_table, #default_sequence_name, #drop_sequence, #drop_table, #exec_query, #exec_rollback_db_transaction, #execute, #next_sequence_value, #remove_column, #sequence_exists?
#column_name_length, #in_clause_length, #index_name_length, #indexes_per_table, #sql_query_length, #table_alias_length, #table_name_length
#combine_bind_parameters
Class Attribute Details
.boolean_domain ⇒ Object
Returns the value of attribute boolean_domain.
28
29
30
|
# File 'lib/active_record/connection_adapters/ar_firebird_adapter.rb', line 28
def boolean_domain
@boolean_domain
end
|
Instance Method Details
#active? ⇒ Boolean
57
58
59
60
61
62
63
64
|
# File 'lib/active_record/connection_adapters/ar_firebird_adapter.rb', line 57
def active?
return false unless @connection.open?
@connection.query("SELECT 1 FROM RDB$DATABASE")
true
rescue
false
end
|
#arel_visitor ⇒ Object
49
50
51
|
# File 'lib/active_record/connection_adapters/ar_firebird_adapter.rb', line 49
def arel_visitor
@arel_visitor ||= Arel::Visitors::ArFirebird.new(self)
end
|
#disconnect! ⇒ Object
71
72
73
74
|
# File 'lib/active_record/connection_adapters/ar_firebird_adapter.rb', line 71
def disconnect!
super
@connection.close rescue nil
end
|
#encoding ⇒ Object
98
99
100
|
# File 'lib/active_record/connection_adapters/ar_firebird_adapter.rb', line 98
def encoding
@connection.encoding
end
|
#log(sql, name = "SQL", binds = [], type_casted_binds = [], statement_name = nil) ⇒ Object
102
103
104
105
|
# File 'lib/active_record/connection_adapters/ar_firebird_adapter.rb', line 102
def log(sql, name = "SQL", binds = [], type_casted_binds = [], statement_name = nil) sql = sql.encode('UTF-8', encoding) if sql.encoding.to_s == encoding
super
end
|
#native_database_types ⇒ Object
45
46
47
|
# File 'lib/active_record/connection_adapters/ar_firebird_adapter.rb', line 45
def native_database_types
NATIVE_DATABASE_TYPES
end
|
#prefetch_primary_key?(table_name = nil) ⇒ Boolean
53
54
55
|
# File 'lib/active_record/connection_adapters/ar_firebird_adapter.rb', line 53
def prefetch_primary_key?(table_name = nil)
true
end
|
#primary_keys(table_name) ⇒ Object
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/active_record/connection_adapters/ar_firebird_adapter.rb', line 80
def primary_keys(table_name)
raise ArgumentError unless table_name.present?
names = query_values(<<~SQL, "SCHEMA")
SELECT
s.rdb$field_name
FROM
rdb$indices i
JOIN rdb$index_segments s ON i.rdb$index_name = s.rdb$index_name
LEFT JOIN rdb$relation_constraints c ON i.rdb$index_name = c.rdb$index_name
WHERE
i.rdb$relation_name = '#{table_name.upcase}'
AND c.rdb$constraint_type = 'PRIMARY KEY';
SQL
names.map(&:strip).map(&:downcase)
end
|
#reconnect! ⇒ Object
66
67
68
69
|
# File 'lib/active_record/connection_adapters/ar_firebird_adapter.rb', line 66
def reconnect!
disconnect!
@connection = ::Fb::Database.connect(@config)
end
|
#reset! ⇒ Object
76
77
78
|
# File 'lib/active_record/connection_adapters/ar_firebird_adapter.rb', line 76
def reset!
reconnect!
end
|
#supports_foreign_keys? ⇒ Boolean
107
108
109
|
# File 'lib/active_record/connection_adapters/ar_firebird_adapter.rb', line 107
def supports_foreign_keys?
true
end
|