X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI.pm;h=247a989f386be0b56ae7ed089371d2b7b1474f82;hb=c377d939ac84c511546add4679e2b7054a5abdab;hp=ad5e3fca381613eea1b721bee892c296ce5c6157;hpb=efe6365bc168c25205c527e0e088bd7229a3575b;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI.pm b/lib/DBIx/Class/Storage/DBI.pm index ad5e3fc..247a989 100644 --- a/lib/DBIx/Class/Storage/DBI.pm +++ b/lib/DBIx/Class/Storage/DBI.pm @@ -232,6 +232,18 @@ __PACKAGE__->mk_group_accessors('simple' => qw/_connect_info _dbh _sql_maker _conn_pid _conn_tid debug debugobj cursor on_connect_do transaction_depth/); +=head1 NAME + +DBIx::Class::Storage::DBI - DBI storage handler + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +This class represents the connection to the database + +=head1 METHODS + =head2 new =cut @@ -267,20 +279,6 @@ sub throw_exception { croak($msg); } -=head1 NAME - -DBIx::Class::Storage::DBI - DBI storage handler - -=head1 SYNOPSIS - -=head1 DESCRIPTION - -This class represents the connection to the database - -=head1 METHODS - -=cut - =head2 connect_info The arguments of C are always a single array reference. @@ -467,6 +465,7 @@ sub connect_info { my ($self, $info_arg) = @_; if($info_arg) { + my %sql_maker_opts; my $info = [ @$info_arg ]; # copy because we can alter it my $last_info = $info->[-1]; if(ref $last_info eq 'HASH') { @@ -478,7 +477,7 @@ sub connect_info { for my $sql_maker_opt (qw/limit_dialect quote_char name_sep/) { if(my $opt_val = $last_info->{$sql_maker_opt}) { $used = 1; - $self->sql_maker->$sql_maker_opt($opt_val); + $sql_maker_opts{$sql_maker_opt} = $opt_val; } } @@ -489,6 +488,7 @@ sub connect_info { } $self->_connect_info($info); + $self->sql_maker->$_($sql_maker_opts{$_}) for(keys %sql_maker_opts); } $self->_connect_info; @@ -914,6 +914,8 @@ L. sub deployment_statements { my ($self, $schema, $type, $version, $dir, $sqltargs) = @_; + # Need to be connected to get the correct sqlt_type + $self->ensure_connected() unless $type; $type ||= $self->sqlt_type; $version ||= $schema->VERSION || '1.x'; $dir ||= './'; @@ -963,7 +965,7 @@ sub deploy { # next if($_ =~ /^DROP/m); next if($_ =~ /^BEGIN TRANSACTION/m); next if($_ =~ /^COMMIT/m); - $self->debugobj->query_begin($_) if $self->debug; + $self->debugobj->query_start($_) if $self->debug; $self->dbh->do($_) or warn "SQL was:\n $_"; $self->debugobj->query_end($_) if $self->debug; }