Commit | Line | Data |
843f8ecd |
1 | package DBIx::Class::Storage::DBI::Oracle; |
2 | |
3 | use strict; |
4 | use warnings; |
5 | |
18360aed |
6 | use base qw/DBIx::Class::Storage::DBI/; |
2ad62d97 |
7 | use mro 'c3'; |
ed7ab0f4 |
8 | use Try::Tiny; |
fd323bf1 |
9 | use namespace::clean; |
843f8ecd |
10 | |
18360aed |
11 | sub _rebless { |
bf51641f |
12 | my ($self) = @_; |
843f8ecd |
13 | |
bf51641f |
14 | # Default driver |
86b23415 |
15 | my $class = $self->_server_info->{normalized_dbms_version} < 9 |
bf51641f |
16 | ? 'DBIx::Class::Storage::DBI::Oracle::WhereJoins' |
17 | : 'DBIx::Class::Storage::DBI::Oracle::Generic'; |
52b420dd |
18 | |
bf51641f |
19 | $self->ensure_class_loaded ($class); |
20 | bless $self, $class; |
099049b5 |
21 | } |
22 | |
843f8ecd |
23 | 1; |
24 | |
75d07914 |
25 | =head1 NAME |
843f8ecd |
26 | |
18360aed |
27 | DBIx::Class::Storage::DBI::Oracle - Base class for Oracle driver |
843f8ecd |
28 | |
843f8ecd |
29 | =head1 DESCRIPTION |
30 | |
18360aed |
31 | This class simply provides a mechanism for discovering and loading a sub-class |
08fabf59 |
32 | for a specific version Oracle backend. It should be transparent to the user. |
843f8ecd |
33 | |
86b23415 |
34 | For Oracle major versions < 9 it loads the ::Oracle::WhereJoins subclass, |
08fabf59 |
35 | which unrolls the ANSI join style DBIC normally generates into entries in |
36 | the WHERE clause for compatibility purposes. To force usage of this version |
37 | no matter the database version, add |
38 | |
39 | __PACKAGE__->storage_type('::DBI::Oracle::WhereJoins'); |
40 | |
41 | to your Schema class. |
843f8ecd |
42 | |
a2bd3796 |
43 | =head1 FURTHER QUESTIONS? |
843f8ecd |
44 | |
a2bd3796 |
45 | Check the list of L<additional DBIC resources|DBIx::Class/GETTING HELP/SUPPORT>. |
843f8ecd |
46 | |
a2bd3796 |
47 | =head1 COPYRIGHT AND LICENSE |
843f8ecd |
48 | |
a2bd3796 |
49 | This module is free software L<copyright|DBIx::Class/COPYRIGHT AND LICENSE> |
50 | by the L<DBIx::Class (DBIC) authors|DBIx::Class/AUTHORS>. You can |
51 | redistribute it and/or modify it under the same terms as the |
52 | L<DBIx::Class library|DBIx::Class/COPYRIGHT AND LICENSE>. |