Below are some couple of observations attached as an "overview_of_code" and other attachments "function_def_other_details" and leak sanitizer report. Please assist with some clarifications given in overview_of_code with (***). Let me know if you need any more information
***How do we handle for the case clearing when PGresult object is assigned a pointer to the data of the specified field within the existing PGresult object?
i.e when SQL_get_tpf_rw() actually completes in each iteration?
It is your responsibility to close PGResult and PGConn objects. Each one created must be cleaned up. This is basic libpq usage. I suggest studying the documentation.
You should not reuse a pointer unless you have cleared the object first.
****Is the leak reported due to improper handling of the above case ? or is it due to some other flow
Your leaks look mostly due to not cleaning PGResult. However, the real issue here is you need to learn basic libpq usage a little better...try writing a smaller program and see when it starts to complain about leaks.