Spend search keys are the primary key of the point table, concatenated to the 3 byte point index. The point pk of course varies even for identical point hashes. It's just the record offset in the point table. However, if we index the spend table not on the primary key of the point, but instead on the search key of the point (point table hash function of the point hash), all spends of the same point would have the same search key, and would therefore be directly identifiable in the spend table iterator. However, conflicts could not be resolved without reading the actual point hash from the point table.