On Fri, Jan 18, 2008 at 01:05:30PM +0100, Zbigniew Lukasiak wrote: > I think I have it well documented in the "rs->find finds by all > columns" thread that find behaviour is rather not reliable when it is > not fed a unique constraint. By the way here is another question - > what should happen when you call find with just one of the two fields > in a composed primary key? Currently it would return just first > record with that one field set to the searched value, I don't know if > that is a bug - but it is surprising isn't it? > > In fact all of this is not that bad - because it can also be viewed as > an error on the application side to try to find something without > supplying a unique condition. > > The problem is that update_or_create relies on calling find without a > unique constraint. And more precisely it needs to do that if you want > to write a generic handler for updating or creating rows that would > work for all databases. The reason for that is that $rs->create( { > primary_key => undef, ... } ) will not work for Pg so when you call > update_or_create and you have no primary key you need to delete it > from the query.
I don't understand that. If you don't have a PK value, don't pass the column. This works perfectly and is orthogonal to your proposed find changes. -- 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]