On Fri, Nov 09, 2007 at 03:11:25PM +0000, Richard Cox wrote: > So all that's cool but I hit a roadblock if I want to select more than one > column at a time because we only have one 'dummy' column in our table class so > it gets autoviv'd > > my @rs = $schema->resultset('Dual')->search(undef, > { select => [ \'sysdate', {initcap => '\'bar\''} ], > as => [ 'dummy', 'dummy' ] > }, > ); > > for my $col (@rs) { > print $col->dummy."\n"; # Bar > } > > To get round this I've slung together an 'auto column' component which > overrides get_column
Why bother? as => [ 'sysdate', 'initcap' ] ... $obj->get_column('sysdate') $obj->get_column('initcap') DBIC intentionally doesn't validate the columns passed to inflate_result and intentionally treats _column_data as supreme if the key exists precisely to make this usage work without needing any extra custom code. or you could sod off having a class at all and just use HashRefInflator so @rs will contain { sysdate => $systdate, initcap => $initcap } in each element. Both seem simpler to me than adding+removing columns on the fly inside get_column ... -- Matt S Trout Need help with your Catalyst or DBIx::Class project? Technical Director http://www.shadowcat.co.uk/catalyst/ Shadowcat Systems Ltd. Want a managed development or deployment platform? http://chainsawblues.vox.com/ http://www.shadowcat.co.uk/servers/ _______________________________________________ List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class IRC: irc.perl.org#dbix-class SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/ Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]