Martijn van Oosterhout <kleptog@xxxxxxxxx> writes: > Err, you don't need an index on ctid because the ctid represents that > physical location of the tuple on disk. ctids are what indexes use to > refer to tuples... > # explain DELETE FROM t WHERE ctid=(SELECT ctid FROM t WHERE pronargs=1 LIMIT 1); This doesn't currently work for more than one tuple, though: the natural locution would be "WHERE ctid IN (SELECT returning more than one tid)" but the planner/executor don't cope with doing that efficiently. Might be worth trying to fix that. regards, tom lane