A. Pagaltzis wrote: > * Jess Robinson <[EMAIL PROTECTED]> [2006-06-21 11:15]: > >> Ah, but this has fun with functions, which are currently supported as: >> >> order_by => [ { 'count' => '*'} ] .. etc >> >> At the last discussion of this, my end proposal was the following: >> >> order by => [ [ 'name', 'asc'], 'lastname', [ { sum => 'age' }, 'desc' ] ] >> >> That is, the items in order by can be either: >> 1) a plain fieldname, which will just get passed on >> 2) an arraryref of fieldname and order direction >> 3) an arraryref of functionhashref, and order direction >> 4) a function hashref >> 5) a scalar ref that will be passed on blind as before >> > > Ugh. I find that overloading the meaning of data structures based > on type and level like you’re doing here always results in very > hard to read code. And flat is better than nested. > On the whole i'd agree with you here. > This is one of the reasons I gave up on SQL::Abstract quite > quickly when I tried to use it outside an ORM. > > For functions, I’d suggest supplying a scalar ref to be taken as > literal SQL, just like the convention already used elsewhere. > > For ASC/DESC, I’d suggest just putting the qualifier inline into > the list – ahead of the column it applies to because that’s > easier to disambiguate: > > order by => [ asc => 'name', 'lastname', desc => \'sum( age )' ] > > The only drawback is that column names that happen to be `asc` or > `desc` need to be disambiguated by providing an explicit sort > order. That doesn’t sound like a realworld concern to me, and > even in those cases where it matters, the workaround isn’t > exactly a hardship. > > Regards, > Hows about:
order_by => [ asc => 'name', 'lastname', desc => {sum => [ 'age' ] } ] (A cross between yours and what Jess had) Ash _______________________________________________ List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class Wiki: http://dbix-class.shadowcatsystems.co.uk/ IRC: irc.perl.org#dbix-class SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/ Searchable Archive: http://www.mail-archive.com/dbix-class@lists.rawmode.org/