I think that what we should actually do here is try to use simplehash. Right now, it won't work for frontend code, but I posted some patches to try to address that issue:
That would have a few advantages. One, we wouldn't need to know the number of elements in advance, because simplehash can grow dynamically. Two, we could use the iteration interfaces to walk the hash table. Your solution to that is pgrhash_seq_search, but that's actually not well-designed, because it's not a generic iterator function but something that knows specifically about the 'touch' flag. I incidentally suggest renaming 'touch' to 'matched;' 'touch' is not bad, but I think 'matched' will be a little more recognizable.
Thanks for the suggestion. Will try to implement the same and update accordingly.
I am assuming that I need to build the patch based on the changes that you proposed on the mentioned thread.
I have implemented the simplehash in backup validator patch as Robert suggested. Please find attached 0002 patch for the same.
kindly review and let me know your thoughts.
Also attached the remaining patches. 0001 and 0003 are same as v2, only patch version is bumped.