On Tue, Sep 30, 2008 at 2:20 PM, Matt S Trout <[EMAIL PROTECTED]> wrote:
> On Tue, Sep 30, 2008 at 09:28:50AM +0200, Zbigniew Lukasiak wrote:
>> The tricky part is when you load data from the form into the new row.
>> You need to delete the pk from it - because otherwise at
>> update_or_insert time it would issue an insert with pk = NULL - and
>> this will fail in Pg (for example).  The point is that you cannot feed
>> the same data to the find and to the insert calls - but
>> update_or_create does that - and why it does not have much choice is
>> another very long story.
>
> Well, yes. If you have an auto-increment PK and you don't have a value for
> it, then
>
> (1) there's no form field in the first place, so that's not an issue
>
> (2) you know you can't possibly find anything, so you wouldn't call
> update_or_create, you'd just call create
>
> I presume this is what Oliver's doing, which is why his code works.
>
> Nothing tricky at all.

This method assumes that you don't get the PK in the ResultSet in the
internal conditions.  I is ok if you have the full controll over the
ResultSet - but if you do admit this possibility (for example when you
traverse a belongs_to relation, or if you use RestrictedWithObject) -
then you would have to inspect it o check what part of the PK is there
to decide if you should  go directly to ->create.  Since currently
there is no easy and sound way of doing this inspection (and for some,
rather convoluted - I admit, cases it is impossible - that is it is
undecidable - i.e. cannot be solved by an algorithm) - this makes this
method unsuitable for my purposes.


> FormFu didn't used to do this, but Carl Franks agreed with me that this
> was a bug in FormFu. If your code still has this bug, I suggest you fix it.

What is a bug for you?

-- 
Zbigniew Lukasiak
http://brudnopis.blogspot.com/
http://perlalchemy.blogspot.com/

_______________________________________________
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