ea956baed178435336a80939ff6a32db9e65d1c6
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Oracle.pm
1 package DBIx::Class::Storage::DBI::Oracle;
2
3 use strict;
4 use warnings;
5
6 use base qw/DBIx::Class::Storage::DBI/;
7
8 print STDERR "Oracle.pm got called.\n";
9
10 sub _rebless {
11     my ($self) = @_;
12
13     print STDERR "Rebless got called.\n";
14
15     my $version = eval { $self->_dbh->get_info(18); };
16
17     if ( !$@ ) {
18         my ($major, $minor, $patchlevel) = split(/\./, $version);
19
20         # Default driver
21         my $class = $major >= 8
22           ? 'DBIx::Class::Storage::DBI::Oracle::WhereJoins'
23           : 'DBIx::Class::Storage::DBI::Oracle::Generic';
24
25         print STDERR "Class: $class\n";
26
27         # Load and rebless
28         eval "require $class";
29
30         print STDERR "\$@: $@\n";
31         bless $self, $class unless $@;
32     }
33 }
34
35
36 1;
37
38 =head1 NAME
39
40 DBIx::Class::Storage::DBI::Oracle - Base class for Oracle driver
41
42 =head1 SYNOPSIS
43
44   # In your table classes
45   __PACKAGE__->load_components(qw/Core/);
46
47 =head1 DESCRIPTION
48
49 This class simply provides a mechanism for discovering and loading a sub-class
50 for a specific version Oracle backend.  It should be transparent to the user.
51
52
53 =head1 AUTHORS
54
55 David Jack Olrik C<< <djo@cpan.org> >>
56
57 =head1 LICENSE
58
59 You may distribute this code under the same terms as Perl itself.
60
61 =cut