[Dbix-class] Ordering materialized path searches
Ovid
publiustemp-dbic at yahoo.com
Fri Aug 14 13:23:44 GMT 2009
Hi all,
You can read about materialized paths at:
http://www.dbazine.com/oracle/or-articles/tropashko4
Having trouble ordering a search on a materialized path. Let's say I have an object with an id of 17, it might have a materialized path which looks like: '2.23.84.17'. This is a branch in a tree with the 2 being the top of the tree and the 17 being a leaf. To find the ancestors of a leaf, we have the following method:
I have the following DBIx::Class code.
sub ancestors_rs {
my $self = shift;
my @ids = split /\./, $self->materialized_path;
pop @ids; # remove self
if (!@ids) {
@ids = ('NOSUCHID'); # XXX :(
}
return $self->_default_resultset('PCE')
->search( { 'me.id' => { -in => \@ids } } );
}
The problem is that I need to walk up the tree from bottom to top but I can't figure out how to order the results correctly (they get returned in an effectively random order). Thoughts?
Cheers,
Ovid
--
Buy the book - http://www.oreilly.com/catalog/perlhks/
Tech blog - http://use.perl.org/~Ovid/journal/
Twitter - http://twitter.com/OvidPerl
Official Perl 6 Wiki - http://www.perlfoundation.org/perl6
More information about the DBIx-Class
mailing list