module Sequel::Plugins::PreparedStatements
The prepared_statements plugin modifies the model to use prepared statements for instance level saves (inserts and updates). It also will use prepared statements for deletes, refreshes, and class level lookups by primary key, if it thinks that using a prepared statement will be faster in such cases.
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 colums 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
Constants
- MUTEX
Synchronize access to the integer sequence so that no two calls get the same integer.
- NEXT
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 34 def self.apply(model) # SEQUEL5: Drop Support for :fixed/:lookup_sql SQL model.instance_variable_set(:@prepared_statements, {:insert=>{}, :insert_select=>{}, :update=>{}, :lookup_sql=>{}, :fixed=>{}}.freeze) end