From: Matt S Trout Date: Mon, 29 Aug 2005 03:51:10 +0000 (+0000) Subject: Cleaned up Storage::DBI to remove redundancy X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=de705b510619176ba54e8addd4ff4f0d6c97ce61;p=dbsrgits%2FDBIx-Class-Historic.git Cleaned up Storage::DBI to remove redundancy --- diff --git a/lib/DBIx/Class/Storage/DBI.pm b/lib/DBIx/Class/Storage/DBI.pm index 5a1509a..f579447 100644 --- a/lib/DBIx/Class/Storage/DBI.pm +++ b/lib/DBIx/Class/Storage/DBI.pm @@ -120,35 +120,32 @@ sub delete { return shift->_execute('delete' => [], @_); } -sub select { +sub _select { my ($self, $ident, $select, $condition, $attrs) = @_; my $order = $attrs->{order_by}; if (ref $condition eq 'SCALAR') { $order = $1 if $$condition =~ s/ORDER BY (.*)$//i; } + $ident = $self->_build_from($ident) if ref $ident; my @args = ('select', $attrs->{bind}, $ident, $select, $condition, $order); if ($self->sql_maker->_default_limit_syntax eq "GenericSubQ") { $attrs->{software_limit} = 1; } else { push @args, $attrs->{rows}, $attrs->{offset}; } - my ($rv, $sth, @bind) = $self->_execute(@args); + return $self->_execute(@args); +} + +sub select { + my $self = shift; + my ($ident, $select, $condition, $attrs) = @_; + my ($rv, $sth, @bind) = $self->_select(@_); return $self->cursor->new($sth, \@bind, $attrs); } sub select_single { - my ($self, $ident, $select, $condition, $attrs) = @_; - my $order = $attrs->{order_by}; - if (ref $condition eq 'SCALAR') { - $order = $1 if $$condition =~ s/ORDER BY (.*)$//i; - } - my @args = ('select', $attrs->{bind}, $ident, $select, $condition, $order); - if ($self->sql_maker->_default_limit_syntax eq "GenericSubQ") { - $attrs->{software_limit} = 1; - } else { - push @args, 1, $attrs->{offset}; - } - my ($rv, $sth, @bind) = $self->_execute(@args); + my $self = shift; + my ($rv, $sth, @bind) = $self->_select(@_); return $sth->fetchrow_array; }