=head1 NAME
-DBIx::Class::Storage::DBI::AutoCast
+DBIx::Class::Storage::DBI::AutoCast - Storage component for RDBMS requiring explicit placeholder typing
=head1 SYNOPSIS
throw implicit type conversion errors.
As long as a column L<data_type|DBIx::Class::ResultSource/add_columns> is
-defined, and it resolves to a base RDBMS native type via L</_map_data_type> as
+defined and resolves to a base RDBMS native type via L</_native_data_type> as
defined in your Storage driver, the placeholder for this column will be
converted to:
CAST(? as $mapped_type)
+This option can also be enabled in L<DBIx::Class::Storage::DBI/connect_info> as:
+
+ on_connect_call => ['set_auto_cast']
+
=cut
sub _prep_for_execute {
foreach my $bound (@$bind) {
my $col = $bound->[0];
- my $type = $self->_map_data_type($col_info->{$col}{data_type});
+ my $type = $self->_native_data_type($col_info->{$col}{data_type});
foreach my $data (@{$bound}[1..$#$bound]) {
$new_sql .= shift(@sql_part) .
return ($sql, $bind);
}
+=head2 connect_call_set_auto_cast
+
+Executes:
+
+ $schema->storage->auto_cast(1);
+
+on connection.
+
+Used as:
+
+ on_connect_call => ['set_auto_cast']
+
+in L<DBIx::Class::Storage::DBI/connect_info>.
+
+=cut
+
+sub connect_call_set_auto_cast {
+ my $self = shift;
+ $self->auto_cast(1);
+}
-=head1 AUTHORS
+=head1 AUTHOR
See L<DBIx::Class/CONTRIBUTORS>