[Dbix-class] relationships and custom search

Morgon Hed morgonhed at yahoo.com
Wed May 6 12:47:21 GMT 2009


Hi,

can someone please explain to me if it is possible to associate a custom search to a ResultSource?

My problem is the following: I have 2 tables with a one-to-many relationships.
Both tables have a XMLType-column that I can get to only when I do a search like the following:

my $rs = $schema->resultset('Stream')->search(
                                               {},
                                                   {
                                                     select => [ 'id', 'basename', { 'xmltype.getCLobVal' => 'xml' } ],
                                                     as     => [qw/id basename xml/],
                                                   }
                                             );

This generates SQL that does not simply query for the column "xml", but inserts a "xmltype.getclobval(xml)".

The problem now is that when I try to do retrieve the associated rows from the child-table DBIx::Class generates a "standard" query (i.e. just listing all columns) which does not work for XMLType-columns.

So what I would need is a way to tell DBIx::Class not to generate "SELECT me.id, me.col1, me.col2, me.xml FROM table me WHERE ( me.id = ? )" but 
""SELECT me.id, me.col1, me.col2, xmltype.getclobvalue(me.xml) FROM table me WHERE ( me.id = ? )" whenever I navigate the relationships.

Is there a way to achieve this (if it was understandable at all?).

Many thanks.


      



More information about the DBIx-Class mailing list