53 std::unordered_map<gate_t, T> &provenance_mapping,
54 const std::function<T(
const char *)> &charp_to_value,
64 std::vector<std::pair<std::string, std::string> > rows;
65 rows.reserve(SPI_processed);
66 for (uint64 i = 0; i < SPI_processed; i++) {
67 HeapTuple tuple = SPI_tuptable->vals[i];
68 TupleDesc tupdesc = SPI_tuptable->tupdesc;
75 char *value = SPI_getvalue(tuple, tupdesc, 1);
76 char *uuid = SPI_getvalue(tuple, tupdesc, 2);
83 if (value != NULL && uuid != NULL)
84 rows.emplace_back(uuid, value);
95 for (
const auto &[uuid, value] : rows)
96 provenance_mapping[c.
getGate(uuid)] = charp_to_value(value.c_str());
void initialize_provenance_mapping(const constants_t &constants, GenericCircuit &c, std::unordered_map< gate_t, T > &provenance_mapping, const std::function< T(const char *)> &charp_to_value, bool drop_table)
Populate a provenance mapping from the current SPI result set.