On Wed, Oct 22, 2008 at 09:26:45AM -0500, Todd Rinaldo wrote:
> I too would like to see inflate be a little more transparent. I
> haven't had to deal with it in a month or so, but I know that in some
> DBIC calls, you get the raw value of the column and in others, you get
> the inflated value. Vice-versa on the write. It's my humble opinion
> that if someone sets up an inflate/deflate on a column, that should be
> the interface. This has bitten us a couple of times, mostly with
> DateTime objects where we made the assumption that get_column (I
> think) would give us an inflated value, but instead gives us the raw
> value.

That's a stupid assumption. It's documented to always return the actual
-column- value. It's a bit of internals that are exposed in case you need
it, *not* part of the main interface for your objects.

The main interface for your objects is the accessors. Use them.

$obj->get_column($col); # COLUMN VALUE

$obj->$col; # ATTRIBUTE VALUE

If I could time travel, I'd make it _get_column so this fact was obvious.
But too much code now relies on it, sadly.

I suspect when we create a new, cleaner row object interface, perhaps as a
factor out in the 09 process, things like get_column will simply go away so
people don't keep making this mistake.

-- 
      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/dbix-class@lists.scsys.co.uk

Reply via email to