1package # hide from PAUSE 2 DBIx::Class::ResultSourceProxy; 3 4use strict; 5use warnings; 6 7use base qw/DBIx::Class/; 8use Scalar::Util qw/blessed/; 9use Carp::Clan qw/^DBIx::Class/; 10 11sub iterator_class { shift->result_source_instance->resultset_class(@_) } 12sub resultset_class { shift->result_source_instance->resultset_class(@_) } 13sub result_class { shift->result_source_instance->result_class(@_) } 14sub source_info { shift->result_source_instance->source_info(@_) } 15 16sub set_inherited_ro_instance { 17 my $self = shift; 18 19 croak "Cannot set @{[shift]} on an instance" if blessed $self; 20 21 return $self->set_inherited(@_); 22} 23 24sub get_inherited_ro_instance { 25 return shift->get_inherited(@_); 26} 27 28__PACKAGE__->mk_group_accessors('inherited_ro_instance' => 'source_name'); 29 30 31sub resultset_attributes { 32 shift->result_source_instance->resultset_attributes(@_); 33} 34 35sub add_columns { 36 my ($class, @cols) = @_; 37 my $source = $class->result_source_instance; 38 $source->add_columns(@cols); 39 foreach my $c (grep { !ref } @cols) { 40 $class->register_column($c => $source->column_info($c)); 41 } 42} 43 44sub add_column { 45 shift->add_columns(@_); 46} 47 48sub has_column { 49 shift->result_source_instance->has_column(@_); 50} 51 52sub column_info { 53 shift->result_source_instance->column_info(@_); 54} 55 56sub column_info_from_storage { 57 shift->result_source_instance->column_info_from_storage(@_); 58} 59 60sub columns { 61 shift->result_source_instance->columns(@_); 62} 63 64sub remove_columns { 65 shift->result_source_instance->remove_columns(@_); 66} 67 68*remove_column = \&remove_columns; 69 70sub set_primary_key { 71 shift->result_source_instance->set_primary_key(@_); 72} 73 74sub primary_columns { 75 shift->result_source_instance->primary_columns(@_); 76} 77 78sub _pri_cols { 79 shift->result_source_instance->_pri_cols(@_); 80} 81 82sub add_unique_constraint { 83 shift->result_source_instance->add_unique_constraint(@_); 84} 85 86sub unique_constraints { 87 shift->result_source_instance->unique_constraints(@_); 88} 89 90sub unique_constraint_names { 91 shift->result_source_instance->unique_constraint_names(@_); 92} 93 94sub unique_constraint_columns { 95 shift->result_source_instance->unique_constraint_columns(@_); 96} 97 98sub add_relationship { 99 my ($class, $rel, @rest) = @_; 100 my $source = $class->result_source_instance; 101 $source->add_relationship($rel => @rest); 102 $class->register_relationship($rel => $source->relationship_info($rel)); 103} 104 105sub relationships { 106 shift->result_source_instance->relationships(@_); 107} 108 109sub relationship_info { 110 shift->result_source_instance->relationship_info(@_); 111} 112 1131; 114