I think we should implement `select_on_save`. It gives the easiest way for
someone to revert the feature if they need to. I know we're adding another
Meta flag, but I'm not that concerned about that.


On 28 August 2013 09:23, Anssi Kääriäinen <[email protected]> wrote:

> I just created a new ticket (https://code.djangoproject.com/ticket/20988),
> and marked it as release blocker for 1.6.
>
> The summary of the issue is that there are some cases where the new save()
> algorithm will not save existing objects (for details about the algorithm,
> see #20988). This happens when an UPDATE of an existing row returns zero
> matched rows. At least PostgreSQL ON UPDATE triggers returning NULL can
> cause this condition. If an user is hit by this issue, then currently the
> options are to remove the trigger, or to use raw SQL for update of existing
> objects. There might be 3rd party backends or other conditions where the
> only option is raw SQL.
>
> It would be nice to have better alternatives than raw SQL. Some options:
>   - Change back to old algorithm.
>   - Change the Model._do_update() to include forced_update flag. If this
> is done, it will be possible to override to _do_update() to use the old
> style algorithm. Unfortunately _do_update() is private API, but using that
> is likely better for most users than raw SQL.
>   - Add a select_on_save flag now, that is before release. The flag
> effectively forces use of the old algorithm. The implementation is
> straightforward, see
> https://github.com/akaariai/django/commit/1ca398b0352b11868ec236f92cf17b6ce82ff88c.
> Docs missing, but otherwise ready.
>   - Wait and see. If there are enough complaints, add select_on_save or
> some other workaround later on (that is, mid 1.6, or in 1.7).
>
> In addition, better release notes about this issue are needed.
>
> I think reverting to the old algorithm isn't a good option. The new
> algorithm will save one query in most cases. I will do the _do_update()
> signature change now, it is good for those who want to use that particular
> private API in any case.
>
> The real question is should something be done about select_on_save flag
> now?
>
>  - Anssi
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/django-developers.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-developers.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to