1package DBIx::Class::Storage::DBI::Oracle::WhereJoins; 2 3use strict; 4use warnings; 5 6use base qw( DBIx::Class::Storage::DBI::Oracle::Generic ); 7use mro 'c3'; 8 9__PACKAGE__->sql_maker_class('DBIx::Class::SQLAHacks::OracleJoins'); 10 111; 12 13__END__ 14 15=pod 16 17=head1 NAME 18 19DBIx::Class::Storage::DBI::Oracle::WhereJoins - Oracle joins in WHERE syntax 20support (instead of ANSI). 21 22=head1 PURPOSE 23 24This module was originally written to support Oracle < 9i where ANSI joins 25weren't supported at all, but became the module for Oracle >= 8 because 26Oracle's optimising of ANSI joins is horrible. 27 28=head1 SYNOPSIS 29 30DBIx::Class should automagically detect Oracle and use this module with no 31work from you. 32 33=head1 DESCRIPTION 34 35This class implements Oracle's WhereJoin support. Instead of: 36 37 SELECT x FROM y JOIN z ON y.id = z.id 38 39It will write: 40 41 SELECT x FROM y, z WHERE y.id = z.id 42 43It should properly support left joins, and right joins. Full outer joins are 44not possible due to the fact that Oracle requires the entire query be written 45to union the results of a left and right join, and by the time this module is 46called to create the where query and table definition part of the SQL query, 47it's already too late. 48 49=head1 METHODS 50 51See L<DBIx::Class::SQLAHacks::OracleJoins> for implementation details. 52 53=head1 BUGS 54 55Does not support full outer joins. 56Probably lots more. 57 58=head1 SEE ALSO 59 60=over 61 62=item L<DBIx::Class::SQLAHacks> 63 64=item L<DBIx::Class::SQLAHacks::OracleJoins> 65 66=item L<DBIx::Class::Storage::DBI::Oracle::Generic> 67 68=item L<DBIx::Class> 69 70=back 71 72=head1 AUTHOR 73 74Justin Wheeler C<< <jwheeler@datademons.com> >> 75 76=head1 CONTRIBUTORS 77 78David Jack Olrik C<< <djo@cpan.org> >> 79 80=head1 LICENSE 81 82This module is licensed under the same terms as Perl itself. 83 84=cut 85