On 9 June 2017 at 19:10, Amit Kapila <amit.kapil...@gmail.com> wrote: > On Thu, Jun 8, 2017 at 10:40 PM, Robert Haas <robertmh...@gmail.com> wrote: >> On Thu, Jun 8, 2017 at 7:01 AM, Amit Kapila <amit.kapil...@gmail.com> wrote: >>> On Thu, Jun 8, 2017 at 1:33 AM, Robert Haas <robertmh...@gmail.com> wrote: >>>> On Wed, Jun 7, 2017 at 5:46 AM, Amit Kapila <amit.kapil...@gmail.com> >>>> wrote: >>>>> As far as I understand, it is to ensure that for deleted rows, nothing >>>>> more needs to be done. For example, see the below check in >>>>> ExecUpdate/ExecDelete. >>>>> if (!ItemPointerEquals(tupleid, &hufd.ctid)) >>>>> { >>>>> .. >>>>> } >>>>> .. >>>>> >>>>> Also a similar check in ExecLockRows. Now for deleted rows, if the >>>>> t_ctid wouldn't point to itself, then in the mentioned functions, we >>>>> were not in a position to conclude that the row is deleted. >>>> >>>> Right, so we would have to find all such checks and change them to use >>>> some other method to conclude that the row is deleted. What method >>>> would we use? >>> >>> I think before doing above check we can simply check if ctid.ip_blkid >>> contains InvalidBlockNumber, then return an error. >> >> Hmm, OK. That case never happens today? >> > > As per my understanding that case doesn't exist. I will verify again > once the patch is available. I can take a crack at it if Amit > Khandekar is busy with something else or is not comfortable in this > area.
Amit, I was going to have a look at this, once I finish with the other part. I was busy on getting that done first. But your comments/help are always welcome. > > -- > With Regards, > Amit Kapila. > EnterpriseDB: http://www.enterprisedb.com -- Thanks, -Amit Khandekar EnterpriseDB Corporation The Postgres Database Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers