add a line to Changes and add a CAVEAT
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Sybase.pm
1 package DBIx::Class::Storage::DBI::Sybase;
2
3 use strict;
4 use warnings;
5
6 use base qw/DBIx::Class::Storage::DBI::NoBindVars/;
7
8 sub _rebless {
9     my $self = shift;
10
11     my $dbtype = eval { @{$self->_dbh->selectrow_arrayref(qq{sp_server_info \@attribute_id=1})}[2] };
12     unless ( $@ ) {
13         $dbtype =~ s/\W/_/gi;
14         my $subclass = "DBIx::Class::Storage::DBI::Sybase::${dbtype}";
15         if ($self->load_optional_class($subclass) && !$self->isa($subclass)) {
16             bless $self, $subclass;
17             $self->_rebless;
18         }
19     }
20 }
21
22 1;
23
24 =head1 NAME
25
26 DBIx::Class::Storage::DBI::Sybase - Storage::DBI subclass for Sybase
27
28 =head1 SYNOPSIS
29
30 This subclass supports L<DBD::Sybase> for real Sybase databases.  If
31 you are using an MSSQL database via L<DBD::Sybase>, see
32 L<DBIx::Class::Storage::DBI::Sybase::MSSQL>.
33
34 =head1 CAVEATS
35
36 This storage driver uses L<DBIx::Class::Storage::DBI::NoBindVars> as a base.
37 This means that bind variables will be interpolated (properly quoted of course)
38 into the SQL query itself, without using bind placeholders.
39
40 More importantly this means that caching of prepared statements is explicitly
41 disabled, as the interpolation renders it useless.
42
43 =head1 AUTHORS
44
45 Brandon L Black <blblack@gmail.com>
46
47 Justin Hunter <justin.d.hunter@gmail.com>
48
49 =head1 LICENSE
50
51 You may distribute this code under the same terms as Perl itself.
52
53 =cut