Revision history for DBIx::Class
+ - fixup cursor_class to be an 'inherited' attr for per-package defaults
- add default_resultset_attributes entry to Schema
- optimisation in DBI::Cursor to check software_limit before falling
back to base Cursor->all
use IO::File;
__PACKAGE__->mk_group_accessors('simple' => qw/debug debugobj schema/);
+__PACKAGE__->mk_group_accessors('inherited' => 'cursor_class');
+
+__PACKAGE__->cursor_class('DBIx::Class::Cursor');
+
+sub cursor { shift->cursor_class(@_); }
package # Hide from PAUSE
DBIx::Class::Storage::NESTED_ROLLBACK_EXCEPTION;
}
}
-=head2 cursor
+=head2 cursor_class
The cursor class for this Storage object.
=cut
-sub cursor { die "Virtual method!" }
-
=head2 deploy
Deploy the tables to storage (CREATE TABLE and friends in a SQL-based
__PACKAGE__->mk_group_accessors('simple' =>
qw/_connect_info _dbi_connect_info _dbh _sql_maker _sql_maker_opts
- _conn_pid _conn_tid disable_sth_caching cursor on_connect_do
+ _conn_pid _conn_tid disable_sth_caching on_connect_do
transaction_depth unsafe _dbh_autocommit/
);
+__PACKAGE__->cursor_class('DBIx::Class::Storage::DBI::Cursor');
+
BEGIN {
package DBIC::SQL::Abstract; # Would merge upstream, but nate doesn't reply :(
sub new {
my $new = shift->next::method(@_);
- $new->cursor("DBIx::Class::Storage::DBI::Cursor");
$new->transaction_depth(0);
$new->_sql_maker_opts({});
$new->{_in_dbh_do} = 0;
sub select {
my $self = shift;
my ($ident, $select, $condition, $attrs) = @_;
- return $self->cursor->new($self, \@_, $attrs);
+ return $self->cursor_class->new($self, \@_, $attrs);
}
sub select_single {