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
Classes and Modules
Constants
MUTEX | = | Mutex.new |
Synchronize access to the integer sequence so that no two calls get the same integer. |
|
NEXT | = | lambda{MUTEX.synchronize{i += 1}} |
This plugin names prepared statements uniquely using an integer sequence, this lambda returns the next integer to use. |
Public Class methods
Setup the datastructure used to hold the prepared statements in the model.
# File lib/sequel/plugins/prepared_statements.rb, line 31 def self.apply(model) model.instance_variable_set(:@prepared_statements, {:insert=>{}, :insert_select=>{}, :update=>{}}.freeze) end