X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FSQLAnywhere.pm;h=9cb8306637c3c6e1b8197752a4520d2845fc3d25;hb=616ca57f8cd27f475da275bbef986fdd42d4069f;hp=cbc07d5c016449a7b8b15982f7d01a0784af5a27;hpb=a2bd379666d729133d65c85dc775627937084b18;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm b/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm index cbc07d5..9cb8306 100644 --- a/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm +++ b/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm @@ -4,8 +4,8 @@ use strict; use warnings; use base qw/DBIx::Class::Storage::DBI::UniqueIdentifier/; use mro 'c3'; -use List::Util 'first'; -use Try::Tiny; +use DBIx::Class::_Util 'dbic_internal_try'; +use DBIx::Class::ResultSource::FromSpec::Util 'fromspec_columns_info'; use namespace::clean; __PACKAGE__->mk_group_accessors(simple => qw/_identity/); @@ -49,8 +49,8 @@ sub _prefetch_autovalues { my $values = $self->next::method(@_); - my $identity_col = - first { $colinfo->{$_}{is_auto_increment} } keys %$colinfo; + my ($identity_col) = + grep { $colinfo->{$_}{is_auto_increment} } keys %$colinfo; # user might have an identity PK without is_auto_increment # @@ -76,7 +76,7 @@ sub _prefetch_autovalues { my $table_name = $source->from; $table_name = $$table_name if ref $table_name; - my ($identity) = try { + my ($identity) = dbic_internal_try { $dbh->selectrow_array("SELECT GET_IDENTITY('$table_name')") }; @@ -113,7 +113,7 @@ sub select_single { my ($ident, $select) = @_; - my $col_info = $self->_resolve_column_info($ident); + my $col_info = fromspec_columns_info($ident); for my $select_idx (0..$#$select) { my $selected = $select->[$select_idx]; @@ -135,19 +135,11 @@ sub select_single { return @row; } -# this sub stolen from MSSQL - sub build_datetime_parser { - my $self = shift; - my $type = "DateTime::Format::Strptime"; - try { - eval "require ${type}" - } - catch { - $self->throw_exception("Couldn't load ${type}: $_"); - }; - return $type->new( pattern => '%Y-%m-%d %H:%M:%S.%6N' ); + require DateTime::Format::Strptime; + + DateTime::Format::Strptime->new( pattern => '%Y-%m-%d %H:%M:%S.%6N' ); } =head2 connect_call_datetime_setup