Fix/clarify Oracle decision whether to use WhereJoins
[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
d5dedbd6 9__PACKAGE__->sql_maker_class('DBIx::Class::SQLMaker::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
86b23415 24This module is used with Oracle < 9.0 due to lack of support for standard
25ANSI join syntax.
9382ad07 26
27=head1 SYNOPSIS
28
29DBIx::Class should automagically detect Oracle and use this module with no
30work from you.
31
32=head1 DESCRIPTION
33
34This class implements Oracle's WhereJoin support. Instead of:
35
36 SELECT x FROM y JOIN z ON y.id = z.id
37
38It will write:
39
40 SELECT x FROM y, z WHERE y.id = z.id
41
42It should properly support left joins, and right joins. Full outer joins are
43not possible due to the fact that Oracle requires the entire query be written
44to union the results of a left and right join, and by the time this module is
48580715 45called to create the where query and table definition part of the SQL query,
9382ad07 46it's already too late.
47
48=head1 METHODS
49
d5dedbd6 50See L<DBIx::Class::SQLMaker::OracleJoins> for implementation details.
9382ad07 51
52=head1 BUGS
53
54Does not support full outer joins.
55Probably lots more.
56
57=head1 SEE ALSO
58
59=over
60
d5dedbd6 61=item L<DBIx::Class::SQLMaker>
6f4ddea1 62
d5dedbd6 63=item L<DBIx::Class::SQLMaker::OracleJoins>
9382ad07 64
65=item L<DBIx::Class::Storage::DBI::Oracle::Generic>
66
67=item L<DBIx::Class>
68
69=back
70
71=head1 AUTHOR
72
73Justin Wheeler C<< <jwheeler@datademons.com> >>
74
75=head1 CONTRIBUTORS
76
77David Jack Olrik C<< <djo@cpan.org> >>
78
79=head1 LICENSE
80
81This module is licensed under the same terms as Perl itself.
82
83=cut