[Dbix-class] select * from function('param')
mock
mock at obscurity.org
Fri Jul 28 07:29:44 CEST 2006
On Fri, Jul 28, 2006 at 12:38:59AM -0400, Daniel Westermann-Clark wrote:
> On 2006-07-27 22:38:02 +0000, mock wrote:
> > So I've got a function in my Pg database which takes a single
> > parameter and returns a set of rows.
> >
> > "select * from function('param')" works just fine from psql and
> > returns all my lovely rows just as I want them.
>
> If 'param' is limited to only one or two values, the path of least
> resistance is to create a view in your database and then treat it like
> any other source in DBIx::Class.
>
> Otherwise, you'll have to try 'from' attr hackery. See:
>
> http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class/ResultSet.pm#from
>
Yeah, looks like I'm going to have to do the from hackery.
So I tried the stupidly obvious:
my $rs = $schema->resultset('Getcourses')->search(undef,
{
from => 'getcourses(\'STUDENT\')',
})->first;
print "Name ",$rs->name, "\n";
Which gives me this error:
DBD::Pg::st execute failed: ERROR: missing FROM-clause entry for table "me"
DBIx::Class::ResultSet::first(): Error executing 'SELECT me.courseid, me.name, me.seattotal, me.seatleft, me.slot, me.priority, me.availid, me.begindate, me.enddate, me.couponname, me.coupontype, me.coupontotal, me.couponleft, me.price, me.tax, me.currency FROM getcourses('STUDENT')' (): ERROR: missing FROM-clause entry for table "me"
On first inspection it looks like it is doing what I want
"SELECT * FROM getcourses('STUDENT')"
but I don't understand the error message. The documentation talks a lot about
custom joins, but that doesn't look like what I'm trying to do. Any hints?
mock
More information about the Dbix-class
mailing list