use base 'DBIx::Class';
use DBIx::Class::Carp;
-use DBIx::Class::_Util qw( fail_on_internal_wantarray fail_on_internal_call );
+use DBIx::Class::_Util 'fail_on_internal_call';
use namespace::clean;
=head1 NAME
=cut
sub next {
- my $self = shift;
+ #my $self = shift;
# using cursor so we don't inflate anything
- my ($row) = $self->_resultset->cursor->next;
-
- return $row;
+ ($_[0]->_resultset->cursor->next)[0];
}
=head2 all
=cut
sub all {
- my $self = shift;
+ #my $self = shift;
# using cursor so we don't inflate anything
- return map { $_->[0] } $self->_resultset->cursor->all;
+ map { $_->[0] } $_[0]->_resultset->cursor->all;
}
=head2 reset
=cut
sub reset {
- my $self = shift;
- $self->_resultset->cursor->reset;
- return $self;
+ #my $self = shift;
+
+ $_[0]->_resultset->reset;
+ $_[0];
}
=head2 first
=cut
-sub first {
- my $self = shift;
+sub first :DBIC_method_is_indirect_sugar {
+ DBIx::Class::_ENV_::ASSERT_NO_INTERNAL_INDIRECT_CALLS and fail_on_internal_call;
# using cursor so we don't inflate anything
- $self->_resultset->cursor->reset;
- my ($row) = $self->_resultset->cursor->next;
-
- return $row;
+ my $cursor = $_[0]->_resultset->cursor;
+ $cursor->reset;
+ ($cursor->next)[0];
}
=head2 single
=cut
sub single {
- my $self = shift;
+ #my $self = shift;
- my $attrs = $self->_resultset->_resolved_attrs;
- my ($row) = $self->_resultset->result_source->schema->storage->select_single(
- $attrs->{from}, $attrs->{select}, $attrs->{where}, $attrs
- );
+ my $rs = $_[0]->_resultset;
- return $row;
+ my $attrs = $rs->_resolved_attrs;
+ ($rs->result_source->schema->storage->select_single(
+ $attrs->{from}, $attrs->{select}, $attrs->{where}, $attrs
+ ))[0];
}
=head2 min
=cut
-sub func {
- my ($self,$function) = @_;
- my $cursor = $self->func_rs($function)->cursor;
+sub func :DBIC_method_is_indirect_sugar{
+ DBIx::Class::_ENV_::ASSERT_NO_INTERNAL_INDIRECT_CALLS and fail_on_internal_call;
- if( wantarray ) {
- DBIx::Class::_ENV_::ASSERT_NO_INTERNAL_WANTARRAY and my $sog = fail_on_internal_wantarray;
- return map { $_->[ 0 ] } $cursor->all;
- }
+ #my ($self,$function) = @_;
+ my $cursor = $_[0]->func_rs($_[1])->cursor;
- return ( $cursor->next )[ 0 ];
+ wantarray
+ ? map { $_->[ 0 ] } $cursor->all
+ : ( $cursor->next )[ 0 ]
+ ;
}
=head2 func_rs
'Starting with DBIC@0.082900 func_rs() always returns a ResultSet '
. 'instance regardless of calling context. Please force scalar() context to '
. 'silence this warning'
- )
- and
- DBIx::Class::_ENV_::ASSERT_NO_INTERNAL_WANTARRAY
- and
- my $sog = fail_on_internal_wantarray
- ;
+ );
$rs->search_rs( undef, {
columns => { $self->{_as} => { $function => $select } }
}
}
- $self->{_parent_resultset}->search(undef, {
+ $self->{_parent_resultset}->search_rs(undef, {
columns => { $self->{_as} => $select }
});
};