Module: Sequel

Defined in:
lib/sequel/extensions/settable.rb,
lib/sequel/extensions/funky.rb,
lib/sequel/extensions/usable.rb,
lib/sequel/extensions/db_opts.rb,
lib/sequel/extensions/cold_col.rb,
lib/sequel/extensions/more_sql.rb,
lib/sequel/extensions/platform.rb,
lib/sequel/extensions/unionize.rb,
lib/sequel/extensions/sql_recorder.rb,
lib/sequel/extensions/make_readyable.rb,
lib/sequelizer/monkey_patches/database_in_after_connect.rb

Overview

Overview

The sql_recorder extension records each SQL statement sent to the database in a thread-safe array accessible via the sql_recorder method.

Usage

DB.extension :sql_recorder
DB[:users].all
DB[:posts].where(id: 1).first

# Access recorded SQL statements
DB.sql_recorder
# => ["SELECT * FROM users", "SELECT * FROM posts WHERE (id = 1) LIMIT 1"]

# Clear the recorded statements
DB.sql_recorder.clear

Thread Safety

The extension is thread-safe and uses a mutex to synchronize access to the SQL recording array when multiple threads are executing queries simultaneously.

Compatibility

This extension is designed to work alongside mock databases and other SQL recording mechanisms. It uses the method name sql_recorder to avoid conflicts with existing sqls methods that may be present in test frameworks.

Related module: Sequel::SqlRecorder

Defined Under Namespace

Modules: ColdColDatabase, ColdColDataset, DbOpts, Funky, MakeReadyable, MoreSql, Platform, Settable, SqlRecorder, Unionize, Usable Classes: ConnectionPool, ReadyMaker