Class: RailsDb::Adapters::BaseAdapter
- Inherits:
-
Object
- Object
- RailsDb::Adapters::BaseAdapter
show all
- Extended by:
- Connection
- Defined in:
- lib/rails_db/adapters/base_adapter.rb
Constant Summary
collapse
- MULTI_STATEMENT_HELP_TEXT =
"EXPERIMENTAL: You can import only file with SQL statements separated by ';'. Each new statement must start from new line."
Class Method Summary
collapse
Methods included from Connection
column_names, column_properties, columns, connection, to_param
Class Method Details
.adapter_name ⇒ Object
48
49
50
|
# File 'lib/rails_db/adapters/base_adapter.rb', line 48
def self.adapter_name
'base'
end
|
.count(table_name) ⇒ Object
69
70
71
|
# File 'lib/rails_db/adapters/base_adapter.rb', line 69
def self.count(table_name)
select("SELECT COUNT(*) FROM #{table_name}")[0].rows.flatten.last.to_i
end
|
.delete(table_name, pk_name, pk_id) ⇒ Object
60
61
62
63
64
65
66
67
|
# File 'lib/rails_db/adapters/base_adapter.rb', line 60
def self.delete(table_name, pk_name, pk_id)
case pk_id
when Fixnum, Bignum then
execute("DELETE FROM #{table_name} WHERE #{pk_name} = #{pk_id};")
else
execute("DELETE FROM #{table_name} WHERE #{pk_name} = '#{pk_id}';")
end
end
|
.exec_query(sql) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/rails_db/adapters/base_adapter.rb', line 28
def self.exec_query(sql)
t0 = Time.now
results = nil
execute_with_sandbox_if_needed do
results = connection.exec_query(sql)
end
execution_time = Time.now - t0
[results, execution_time]
end
|
.execute(sql) ⇒ Object
20
21
22
23
24
25
26
|
# File 'lib/rails_db/adapters/base_adapter.rb', line 20
def self.execute(sql)
t0 = Time.now
execute_with_sandbox_if_needed do
connection.execute(sql)
end
Time.now - t0
end
|
.execute_with_sandbox_if_needed ⇒ Object
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/rails_db/adapters/base_adapter.rb', line 9
def self.execute_with_sandbox_if_needed
if RailsDb.sandbox
ActiveRecord::Base.transaction do
yield
raise ActiveRecord::Rollback
end
else
yield
end
end
|
.explain(sql) ⇒ Object
44
45
46
|
# File 'lib/rails_db/adapters/base_adapter.rb', line 44
def self.explain(sql)
BaseAdapter.exec_query(sql)
end
|
.indexes(table_name) ⇒ Object
77
78
79
|
# File 'lib/rails_db/adapters/base_adapter.rb', line 77
def self.indexes(table_name)
connection.indexes(table_name)
end
|
.mime ⇒ Object
52
53
54
|
# File 'lib/rails_db/adapters/base_adapter.rb', line 52
def self.mime
'text/x-sql'
end
|
.primary_key(table_name) ⇒ Object
73
74
75
|
# File 'lib/rails_db/adapters/base_adapter.rb', line 73
def self.primary_key(table_name)
connection.primary_key(table_name)
end
|
.select(sql) ⇒ Object
40
41
42
|
# File 'lib/rails_db/adapters/base_adapter.rb', line 40
def self.select(sql)
BaseAdapter.exec_query(sql)
end
|
.truncate(table_name) ⇒ Object
56
57
58
|
# File 'lib/rails_db/adapters/base_adapter.rb', line 56
def self.truncate(table_name)
execute("TRUNCATE TABLE #{table_name};")
end
|