=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;
+
+ #my ($self,$function) = @_;
+ my $cursor = $_[0]->func_rs($_[1])->cursor;
if( wantarray ) {
DBIx::Class::_ENV_::ASSERT_NO_INTERNAL_WANTARRAY and my $sog = fail_on_internal_wantarray;
$rs = $rs->as_subselect_rs;
}
- $rs->search( undef, {
+ # FIXME - remove at some point in the future (2018-ish)
+ wantarray
+ and
+ carp_unique(
+ '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 } }
} );
}