[Catalyst] Class::DBI, Controller::Root, set_sql "redefined"
Adam Jacob
adam at stalecoffee.org
Tue Jun 6 20:11:14 CEST 2006
On Jun 6, 2006, at 10:21 AM, Marc Brooks wrote:
> The problem at hand though is the complexity of the statements I am
> using.
> I use the set_sql() from the Class::DBI since I can naturally write my
> statements. Does the DBIx::Class have an equivalent of the set_sql()?
>
> EXAMPLE:
>
> SELECT *
> FROM catalog AS node1, catalog AS node2
> WHERE node2.lft BETWEEN node1.lft AND node1.rgt
> AND $level = (
> SELECT COUNT(*)
> FROM catalog AS node3
> WHERE node3.lft BETWEEN node1.lft AND node1.rgt
> AND node2.lft BETWEEN node3.lft AND node3.rgt
> AND node3.id
> NOT IN (node2.id, node1.id)
> )
> AND node2.id != node1.id AND node1.id = '$id'
It has that, and so much more. DBIx::Class works by letting you
create ResultSet's from your data; looking at the database from the
point of view of getting the data you want out of it (and inflating
that data into an object you can use). While DBIx::Class doesn't
have direct support for sub-selects (yet) you can still accomplish
them quite easily.
Love the DBIx::Class. It doesn't solve every problem, but it solves
the vast majority of them.. and where it makes compromises they tend
to be acceptable ones.
Adam
More information about the Catalyst
mailing list