[Dbix-class] inheritance problem?

Alan Humphrey alan.humphrey at comcast.net
Mon Sep 25 20:27:01 CEST 2006


All -

I'm trying to use the Sybase::MSSQL storage type and I'm seeing something I
don't understand.

In my schema module I have:

__PACKAGE__->mk_classdata('storage_type' => '::DBI::Sybase::MSSQL');

In the debugger, just before a call to ->search I see the following:

  DB<0> x $schema->{storage}

0  DBIx::Class::Storage::DBI::Sybase::MSSQL=HASH(0x9167a5c)
   '_connect_info' => ARRAY(0x9167d44)
      0  'DBI:Sybase:server=gilgamesh;database=BirdWeb'
      1  'xx'
      2  'xx'
   '_sql_maker' => undef
   '_sql_maker_opts' => HASH(0x91ae30c)
        empty hash
   'cursor' => 'DBIx::Class::Storage::DBI::Cursor'
   'debugobj' => DBIx::Class::Storage::Statistics=HASH(0x9167738)
      'debugfh' => IO::File=GLOB(0x9167e10)
         -> *Symbol::GEN0
               FileHandle({*Symbol::GEN0}) => fileno(12)
   'transaction_depth' => 0
  DB<1> x $schema->{storage}->isa("DBIx::Class::Storage::DBI::Sybase")

0  1
  DB<2> x $schema->{storage}->isa("DBIx::Class::Storage::DBI::MSSQL")

0  1
  DB<3> x
$schema->{storage}->isa("DBIx::Class::Storage::DBI::NoBindStorage")

0  ''
  DB<4> x $schema->{storage}->isa("DBIx::Class::Storage::DBI::NoBindVars")

0  1
  DB<5> x $schema->{storage}->can('_execute')

0  CODE(0x9385300)
   -> &DBIx::Class::Storage::DBI::_execute in
/usr/pkg/lib/perl5/site_perl/5.8.0/DBIx/Class/Storage/DBI.pm:752-784
  DB<6> x $schema->{storage}->can('sth')

0  CODE(0x93914c8)
   -> &DBIx::Class::Storage::DBI::sth in
/usr/pkg/lib/perl5/site_perl/5.8.0/DBIx/Class/Storage/DBI.pm:876-880

Note that $schema->storage is correct and appears to have the correct
inheritance (as reported by isa), but that the _execute and sth methods come
from Storage::DBI instead of Storage::DBI::NoBindVars.

Any ideas?

Thanks!

- Alan




More information about the Dbix-class mailing list