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.

[...]
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).



_______________________________________________
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