Module: Sequel::Plugins::PreparedStatements
- Defined in:
- lib/sequel/plugins/prepared_statements.rb
Overview
The prepared_statements plugin modifies the model to use prepared statements for instance level inserts and updates.
Note that this plugin is unsafe in some circumstances, as it can allow up to 2^N prepared statements to be created for each type of insert and update query, where N is the number of columns in the table. It is recommended that you use the prepared_statements_safe
plugin in addition to this plugin to reduce the number of prepared statements that can be created, unless you tightly control how your model instances are saved.
Usage:
# Make all model subclasses use prepared statements (called before loading subclasses)
Sequel::Model.plugin :prepared_statements
# Make the Album class use prepared statements
Album.plugin :prepared_statements
Defined Under Namespace
Modules: ClassMethods, InstanceMethods
Constant Summary collapse
- MUTEX =
Synchronize access to the integer sequence so that no two calls get the same integer.
Mutex.new
- NEXT =
This plugin names prepared statements uniquely using an integer sequence, this lambda returns the next integer to use.
lambda{MUTEX.synchronize{i += 1}}
Class Method Summary collapse
-
.apply(model) ⇒ Object
Setup the datastructure used to hold the prepared statements in the model.
Class Method Details
.apply(model) ⇒ Object
Setup the datastructure used to hold the prepared statements in the model.
32 33 34 |
# File 'lib/sequel/plugins/prepared_statements.rb', line 32 def self.apply(model) model.instance_variable_set(:@prepared_statements, {:insert=>{}, :insert_select=>{}, :update=>{}}.freeze) end |