[Dbix-class] Re: complex db function

rahed raherh at gmail.com
Mon Mar 19 15:18:03 GMT 2007


rahed <raherh at gmail.com> writes:
> select id,round((julianday(date2) - julianday(date1))*86400) as 'tdiff'
> from mytable;

I proceeded and created a private SQLite function myfunc.

my $dbh = $c->model('MyModelDB')->storage->dbh;
$dbh->func('myfunc',2,\&subtract,'create_function');

sub subtract {
  my (
      $difference,
      $end,
      $start,
     );
  ($end,$start) = @_;
  $difference = ($end-$start)*86400;
  return $difference;
}

And in the search

select => {round=>{myfunc=>[{'julianday'=>'t_end_diag'},
                            {'julianday'=>'t_start_diag'},
                           ],
                  };

This produces the required select. Can I go without a private function?

-- 
Radek




More information about the Dbix-class mailing list