use Carp;
use DBIx::DBSchema::_util qw(_load_driver _dbh);
-$VERSION = '0.11';
+$VERSION = '0.12';
=head1 NAME
my($self, $dbh) = ( shift, _dbh(@_) );
my $driver = $dbh ? _load_driver($dbh) : '';
+ my $driver_class = "DBIx::DBSchema::DBD::${driver}";
##
# type mapping
##
my %typemap;
- %typemap = eval "\%DBIx::DBSchema::DBD::${driver}::typemap" if $driver;
+ %typemap = eval "\%${driver_class}::typemap" if $driver;
my $type = defined( $typemap{uc($self->type)} )
? $typemap{uc($self->type)}
: $self->type;
my $default;
my $orig_default = $self->default;
- if ( defined($self->default) && !ref($self->default) && $self->default ne ''
+ if ( $driver_class->can("_column_value_needs_quoting") ) {
+ if ($driver_class->_column_value_needs_quoting($self)) {
+ $default = $dbh->quote($self->default);
+ } else {
+ $default = ref($self->default) ? ${$self->default} : $self->default;
+ }
+ } elsif ( defined($self->default) && !ref($self->default) && $self->default ne ''
&& ref($dbh)
# false laziness: nicked from FS::Record::_quote
&& ( $self->default !~ /^\-?\d+(\.\d+)?$/