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=834a4d5c0e401ad0aeb18dc9c32569b91b3aed6b;hpb=41c4215a6e27763b16dfbb56fd965914c3ee4c2c;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm b/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm index 834a4d5..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/); @@ -45,14 +45,12 @@ sub last_insert_id { shift->_identity } sub _prefetch_autovalues { my $self = shift; - my ($source, $to_insert) = @_; + my ($source, $colinfo, $to_insert) = @_; my $values = $self->next::method(@_); - my $colinfo = $source->columns_info; - - 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 # @@ -78,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')") }; @@ -115,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]; @@ -137,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 @@ -214,12 +204,13 @@ be turned off (or increased) by the DBA by executing: Highly recommended. -=head1 AUTHOR - -See L and L. +=head1 FURTHER QUESTIONS? -=head1 LICENSE +Check the list of L. -You may distribute this code under the same terms as Perl itself. +=head1 COPYRIGHT AND LICENSE -=cut +This module is free software L +by the L. You can +redistribute it and/or modify it under the same terms as the +L.