$class->ensure_class_loaded($f_class);
$f_rsrc = try {
- $f_class->result_source_instance;
+ my $r = $f_class->result_source_instance;
+ die "There got to be some columns by now... (exception caught and rewritten by catch below)"
+ unless $r->columns;
+ $r;
}
catch {
$class->throw_exception(
}
}
- # only perform checks if the far side was not preloaded above *AND*
- # appears to have been loaded by something else (has a rsrc_instance)
- if (! $f_rsrc and $f_rsrc = try { $f_class->result_source_instance }) {
- $class->throw_exception(
- "No such column '$f_key' on foreign class ${f_class} ($guess)"
- ) if !$f_rsrc->has_column($f_key);
- }
+# FIXME - this check needs to be moved to schema-composition time...
+# # only perform checks if the far side was not preloaded above *AND*
+# # appears to have been loaded by something else (has a rsrc_instance)
+# if (! $f_rsrc and $f_rsrc = try { $f_class->result_source_instance }) {
+# $class->throw_exception(
+# "No such column '$f_key' on foreign class ${f_class} ($guess)"
+# ) if !$f_rsrc->has_column($f_key);
+# }
$cond = { "foreign.${f_key}" => "self.${pri}" };
}
{ accessor => 'single',
cascade_update => $default_cascade,
cascade_delete => $default_cascade,
+ is_depends_on => 0,
($join_type ? ('join_type' => $join_type) : ()),
%{$attrs || {}} });
1;
my $self_id = $cond->{$foreign_id};
# we can ignore a bad $self_id because add_relationship handles this
- # warning
+ # exception
return unless $self_id =~ /^self\.(.*)$/;
+
my $key = $1;
$class->throw_exception("Defining rel on ${class} that includes '$key' but no such column defined here yet")
unless $class->has_column($key);