On Aug 23, 2005, at 10:02 AM, Ilja Golshtein wrote:

The only thing I am curios is ctid good for
anything from user point of view?


I have a very specific use for it -- to bypass the index on an update. Something like this:

select ctid,user_id from users where ...
 ... do stuff based on user_id ...
update users set last_mod=CURRENT_TIME where ctid='$ctid' and user_id= $user_id

since I have already locked those rows earlier in the transaction I worry not about anyone else updating those rows. However, the extra safetynet of checking that the current row at $ctid is still the one I want, I check that. If the row is not updated (ie, count 0 returned) then I do a standard update based just on the user_id which is the PK.

When you add this up over millions of rows, it makes a difference to bypass the PK index lookup every time.

Vivek Khera, Ph.D.
+1-301-869-4449 x806



---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to