1 package DBICTest::DynamicForeignCols::TestComputer;
6 use base 'DBIx::Class::Core';
8 __PACKAGE__->table('TestComputer');
9 __PACKAGE__->add_columns(qw( test_id ));
10 __PACKAGE__->_add_join_column({ class => 'DBICTest::DynamicForeignCols::Computer', method => 'computer' });
11 __PACKAGE__->set_primary_key('test_id', 'computer_id');
12 __PACKAGE__->belongs_to(computer => 'DBICTest::DynamicForeignCols::Computer', 'computer_id');
15 ### This is a pathological case lifted from production. Yes, there is code
16 ### like this in the wild
18 sub _add_join_column {
19 my ($self, $params) = @_;
21 my $class = $params->{class};
22 my $method = $params->{method};
24 $self->ensure_class_loaded($class);
26 my @class_columns = $class->primary_columns;
28 if (@class_columns = 1) {
29 $self->add_columns( "${method}_id" );
32 for (@class_columns) {
34 $self->add_columns( "${method}_${i}_id" );