Module | Sequel::Dataset::ArgumentMapper
In: | lib/sequel/adapters/postgres.rb lib/sequel/adapters/sqlite.rb lib/sequel/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 map_to_prepared_args map_to_prepared_args prepared_sql

### Included Modules

Sequel::Dataset::ArgumentMapper Sequel::Dataset::ArgumentMapper

### 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(bind_vars={}, &block)

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

[Source]

        # File lib/sequel/dataset/prepared_statements.rb, line 25
    25:       def call(bind_vars={}, &block)
    26:         ds = bind(bind_vars)
    27:         ds.prepared_sql
    28:         ds.bind_arguments = ds.map_to_prepared_args(ds.opts[:bind_vars])
    29:         ds.run(&block)
    30:       end

prepared_sql()

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

[Source]

        # File lib/sequel/dataset/prepared_statements.rb, line 34
    34:       def prepared_sql
    35:         return @prepared_sql if @prepared_sql
    36:         @prepared_args ||= []
    37:         @prepared_sql = super
    38:         meta_def("#{sql_query_type}_sql"){|*args| prepared_sql}
    39:         @prepared_sql
    40:       end

### Protected Instance methods

map_to_prepared_args(hash)

An array of bound variable values for this query, in the correct order.

[Source]

         # File lib/sequel/adapters/postgres.rb, line 354
    354:           def map_to_prepared_args(hash)
    355:             prepared_args.map{|k| hash[k.to_sym]}
    356:           end

map_to_prepared_args(hash)

Return a hash with the same values as the given hash, but with the keys converted to strings.

[Source]

         # File lib/sequel/adapters/sqlite.rb, line 218
    218:         def map_to_prepared_args(hash)
    219:           args = {}
    220:           hash.each{|k,v| args[k.to_s] = v}
    221:           args
    222:         end

[Validate]