Cleanup exception handling
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Oracle.pm
CommitLineData
843f8ecd 1package DBIx::Class::Storage::DBI::Oracle;
2
3use strict;
4use warnings;
5
18360aed 6use base qw/DBIx::Class::Storage::DBI/;
2ad62d97 7use mro 'c3';
843f8ecd 8
18360aed 9sub _rebless {
9382ad07 10 my ($self) = @_;
843f8ecd 11
9ae966b9 12 my $version = eval { $self->_get_dbh->get_info(18); };
0680ac39 13
9382ad07 14 if ( !$@ ) {
15 my ($major, $minor, $patchlevel) = split(/\./, $version);
843f8ecd 16
9382ad07 17 # Default driver
08fabf59 18 my $class = $major <= 8
9382ad07 19 ? 'DBIx::Class::Storage::DBI::Oracle::WhereJoins'
20 : 'DBIx::Class::Storage::DBI::Oracle::Generic';
843f8ecd 21
37b17a93 22 $self->ensure_class_loaded ($class);
23 bless $self, $class;
9382ad07 24 }
099049b5 25}
26
843f8ecd 271;
28
75d07914 29=head1 NAME
843f8ecd 30
18360aed 31DBIx::Class::Storage::DBI::Oracle - Base class for Oracle driver
843f8ecd 32
33=head1 SYNOPSIS
34
35 # In your table classes
18360aed 36 __PACKAGE__->load_components(qw/Core/);
843f8ecd 37
38=head1 DESCRIPTION
39
18360aed 40This class simply provides a mechanism for discovering and loading a sub-class
08fabf59 41for a specific version Oracle backend. It should be transparent to the user.
843f8ecd 42
08fabf59 43For Oracle major versions <= 8 it loads the ::Oracle::WhereJoins subclass,
44which unrolls the ANSI join style DBIC normally generates into entries in
45the WHERE clause for compatibility purposes. To force usage of this version
46no matter the database version, add
47
48 __PACKAGE__->storage_type('::DBI::Oracle::WhereJoins');
49
50to your Schema class.
843f8ecd 51
18360aed 52=head1 AUTHORS
843f8ecd 53
18360aed 54David Jack Olrik C<< <djo@cpan.org> >>
843f8ecd 55
56=head1 LICENSE
57
58You may distribute this code under the same terms as Perl itself.
59
60=cut