Class: Nquery::DataSources::RailsAdapter
- Inherits:
-
Adapter
- Object
- Adapter
- Nquery::DataSources::RailsAdapter
show all
- Defined in:
- lib/nquery/data_sources/rails_adapter.rb
Instance Method Summary
collapse
Methods inherited from Adapter
for, #initialize
Instance Method Details
#columns(table_name) ⇒ Object
12
13
14
|
# File 'lib/nquery/data_sources/rails_adapter.rb', line 12
def columns(table_name)
connection.columns(table_name).map { |c| { name: c.name, type: c.type.to_s } }
end
|
#execute_readonly(statement, timeout: 15, row_limit: 10_000) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/nquery/data_sources/rails_adapter.rb', line 16
def execute_readonly(statement, timeout: 15, row_limit: 10_000)
rows = []
columns = []
duration = Benchmark.realtime do
connection.transaction do
connection.execute("SET TRANSACTION READ ONLY") if postgresql?
result = connection.exec_query(sanitize_limit(statement, row_limit))
columns = result.columns
rows = result.rows
raise ActiveRecord::Rollback
end
end
{ columns: columns, rows: rows, row_count: rows.size, duration_ms: (duration * 1000).round }
end
|
#tables ⇒ Object
8
9
10
|
# File 'lib/nquery/data_sources/rails_adapter.rb', line 8
def tables
connection.tables.reject { |t| hidden_table?(t) }
end
|