Class: SQLiteSweep::Query::Local
- Defined in:
- lib/sqlitesweep/query/local.rb
Overview
Executes SQL queries against local SQLite databases using the sqlite3 gem.
Opens each database in readonly mode, executes the query, and returns results as an array of hashes. The database connection is always closed after the query, even if an error occurs.
Instance Method Summary collapse
-
#execute(uri) ⇒ Result
The query result.
Methods inherited from Base
Constructor Details
This class inherits a constructor from SQLiteSweep::Query::Base
Instance Method Details
#execute(uri) ⇒ Result
Returns The query result.
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/sqlitesweep/query/local.rb', line 20 def execute(uri) db = SQLite3::Database.new(uri.path, readonly: true) db.results_as_hash = true rows = db.execute(@config.query) Result.new(rows: rows, source: uri) rescue SQLite3::Exception => e raise QueryError, "Local query failed on #{uri}: #{e.}" ensure db&.close end |