Module: Sequel::MySQL::PreparedStatements::DatasetMethods

Includes:
Dataset::StoredProcedures
Included in:
Dataset, Sequel::Mysql2::Dataset
Defined in:
lib/sequel/adapters/shared/mysql_prepared_statements.rb

Defined Under Namespace

Modules: CallableStatementMethods, PreparedStatementMethods, StoredProcedureMethods

Instance Method Summary (collapse)

Methods included from Dataset::StoredProcedures

#call_sproc, #prepare_sproc

Instance Method Details

- (Object) call(type, bind_arguments = {}, *values, &block)

MySQL is different in that it supports prepared statements but not bound variables outside of prepared statements. The default implementation breaks the use of subselects in prepared statements, so extend the temporary prepared statement that this creates with a module that fixes it.



122
123
124
125
126
# File 'lib/sequel/adapters/shared/mysql_prepared_statements.rb', line 122

def call(type, bind_arguments={}, *values, &block)
  ps = to_prepared_statement(type, values)
  ps.extend(CallableStatementMethods)
  ps.call(bind_arguments, &block)
end

- (Object) prepare(type, name = nil, *values)

Store the given type of prepared statement in the associated database with the given name.



130
131
132
133
134
135
136
137
138
# File 'lib/sequel/adapters/shared/mysql_prepared_statements.rb', line 130

def prepare(type, name=nil, *values)
  ps = to_prepared_statement(type, values)
  ps.extend(PreparedStatementMethods)
  if name
    ps.prepared_statement_name = name
    db.prepared_statements[name] = ps
  end
  ps
end