Class: RailsDb::Adapters::BaseAdapter

Inherits:
Object
  • Object
show all
Extended by:
Connection
Defined in:
lib/rails_db/adapters/base_adapter.rb

Direct Known Subclasses

Mysql, Postgres, Sqlite

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_nameObject



30
31
32
# File 'lib/rails_db/adapters/base_adapter.rb', line 30

def self.adapter_name
  'base'
end

.count(table_name) ⇒ Object



51
52
53
# File 'lib/rails_db/adapters/base_adapter.rb', line 51

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



42
43
44
45
46
47
48
49
# File 'lib/rails_db/adapters/base_adapter.rb', line 42

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



15
16
17
18
19
20
# File 'lib/rails_db/adapters/base_adapter.rb', line 15

def self.exec_query(sql)
  t0 = Time.now
  results = connection.exec_query(sql)
  execution_time = Time.now - t0
  [results, execution_time]
end

.execute(sql) ⇒ Object



9
10
11
12
13
# File 'lib/rails_db/adapters/base_adapter.rb', line 9

def self.execute(sql)
  t0 = Time.now
  connection.execute(sql)
  Time.now - t0
end

.explain(sql) ⇒ Object



26
27
28
# File 'lib/rails_db/adapters/base_adapter.rb', line 26

def self.explain(sql)
  BaseAdapter.exec_query(sql)
end

.indexes(table_name) ⇒ Object



59
60
61
# File 'lib/rails_db/adapters/base_adapter.rb', line 59

def self.indexes(table_name)
  connection.indexes(table_name)
end

.mimeObject



34
35
36
# File 'lib/rails_db/adapters/base_adapter.rb', line 34

def self.mime
  'text/x-sql'
end

.primary_key(table_name) ⇒ Object



55
56
57
# File 'lib/rails_db/adapters/base_adapter.rb', line 55

def self.primary_key(table_name)
  connection.primary_key(table_name)
end

.select(sql) ⇒ Object



22
23
24
# File 'lib/rails_db/adapters/base_adapter.rb', line 22

def self.select(sql)
  BaseAdapter.exec_query(sql)
end

.truncate(table_name) ⇒ Object



38
39
40
# File 'lib/rails_db/adapters/base_adapter.rb', line 38

def self.truncate(table_name)
  execute("TRUNCATE TABLE #{table_name};")
end