• Robert Haas's avatar
    Allow UPDATE to move rows between partitions. · 2f178441
    Robert Haas authored
    When an UPDATE causes a row to no longer match the partition
    constraint, try to move it to a different partition where it does
    match the partition constraint.  In essence, the UPDATE is split into
    a DELETE from the old partition and an INSERT into the new one.  This
    can lead to surprising behavior in concurrency scenarios because
    EvalPlanQual rechecks won't work as they normally did; the known
    problems are documented.  (There is a pending patch to improve the
    situation further, but it needs more review.)
    
    Amit Khandekar, reviewed and tested by Amit Langote, David Rowley,
    Rajkumar Raghuwanshi, Dilip Kumar, Amul Sul, Thomas Munro, Álvaro
    Herrera, Amit Kapila, and me.  A few final revisions by me.
    
    Discussion: http://postgr.es/m/CAJ3gD9do9o2ccQ7j7+tSgiE1REY65XRiMb=yJO3u3QhyP8EEPQ@mail.gmail.com
    2f178441
execnodes.h 75.9 KB