my $relinfo_with_attr = $rs_overridden->relationship_info ('cd_3');
cmp_ok($relinfo_with_attr->{attrs}{is_foreign_key_constraint}, '==', 0, "is_foreign_key_constraint defined for belongs_to relationships with attr.");
-# check that relationships below left join relationships are forced to left joins
-my $cds = $schema->resultset("CD")->search({ cdid => 1 }, { join => { genre => 'demographic' } });
+# check that relationships below left join relationships are forced to left joins
+# when traversing multiple belongs_to
+my $cds = $schema->resultset("CD")->search({ 'me.cdid' => 5 }, { join => { single_track => 'cd' } });
is($cds->count, 1, "subjoins under left joins force_left (string)");
-$cds = $schema->resultset("CD")->search({ cdid => 1 }, { join => { genre => [ 'demographic' ] } });
+$cds = $schema->resultset("CD")->search({ 'me.cdid' => 5 }, { join => { single_track => ['cd'] } });
is($cds->count, 1, "subjoins under left joins force_left (arrayref)");
-$cds = $schema->resultset("CD")->search({ cdid => 1 }, { join => { genre => { demographic => {} } } });
+$cds = $schema->resultset("CD")->search({ 'me.cdid' => 5 }, { join => { single_track => { cd => {} } } });
is($cds->count, 1, "subjoins under left joins force_left (hashref)");
{
my $artist = $schema->resultset('Artist')->create({ artistid => 666, name => 'bad religion' });
- my $genre = $schema->resultset('Genre')->create({ genreid => 88, name => 'disco', demographicid => 1 });
+ my $genre = $schema->resultset('Genre')->create({ genreid => 88, name => 'disco' });
my $cd = $schema->resultset('CD')->create({ cdid => 187, artist => 1, title => 'how could hell be any worse?', year => 1982 });
dies_ok { $cd->genre } 'genre accessor throws without column';
year => '2012',
genre => {
name => '"Greatest" collections',
- demographic => {
- name => '"Greatest" collections demographic',
- },
},
tags => [
{ tag => 'A' },
year => 2012,
genre => {
name => '"Greatest" collections',
- demographic => {
- name => '"Greatest" collections demographic',
- },
},
tags => [
{ tag => 'A' },
year => 2012,
genre => {
name => '"Greatest" collections',
- demographic => {
- name => '"Greatest" collections demographic',
- },
},
tags => [
{ tag => 'A' },
year => 2012,
genre => {
name => '"Greatest" collections2',
- demographic => {
- name => '"Greatest" collections demographic',
- },
},
tags => [
{ tag => 'A' },
year => 2013,
genre => {
name => '"Greatest" collections2',
- demographic => {
- name => '"Greatest" collections demographic',
- },
},
}},
],
year => 2012,
genre => {
name => '"Greatest" collections',
- demographic => {
- name => '"Greatest" collections demographic',
- },
},
tags => [
{ tag => 'A' },
BindType
Employee
CD
- Demographic
FileColumn
Genre
Link
});
# in case this is a single-cd it promotes a track from another cd
-__PACKAGE__->belongs_to( single_track => 'DBICTest::Schema::Track' );
+__PACKAGE__->belongs_to( single_track => 'DBICTest::Schema::Track', 'single_track',
+ { join_type => 'left'}
+);
__PACKAGE__->has_many( tracks => 'DBICTest::Schema::Track' );
__PACKAGE__->has_many(
+++ /dev/null
-package DBICTest::Schema::Demographic;
-
-use strict;
-
-use base 'DBIx::Class::Core';
-
-__PACKAGE__->table('demographic');
-__PACKAGE__->add_columns(
- demographicid => {
- data_type => 'integer',
- is_auto_increment => 1,
- },
- name => {
- data_type => 'varchar',
- size => 100,
- },
-);
-__PACKAGE__->set_primary_key('demographicid');
-__PACKAGE__->add_unique_constraint ( demographic_name => [qw/name/] );
-
-1;
data_type => 'varchar',
size => 100,
},
- demographicid => {
- data_type => 'integer',
- is_nullable => 0,
- },
);
__PACKAGE__->set_primary_key('genreid');
__PACKAGE__->add_unique_constraint ( genre_name => [qw/name/] );
__PACKAGE__->has_many (cds => 'DBICTest::Schema::CD', 'genreid');
-__PACKAGE__->belongs_to (demographic => 'DBICTest::Schema::Demographic', 'demographicid');
1;
--
-- Created by SQL::Translator::Producer::SQLite
--- Created on Sun Apr 19 11:49:48 2009
+-- Created on Thu Apr 30 10:04:57 2009
--
CREATE INDEX collection_object_idx_object_c ON collection_object (object);
--
--- Table: demographic
---
-CREATE TABLE demographic (
- demographicid INTEGER PRIMARY KEY NOT NULL,
- name varchar(100) NOT NULL
-);
-
-CREATE UNIQUE INDEX demographic_name_demographic ON demographic (name);
-
---
-- Table: employee
--
CREATE TABLE employee (
--
CREATE TABLE genre (
genreid INTEGER PRIMARY KEY NOT NULL,
- name varchar(100) NOT NULL,
- demographicid integer NOT NULL
+ name varchar(100) NOT NULL
);
-CREATE INDEX genre_idx_demographicid_genre ON genre (demographicid);
-
CREATE UNIQUE INDEX genre_name_genre ON genre (name);
--