Switch to C3 mro throughout the ::Storage hierarchy (DBIx::Class brings in MRO::Compa...
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Oracle / WhereJoins.pm
CommitLineData
9382ad07 1package DBIx::Class::Storage::DBI::Oracle::WhereJoins;
2
9382ad07 3use strict;
4use warnings;
5
2ad62d97 6use base qw( DBIx::Class::Storage::DBI::Oracle::Generic );
7use mro 'c3';
8
6f4ddea1 9__PACKAGE__->sql_maker_class('DBIx::Class::SQLAHacks::OracleJoins');
9382ad07 10
9382ad07 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. (See:
27http://scsys.co.uk:8001/7495)
28
29=head1 SYNOPSIS
30
31DBIx::Class should automagically detect Oracle and use this module with no
32work from you.
33
34=head1 DESCRIPTION
35
36This class implements Oracle's WhereJoin support. Instead of:
37
38 SELECT x FROM y JOIN z ON y.id = z.id
39
40It will write:
41
42 SELECT x FROM y, z WHERE y.id = z.id
43
44It should properly support left joins, and right joins. Full outer joins are
45not possible due to the fact that Oracle requires the entire query be written
46to union the results of a left and right join, and by the time this module is
47called to create the where query and table definition part of the sql query,
48it's already too late.
49
50=head1 METHODS
51
6f4ddea1 52See L<DBIx::Class::SQLAHacks::OracleJoins> for implementation details.
9382ad07 53
54=head1 BUGS
55
56Does not support full outer joins.
57Probably lots more.
58
59=head1 SEE ALSO
60
61=over
62
6f4ddea1 63=item L<DBIx::Class::SQLAHacks>
64
65=item L<DBIx::Class::SQLAHacks::OracleJoins>
9382ad07 66
67=item L<DBIx::Class::Storage::DBI::Oracle::Generic>
68
69=item L<DBIx::Class>
70
71=back
72
73=head1 AUTHOR
74
75Justin Wheeler C<< <jwheeler@datademons.com> >>
76
77=head1 CONTRIBUTORS
78
79David Jack Olrik C<< <djo@cpan.org> >>
80
81=head1 LICENSE
82
83This module is licensed under the same terms as Perl itself.
84
85=cut