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