package # Hide from PAUSE
DBIx::Class::SQLMaker::OracleJoins;
-use base qw( DBIx::Class::SQLMaker );
-use Carp::Clan qw/^DBIx::Class|^SQL::Abstract/;
+use base qw( DBIx::Class::SQLMaker::Oracle );
sub select {
my ($self, $table, $fields, $where, $rs_attrs, @rest) = @_;
sub _recurse_from {
my ($self, $from, @join) = @_;
- my @sqlf = $self->_make_as($from);
+ my @sqlf = $self->_from_chunk_to_sql($from);
- foreach my $j (@join) {
- my ($to, $on) = @{ $j };
+ for (@join) {
+ my ($to, $on) = @$_;
if (ref $to eq 'ARRAY') {
push (@sqlf, $self->_recurse_from(@{ $to }));
}
else {
- push (@sqlf, $self->_make_as($to));
+ push (@sqlf, $self->_from_chunk_to_sql($to));
}
}
#TODO: Support full outer joins -- this would happen much earlier in
#the sequence since oracle 8's full outer join syntax is best
#described as INSANE.
- croak "Can't handle full outer joins in Oracle 8 yet!\n"
+ $self->throw_exception("Can't handle full outer joins in Oracle 8 yet!\n")
if $to_jt->{-join_type} =~ /full/i;
$left_join = q{(+)} if $to_jt->{-join_type} =~ /left/i