I prepared a function that build a set of records of type (myComplexType).
That works, but I've to use this record set in different situations.
One of them require to scan multiple times the function results:
comparing with another table (myProducteAttributeTable) to determine if I need to delete old record
check if the recordset contains attribute never registered before
in this case insert in appropriate table (myAttribute), retrieve attribute uid and type
finally update first table (myProducteAttributeTable) with new information coming from the recordset (with a merge)
So, which is the best approach?
Store result in an array and use in each subsequent query the unnest (with a complex record type?)
Create temporary table on commit delete, with the same structure? But in this case I can't declare a cursor for the table, and I can't use update where current of (for point 3)
Create normal table and truncate as part of execution, but what happens in case of parallel execution?