File Coverage

blib/lib/DBIx/Class/Storage/DBI/Oracle.pm
Criterion Covered Total %
statement 12 16 75.0
branch 0 2 0.0
condition n/a
subroutine 4 5 80.0
pod n/a
total 16 23 69.5


line stmt bran cond sub pod time code
1             package DBIx::Class::Storage::DBI::Oracle;
2              
3 2     2   947 use strict;
  2         6  
  2         65  
4 2     2   12 use warnings;
  2         6  
  2         68  
5              
6 2     2   12 use base qw/DBIx::Class::Storage::DBI/;
  2         6  
  2         258  
7 2     2   16 use mro 'c3';
  2         6  
  2         11  
8              
9             sub _rebless {
10 0     0     my ($self) = @_;
11              
12             # Default driver
13 0 0         my $class = $self->_server_info->{normalized_dbms_version} < 9
14             ? 'DBIx::Class::Storage::DBI::Oracle::WhereJoins'
15             : 'DBIx::Class::Storage::DBI::Oracle::Generic';
16              
17 0           $self->ensure_class_loaded ($class);
18 0           bless $self, $class;
19             }
20              
21             1;
22              
23             =head1 NAME
24              
25             DBIx::Class::Storage::DBI::Oracle - Base class for Oracle driver
26              
27             =head1 DESCRIPTION
28              
29             This class simply provides a mechanism for discovering and loading a sub-class
30             for a specific version Oracle backend. It should be transparent to the user.
31              
32             For Oracle major versions < 9 it loads the ::Oracle::WhereJoins subclass,
33             which unrolls the ANSI join style DBIC normally generates into entries in
34             the WHERE clause for compatibility purposes. To force usage of this version
35             no matter the database version, add
36              
37             __PACKAGE__->storage_type('::DBI::Oracle::WhereJoins');
38              
39             to your Schema class.
40              
41             =head1 FURTHER QUESTIONS?
42              
43             Check the list of L.
44              
45             =head1 COPYRIGHT AND LICENSE
46              
47             This module is free software L
48             by the L. You can
49             redistribute it and/or modify it under the same terms as the
50             L.