Class: FastCount::Adapters::SqliteAdapter
- Inherits:
-
BaseAdapter
- Object
- BaseAdapter
- FastCount::Adapters::SqliteAdapter
- Defined in:
- lib/fast_count/adapters/sqlite_adapter.rb
Overview
No one should use sqlite in production and moreover with lots of data, so we can just use ‘SELECT COUNT(*)`. Support for it is technically not needed, but was added for convenience in development.
Instance Method Summary collapse
- #estimated_count(sql) ⇒ Object
- #fast_count(table_name, _threshold) ⇒ Object
- #fast_distinct_count(table_name, column_name) ⇒ Object
Methods inherited from BaseAdapter
#initialize, #install, #uninstall
Constructor Details
This class inherits a constructor from FastCount::Adapters::BaseAdapter
Instance Method Details
#estimated_count(sql) ⇒ Object
15 16 17 |
# File 'lib/fast_count/adapters/sqlite_adapter.rb', line 15 def estimated_count(sql) @connection.select_value("SELECT COUNT(*) FROM (#{sql})") end |
#fast_count(table_name, _threshold) ⇒ Object
11 12 13 |
# File 'lib/fast_count/adapters/sqlite_adapter.rb', line 11 def fast_count(table_name, _threshold) @connection.select_value("SELECT COUNT(*) FROM #{@connection.quote_table_name(table_name)}") end |
#fast_distinct_count(table_name, column_name) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/fast_count/adapters/sqlite_adapter.rb', line 19 def fast_distinct_count(table_name, column_name) @connection.select_value(" SELECT COUNT(*) FROM (\n SELECT DISTINCT \#{@connection.quote_column_name(column_name)} FROM \#{@connection.quote_table_name(table_name)}\n ) AS tmp\n SQL\nend\n") |