Module: Tidus::Query

Included in:
Anonymization
Defined in:
lib/tidus/query.rb

Instance Method Summary collapse

Instance Method Details

#clear_queryObject



31
32
33
# File 'lib/tidus/query.rb', line 31

def clear_query
  "DROP VIEW IF EXISTS #{view_name}"
end

#clear_viewObject



35
36
37
# File 'lib/tidus/query.rb', line 35

def clear_view
  connection.execute(clear_query)
end

#create_queryObject



17
18
19
20
21
# File 'lib/tidus/query.rb', line 17

def create_query
  "#{create_view_query_part} #{view_name} AS " +
    "SELECT #{view_columns.join(', ')} " +
    "FROM #{table_name}"
end

#create_viewObject



23
24
25
26
27
28
29
# File 'lib/tidus/query.rb', line 23

def create_view
  # Make sure we have up-to-date column information in case a column was changed
  # in a migration directly before.
  reset_column_information

  connection.execute(create_query)
end

#create_view_query_partObject



6
7
8
9
10
11
12
13
14
15
# File 'lib/tidus/query.rb', line 6

def create_view_query_part
  case connection.instance_values['config'][:adapter].to_s.downcase
  when 'postgresql'
    return 'CREATE OR REPLACE VIEW'
  when 'sqlite3'
    return 'CREATE VIEW IF NOT EXISTS'
  else
    return 'CREATE VIEW'
  end
end