NAME

DBIO::Storage::DBI::AutoCast - Storage component for RDBMS requiring explicit placeholder typing

VERSION

version 0.900000

SYNOPSIS

$schema->storage->auto_cast(1);

DESCRIPTION

In some combinations of RDBMS and DBD drivers (e.g. FreeTDS and Sybase) statements with values bound to columns or conditions that are not strings will throw implicit type conversion errors.

As long as a column data_type is defined and resolves to a base RDBMS native type via _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 connect_info as:

on_connect_call => ['set_auto_cast']

ATTRIBUTES

auto_cast

Boolean toggle enabling automatic CAST(? AS ...) placeholder rewriting.

METHODS

_prep_for_execute

Rewrite ? placeholders as CAST(? AS $type) when "auto_cast" is enabled and the bind's sqlt_datatype resolves to a native type.

connect_call_set_auto_cast

Executes:

$schema->storage->auto_cast(1);

on connection.

Used as:

on_connect_call => ['set_auto_cast']

in connect_info.

AUTHOR

DBIO & DBIx::Class Authors

COPYRIGHT AND LICENSE

Copyright (C) 2026 DBIO Authors Portions Copyright (C) 2005-2025 DBIx::Class Authors Based on DBIx::Class, heavily modified.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.