Peter Rabbitson <[email protected]> writes:

> Dagfinn Ilmari Mannsåker wrote:
>> Peter Rabbitson <[email protected]> writes:
>>
>>> Skye Shaw wrote:
>>>> Hello,
>>>>
>>>> Is it possible to have DBIC populate a newly created instance with the
>>>> underlying table's defaults when a value isn't provided?
>> [...]
>>>> The answer appears to be no. If so, what's the reason for this behavior?
>>> The reason is that having every insert be followed by a select is...
>>> how shall I put it, insane?!
>>
>> We already use INSERT ... RETURNING ... to get the ID if the DB supports
>> it, couldn't that be extended to get all the columns that weren't
>> specified in the ->new/->create call?
>
> Right, and this will introduce an insane amount of broken code, since your
> dev will work fine on a Pg version that supports IR, and will all of a
> sudden stop working entirely in production on a different db or on an
> older version of Pg, since now all the data you expected to be there is
> suddenly UNDEF.

I didn't mean to imply behaving differentely under different database
drivers, just that the "insane" overhead of an extra select can be
avoided for some of them.  Sorry about the ambiguous wording.

>> [...]
>>> Note that frew would be very happy if you contribute an "auto-retrieve
>>> defaults" component to DBIx::Class::Helpers
>>
>> Hm, tempting... Just have to make sure not to interfere with DBIC's own
>> use of RETURNING.
>
> The only way to go is with an optional component which provides you the
> defaults *regardless* of what the db capabilities are (and does use IR when
> it is supported by the storage for fastiness). As far as compatibility -
> this is not a concern, if such a component materializes it is trivial to
> provide the necessary hooks (if any are needed at all).

Exactly.

-- 
ilmari
"A disappointingly low fraction of the human race is,
 at any given time, on fire." - Stig Sandbeck Mathisen


_______________________________________________
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]

Reply via email to