Module: Sequel::Dataset::ArgumentMapper

Module | Sequel::Dataset::ArgumentMapper
In: | lib/sequel_core/dataset/prepared_statements.rb

Default implementation of the argument mapper to allow native database support for bind variables and prepared statements (as opposed to the emulated ones used by default).

### Methods

call prepared_sql

### Constants

SQL_QUERY_TYPE | = | Hash.new{|h,k| h[k] = k}

### Attributes

bind_arguments | [RW] | The bind arguments to use for running this prepared statement
prepared_statement_name | [RW] | The name of the prepared statement, if any.

### Public Instance methods

call(hash, &block)

Set the bind arguments based on the hash and call super.

[Source]

        # File lib/sequel_core/dataset/prepared_statements.rb, line 19
    19:       def call(hash, &block)
    20:         ds = clone
    21:         ds.prepared_sql
    22:         ds.bind_arguments = ds.map_to_prepared_args(hash)
    23:         ds.prepared_args = hash
    24:         ds.run(&block)
    25:       end

prepared_sql()

Override the given *_sql method based on the type, and cache the result of the sql.

[Source]

        # File lib/sequel_core/dataset/prepared_statements.rb, line 29
    29:       def prepared_sql
    30:         return @prepared_sql if @prepared_sql
    31:         @prepared_args ||= []
    32:         @prepared_sql = super
    33:         meta_def("#{sql_query_type}_sql"){|*args| prepared_sql}
    34:         @prepared_sql
    35:       end

[Validate]